资源描述
DataServices培训总结-操作手册
目录
一、DS简介 2
二、DS数据加载方式 2
三、DS进行数据抽取模型开发的基本过程 3
四、DS创建数据源系统和目标系统的数据存储 3
1、Oracle数据库作为数据源系统 3
2、ECC作为数据源系统 4
3、HANA数据库作为目标系统 5
五、全量加载过程 5
1、创建Project和Job 5
2、导入源表的元数据到资源库 6
3、创建Data Flow 6
4、设置源表和目标表 7
5、手工执行Job 7
六、基于表比较的增量加载 8
1、在Job下定义工作流 8
2、在工作流中定义数据流 8
3、加入Table_Comparison控件 9
4、设置Table_Comparison控件 9
七、基于时间戳的增量加载 10
1、在Job下定义工作流 10
2、定义Script控件 10
3、定义处理新增数据的数据流和处理更新数据的数据流 11
八、DS中常用控件介绍 13
1、Key_Generation 13
2、Case 13
3、Merge 14
4、Validation 15
5、设置过滤器和断点 15
九、定义Job定期执行 16
1、登录Data Services Management Console 16
2、定义Batch Job Schedules 17
十、其他注意事项 18
一、DS介绍
SAP BusinessObjects Data Services是经过SAP HANA认证ETL工具。 采取数据批量处理方法,定时实施后台作业,将数据从多个业务系统中抽取出来,并进行必需处理(转换,合并,过滤,清洗),然后再加载到HANA数据库中 。
DS组件之间关系:
u Management Consol:
管理控制台是网页版DS管理工具,能够进行部分系统配置和定义Job实施
u Designer:
Designer是一个含有易于使用图形用户界面开发工具。它许可开发人员定 义包含数据映射,转换和控制逻辑数据管理应用程序,创建包含工作流(作业实施定义)和数据流 (数据转换定义)应用程序
u Repository:
应用程序设计器使用当地资源库用来存放Data Services对象(如项目,作业,工作流,和数据流)定义和源和目标元数据
u Job server:
作业服务器开启数据移动从多个不一样种类源集成数据引擎,实施复杂数据转换,并管理从ERP系统和其它源抽取和事务
二、DS数据加载方法
u 全量加载
u 增量上载
a) 基于表比较
作业在实施时读取数据源和目标中全部数据,在服务器内存中进行比较,计算数据差异
b) 时间戳增量
需要在数据源中添加时间戳字段,通常为创建时间和最终修改时间,在抽取作业中定义对两个时间戳字段进行对比,符合条件创建时间条目进行插入,符合条件修改时间条目进行更新
c) 利用数据库CDC(changed data capture)
首先需要开启数据库CDC服务,为数据库实例启用CDC功效,为源表启用CDC功效。在这种模式下,DS增量更新不再直接访问源表,而是在和源表相关变更统计表中读取增量
三、DS进行数据抽取模型开发基础过程
u 为数据源创建数据存放
u 导入源表元数据到资源库
u 为SAP HANA目标系统创建数据存放
u 新建DS项目和批量作业
u 新建DS数据流:定义源表和目标表,定义变量、编辑Query和Map_CDC_Operation
u 实施批量作业
四、DS创建数据源系统和目标系统数据存放
1、Oracle数据库作为数据源系统
登录Data Services Designer,在当地对象库数据存放页签中单击鼠标右键,选择新建菜单
创建数据存放“EAM_TEST”,在弹出对话框中输入EAM数据库连接信息
2、ECC作为数据源系统
一样在创建DataStore时,输入ECC连接信息
3、HANA数据库作为目标系统
在创建DataStore时,输入HANA数据库连接信息
五、全量加载过程
1、创建Project和Job
在当地对象库project页签中单击鼠标右键,选择新建菜单,创建项目“ERP_DS”。双击该项目,在“Project Area”,能够在该项目下创建Job
2、导入源表元数据到资源库
在当地对象库数据存放页签中,选择源系统数据存放,单击鼠标邮件,选择“Import By Name”,输入需要导入到资源库表名称。导入成功后,在数据存放table目录下能够看到导入表
3、创建Data Flow
单击“General”Job,在右边空白区域单击鼠标邮件,选择“Add New”-“Data Flow”
4、设置源表和目标表
单击创建Data Flow,将需要导入到HANA数据库中源表拖入到Data Flow区域中,将Data Flow区域右侧工具条中模版表拖入Data Flow区域创建模版表
输入模版表名称、HANA目标系统数据存放、HANA数据库存放DS抽取数据表用户名。
连接源表和目标表
双击模版表,设置“Options”中“Use NVARCHAR for VARCHAR”
5、手工实施Job
选择Job,单击鼠标右键,选择“Execute”
实施成功以后,在HANA数据库中ERPDSUSER下能够看到“T161T”,能够查看数据表内容。实施过程信息和结果能够在监控器中查看。
六、基于表比较增量加载
1、在Job下定义工作流
2、在工作流中定义数据流
在数据流中定义源表和模版表,实施Job,实施成功以后,在目标系统数据存放Template Table目录下能够看到创建模版表
3、加入Table_Comparison控件
选择模版表,单击鼠标邮件,选择“Import Table”。模版表会更新为Tables目录下数据表。
经过将转换-数据集成中“Table_Comparison”控件拖入到数据流中方法添加“Table_Comparison”控件
将源表连接“Table_Comparison”控件,“Table_Comparison”控件连接目标表。
4、设置Table_Comparison控件
双击“Table_Comparison”控件,设置相关参数:比较目标表、表主键,需要比较字段。当需要比较字段为空时,会比较全部字段。提议根据需要填写需要比较字段,能够加紧处理速度。保留后实施Job。
七、基于时间戳增量加载
1、在Job下定义工作流
在工作流中定义Script控件,读取数据抽取后最新创建时间和更改时间,定义一个处理新增数据数据流和一个处理更新数据数据流
2、定义Script控件
在Script控件中需要使用变量存放读取最新创建时间和最新更改时间。
选择Job,在工具栏选择“Variables”按钮,创建全局变量
双击“Script”控件,编写SQL语句,从HANA数据库表中读取最新创建时间和更改时间
3、定义处理新增数据数据流和处理更新数据数据流
双击“EBAN_New”数据流,加载源表,Query,Map_CDC_Operation控件和目标表
双击Query,在输出字段中增加“Sequence”和“Operation”两个字段。“Sequence”字段使用函数gen_row_num()进行赋值,“Operation”赋值为‘I’
在Quey中设置Where条件
双击Map_CDC_Operation控件,设置CDC Columns
一样方法定义“EBAN_Upd”数据流,在Querywhere条件中定义为
在Query数据结果中增加“Sequence”和“Operation”两个字段。“Sequence”字段使用函数gen_row_num()进行赋值,“Operation”赋值为‘U’
保留后,实施Job。能够经过修改源系统数据测试基于时间戳增量加载。
八、DS中常见控件介绍
1、Key_Generation
在源表基础上为目标表重新生成主键
在Query中增加“ID”字段,赋值为0。
在Key_Generation控件中设置目标表、主键字段、主键值增加量
2、Case
将源表依据规则进行拆分
双击Case控件,设置拆分条件
当SOURCE = 1时,输出SPFLI_1,当SOURCE =2时,输出SPFLI_2
3、Merge
将含有一样数据结构源表进行合并
在Query中增加输出字段Source,赋值为1。在Query1中增加输出字段Source,赋值为2。在Merge中将两个表内容合并输出。
4、Validation
提取数据源表中正确数据,将错误数据单独存放在其它表中
双击Validation控件,设置“Validation Rule”
5、设置过滤器和断点
过滤器和断点结合使用,用于设置Debug条件
选择源表到目标表连接线,单击鼠标右键,选择Set Filter/Breakpoint,设置Debug条件(当满足某种条件时进入断点,或在满足过滤条件同时实施多少条数据后时进入断点)
选择Job,单击鼠标右键,选择Start debug
工具栏上按钮能够控制实施下一条数据、继续实施、终止Debug
Debug过程中进入断点后,能够一次查看数据加载结果
九、定义Job定时实施
1、登录Data Services Management Console
单击工具栏“Data Services Management Console”按钮
进入Data Services Management Console登录界面
单击进入Administrator界面
2、定义Batch Job Schedules
在Batch Job Configuration页签选择Add Schedules
进入批量实施Job设置界面
能够设置每七天某一天实施(一周实施一次)或则每个月某一天实施(30天实施一次),也能够设置为天天全部实施。全部选“Recurring”则会定时循环实施,不然只实施一次。
能够设置一天实施一次,也能够一天实施数次,设置开始实施时间。
上图中假如设置为一天数次实施,开始时间为早晨1点,连续时间为600分钟,间隔时间为360分钟,则Job会在一天早晨1点和早晨6点各实施一次。假如设置时间间隔为240分钟,则Job会在一天早晨1点、早晨5点和早晨9点各实施一次。(总连续时间不超出10小时)。
十、其它注意事项
1、 用户端安装包需要注意和服务器DS版本一致
2、 在第一次登录CMS信息时,无法成功。ping sapdstest也失败,需要在host文件中添加对应地址和域名
3、 连接Oracle数据库作为数据源时,需要在用户端上安装Oracle用户端,设置tnsname.ora文件,设置环境变量ORACLE_HOME以后重启服务器;连接HANA数据库时,需要安装HANA用户端
4、 在连接ECC作为数据源时,需要开启系统跨用户端编辑权限
5、 在HANA中新建ERPDSUSER作为存放DS抽取表Schema,将ERPDSUSER给SLTADM赋权限,包含查询和创建权限
6、 全量抽取时,目标表不能使用导入表,需要使用模版表,模版表每次会删除重建,导入表会出现主键反复错误提醒
7、 基于时间戳增量加载,源表中需要有创建时间和更改时间两个字段,分别处理新增和修改数据
8、 假如只是设置过滤器而没有设置断点,在进行Debug时,Job会实施成功,过滤器有效。假如不进行Debug,直接实施,设置过滤器不起作用
展开阅读全文