public class DataflowUtility extends Object
| Constructor and Description |
|---|
DataflowUtility() |
public DataflowUtility()
public static dataflow mergeFunctionCallDataflow(dataflow dataflow, EDbVendor dbVendor)
public static dataflow convertTableLevelToFunctionCallDataflow(dataflow dataflow, boolean showBuiltIn, EDbVendor dbVendor)
public static dataflow convertToTableLevelDataflow(dataflow dataflow)
public static dataflow convertToSchemaLevelDataflow(dataflow dataflow, EDbVendor dbVendor) throws Exception
Exceptionpublic static dataflow convertToSchemaLevelDataflow(dataflow dataflow, EDbVendor dbVendor, boolean isSimple) throws Exception
Exceptionpublic static dataflow cloneDataflow(dataflow dataflow)
public static Map<String,table> getDataflowDbObjMap(dataflow dataflow)
public static Map<String,table> getDataflowDbObjNameMap(dataflow dataflow)
public static dataflow mergeDataflowsWithDifferentStartId(Collection<dataflow> dataflows, EDbVendor vendor)
public static dataflow mergeDataflowsByStartId(Collection<dataflow> dataflows, long startId)
该方法代替之前位于 ParallelDataFlowAnalyzer 的同名实现,外部调用者应使用
mergeDataflowsWithDifferentStartId(Collection, EDbVendor) 或
mergeDataflows(Collection, EDbVendor)。
public static dataflow mergeDataflows(Collection<dataflow> dataflows, EDbVendor vendor)
标准合并 mergeDataflowsWithDifferentStartId(Collection, EDbVendor) 的前提是
每个 dataflow 在生成时已通过 optionCopy.setStartId(5000000L * i) 占用了
不重叠的 ID 段;当外部调用方拿到的 dataflow 都是用默认 startId=0 生成时,直接合并
会因为 ID 冲突而错乱。本方法会先按下标把每个 dataflow 的全部 ID 偏移
DATAFLOW_ID_RANGE * index,再委托给标准合并逻辑。
注意:此方法会原地修改入参 dataflow 的 ID(与标准合并行为一致)。
public static dataflow iterativeMergeDataflowsFromFiles(List<File> tempFiles, EDbVendor vendor)
与 iterativeMergeDataflowsFromFilesByStartId(List, long) 不同的是,本方法假定文件中的
dataflow 是用默认 startId=0 生成的(ID 空间互相冲突),因此会按下标先做 ID 偏移再合并。
注意:本方法按入参 tempFiles 顺序迭代合并,不做任何排序。
coordinate 第三维 fileIdx 的偏移也是严格按入参顺序累积的,
调用方传入的顺序应与原始源文件的语义顺序保持一致。
public static dataflow iterativeMergeDataflowsFromFilesByStartId(List<File> tempFiles, long startId)
主要供 ParallelDataFlowAnalyzer 等内部生成方使用:每个临时文件中的 dataflow 已通过
optionCopy.setStartId(DATAFLOW_ID_RANGE * i) 占用了不重叠的 ID 段。
注意:本方法按入参 tempFiles 顺序迭代合并,不做任何排序。
coordinate 第三维 fileIdx 的偏移严格按入参顺序累积。
public static dataflow readDataflowFromCsvMetadata(String csvMetadata, EDbVendor vendor)
public static Dataflow mergeDataflowsAndCsv(List<Pair<EDbVendor,dataflow>> pairs, String csvMetadata)
public static dataflow readDataflowFromCsvMetadata(String csvMetadata)