1、datastage数据同步数据同步 Datastage安装完成、创建工程后,双击“designer”客户端图表,运行该客户端,创建connection文件夹用以保存在以后job中使用的数据连接(数据源),在“表定义”文件夹中创建相应各个数据库针对的不同文件夹用以保存从不同数据库中导入的表。创建“参数 ”文件夹用以保存工程中使用的各个参数。每个job编辑完成后要先进行编译,编译无错后,才可以进行执行(菜单栏图标分别为)1、 并行job并行job,用以实现单个表的数据同步问题。在job文件夹下创建该类型表的对应文件夹,然后在其中选择新建并行job,创建成功后,点击保存、命名该job。工具栏内提供需
2、使用的各种插件。2、 参数&参数集用以实现对数据同步的条件控制3、 序列job为方便对多个同种类型的表进行统一调度,序列job可以将并行job串成一个job4、 任务调度使用dsjob.exe 实现对各个工程的脚本执行5、 例子a. 创建并行job在相应文件夹下,选择新建-并行job创建成功后,选择保存,输入相应名即可。b. 创建数据源,导入所需表在connection文件夹下创建本job要使用的数据源(如已有相应数据源则直接使用即可)在弹出的对话框选择-参数tab页,点击右侧按钮选择相应的数据源类型后,按照要求输入相应信息即可,点击保存。在表定义的相应数据库中选择导入所需的相应数据表。c.
3、编辑并执行并行job1)目标源创建建立好数据源后,在工具栏内找到本job相应所需要的源端数据来源类型,如sqlsever或oracle小工具,拖入到job页面。同理将目标源拖入到job页面,在工具栏的“常规”tab页找到链接,将二者相连接。以sqlserver为例,做以下说明(oracle与db2类似) 第一行填写查询语句,也可以读方法选择生成语句,然后由自带builder进行查询语句创建创建方法如下:先选择读方法=builder生成器,然后点击查询后,出现构建sql按钮,点击后,出现如下页面,将所要做源的表从表定义相应位置拖曳到右侧空白处,全选列拖入到中间列表出即可。查询条件若无可以选择nu
4、ll,然后点击确定即可。若该查询涉及条件和参数可以在生成的sql基础上进行修改,生成sql后,将读方法改为用户自定义sql,在sql编辑框右侧按钮可选择插入该作业的参数如时间参数等。填写完毕后,点击查看数据,若可看到相应数据,则数据来源设置完毕。2)目标表本例子中,目标为db2数据库,具体设置如下图,sql语句也可以选择让系统自动生成,填写相应表明即可。只插入新增加行方式和先删除后插入等方式需确保目标表和源表都含有主键或唯一键。3)参数集、参数对于有些job需要使用参数,如时间参数用以减少每次更新数据的压力。如以下语句即使用了数据集SA000HN下的参数datetime_1和date_time
5、2SELECT SP001HN.date_time, From esair.dbo.SP001HN AS SP001HN WHERE SP001HN.date_time convert(DATETIME,#SA000HN.date_time1#,120) and SP001HN.date_time e:dslogsjob_DC_SEQ_KQZ_SG_MN_run.log 自动获得当前时间并取得前一天的当前时间输出到参数文件脚本如下echo offrem 计算指定天数之前的日期set DaysAgo=1rem 假设系统日期的格式为yyyy-mm-ddcall :DateToDays %date:
6、0,4% %date:5,2% %date:8,2% PassDaysset /a PassDays-=%DaysAgo%call :DaysToDate %PassDays% DstYear DstMonth DstDayset DstDate=%DstYear%-%DstMonth%-%DstDay%rem echo %DaysAgo%天的日期是%DstDate%echo date_time1=%DstDate% %TIME:0,8%C:IBMInformationServerServerProjectslhbdcParameterSetsSA000HNSA000HN.txtecho da
7、te_time2=%DATE:0,10% %TIME:0,8% C:IBMInformationServerServerProjectslhbdcParameterSetsSA000HNSA000HN.txtrem pausegoto :eof:DateToDays %yy% %mm% %dd% dayssetlocal ENABLEEXTENSIONSset yy=%1&set mm=%2&set dd=%3if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)set /a dd=100%dd%100,mm
8、=100%mm%100set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633endlocal&set %4=%j%&goto :EOF:DaysToDate %days% yy mm ddsetlocal ENABLEEXTENSIONSset /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=aset /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2
9、,m/=153,dd=153*m+2,dd/=5set /add=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOFf. 任务调度保存以上脚本后利用系统任务调度,实现数据的同步。6、 常见问题两边表数据类型不一致,长度不一致导致数据截断需更改目标表表结构和字段长度序列job中止-有并行job出现错误或者有未编译的job
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1