分享下ETL调用OB SQL之重跑支持

  • 场景(预防历史数据删除)
-- 假设当前日期:20260325
/home/hkbdapuser/ETL/bin/hkexec.sh dim_curr_d 20260324 OB OSHKS # 场景1:正常跑批
/home/hkbdapuser/ETL/bin/hkexec.sh dim_curr_d 20260106 OB OSHKS # 场景2:历史批量:非月末
/home/hkbdapuser/ETL/bin/hkexec.sh dim_curr_d 20260131 OB OSHKS # 场景3:历史批量:月末
  • SQL片段
/* SQL文件头及OB数据库参数配置(略) */
delete from ${SCHEMA}.${TABLE_NAME}
where 
    (
	    substr(ac_date,1,7)=substr('${TX_DATE}',1,7)
		and ac_date!='${CMLD_DATE}' -- 当月月末
	)
	or ac_date='${TX_DATE}'
;
/* 其他SQL片段(略) */
2 个赞

有点用哈,如果重跑历史数据的月末批次应该没有问题吧

1 个赞

是的,如果只是考虑月末批次重跑,这样即可:

delete from ${SCHEMA}.${TABLE_NAME} where substr(ac_date,1,7)=substr('${TX_DATE}',1,7);
1 个赞

2024:多 模 态 融合(视听全能)

1 个赞