供应商付款明细表格式如下:
另外有一份供应商联系人表存放每个供应商对应的联系人邮箱:
用户希望将供应商A的两行记录,拆分成一个独立的Excle文件,作为附件发送给供应商A的两个联系人aa1、aa2。将供应商B的一行记录,拆分成一个独立的Excle文件,作为附件发送给供应商B的两个联系人bb1、bb2。
作业中关联两个转换,T1转换用来获取原始文件内容参数中,T2转换用来将参数一行行写入到一个个独立Excel文件中。
打开kettle,定义数据源1
kettle中定义两个数据源,其中“DS_ERP”是来源数据库,“DS_ODS”是用于同步的数据库
END
新建转换,用于同步某一张表
1
新建一个转换(执行SQL脚本--->>表输入--->>表输出)
执行SQL脚本:删除DS_ODS库中已经存在的数据
表输入:查询DS_ERP库中的数据
表输出:将“表输入”中的结果输出到DS_ODS库中
2
执行SQL脚本:删除DS_ODS库中已经存在的数据
${qy_table_name}:这个是参数,指同步的表名
3
表输入:查询DS_ERP库中的数据
${qy_table_name}:这个是参数,指同步的表名
4
表输出:将“表输入”中的结果输出到DS_ODS库中
${qy_table_name}:这个是参数,指同步的表名
END
新建转换,用于获取需要同步的表名
1
新建一个转换(文本文件输入--->>复制结果到记录)
文本文件输入:通过读取指定txt文件,获取所有要同步的表。(这里也可以通过其他方式获取,例如通过sql查询数据库系统表)
2
指定txt文件路径
3
定义txt文件中的字段名,同上一步中定义的参数名
4
txt中定义需要同步的表,每行一张表名
END
新建任务,实现批量同步
新建任务,调用前面的转换
其中,同步表的转换需要设置循环执行,并将获取到的表名传递到转换内部
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)