smartpip实现循环抽取任务


比如数据库中存在一些表, 这些表名后缀是按天命名的, 现在需要自动抽取汇总到同一个表中, 这样就需要用到循环抽取 smartpip中已有datax组件, 但只能进行单一表格抽取, 不能增加逻辑 所以我们需要使用到smartpip的diy组件功能 首先我们需要新一个datax抽取任务,在这个任务中我们传递参数ZYM, 比如:

#datax job1  ZYM

之后再新一建一个diy任务, 实现循环抽取:

ZYM = '202001'
def fun_job2():
    job = os.path.join(ETL_FILE_PATH , '项目名/job1.sql')
    report_time = datetime.date(2022,8,1)
    for i in range(600):
        zym = report_time.strftime('%Y%m')
        print(zym)
        if zym < '202001':
            break
        para_dict = {"ZYM": zym}
        run_datax(job, para_dict)
        report_time = (report_time - datetime.timedelta(days=1)).replace(day=1)

#diy  job2  fun_job2