我们有一个主链,通过3个步骤从源数据库加载表:
- 截断本地表
- 从源数据库加载表
- 将加载的表转换为另一个表
此外,我们在步骤2中创建了一个额外的链,以通过分区列加载该表。然而,当运行主链时,我们得到以下顺序:
Step1 --> Step2--> Step3--> Local Chain's Step1 ,etc
这就是主链的第2步,创建一个新的本地链,将其添加到作业中(创建作业语句),启用作业,然后即使本地链刚刚启动,也保持其程序已完成。我们如何向主链步骤2添加一个条件,使其等待本地链完成?
这是主链:
CHAIN_NAME STEP_NAME PROGRAM_OWNER PROGRAM_NAME
ACCOUNTS_CHAIN TRUNCATE_ACC DWH TRUNCATE_TABLE_ACC
ACCOUNTS_CHAIN INSERT_ACC DWH RUN_INS_IBS_ACC
ACCOUNTS_CHAIN RUN_FILL_CORE_ACC DWH RUN_FILL_CORE_ACC
调度程序作业日志显示:
LOG_ID OWNER JOB_NAME JOB_SUBNAME STATUS
97442436 DWH LOAD_ACC_DB SUCCEEDED
97442300 DWH BULK_LOAD_CHAIN_JOB SUCCEEDED
97442296 DWH LOAD_ACC_DB LOAD_FIL_01099 SUCCEEDED
97442294 DWH LOAD_ACC_DB LOAD_FIL_01137 SUCCEEDED
97442292 DWH LOAD_ACC_DB LOAD_FIL_01095 SUCCEEDED
97442290 DWH LOAD_ACC_DB LOAD_FIL_09055 SUCCEEDED
97442288 DWH LOAD_ACC_DB LOAD_FIL_01124 SUCCEEDED
97442286 DWH LOAD_ACC_DB LOAD_FIL_01057 SUCCEEDED
97442284 DWH LOAD_ACC_DB LOAD_FIL_01173 SUCCEEDED
97442282 DWH LOAD_ACC_DB LOAD_FIL_01103 SUCCEEDED
97442280 DWH BULK_LOAD_CHAIN_JOB RUN_FILL_CORE_ACC SUCCEEDED
97442278 DWH LOAD_ACC_DB LOAD_FIL_01153 SUCCEEDED
97442276 DWH LOAD_ACC_DB LOAD_FIL_01102 SUCCEEDED
97442274 DWH LOAD_ACC_DB LOAD_FIL_01143 SUCCEEDED
97442270 DWH BULK_LOAD_CHAIN_JOB INSERT_ACC SUCCEEDED
97442262 DWH BULK_LOAD_CHAIN_JOB TRUNCATE_ACC SUCCEEDED
BULK_LOAD_CHAIN_JOB是调用主链ACCOUNTS_CHAIN的作业
LOAD_ACC_DB是在步骤2中调用本地链的作业。
查找LOAD_ACC_DB的计数是否是检查其完成情况的唯一方法?或者我们在链本身中有任何机制,比如如果有嵌套链,等待子链完成,然后继续下一步?
我似乎对文档中的嵌套链概念有一个令人困惑的理解。我所要做的就是在定义主链第二步时输入本地链名称,而不是程序名称。在链式运行中建立了正确的顺序之后。