赞
踩
SDI,即Smart Data Integration,是集成到HANA中的一个数据迁移和同步工具。通过SDI,我们可以用图形化的方式对远程数据源(如Oracle,DB2,Hive等)的数据做过滤、连接、类型转换等操作,然后导入到HANA。
Data Provisioning Server是HANA的一个native进程,它与DP Agent或远程数据源进行数据交互。DP Server是HANA自带组件,不需要额外安装,但默认情况下DP Server是disabled,所以我们需要将其enable。激活方法是:Configuration选项卡àdaemon.iniàdpserverà将instances置1
该属性是change online,不需要重启HANA。
DP Server启动完成后可以在Services选项卡中看到dpserver的状态为active:
1. 从SAP Software Download Center下载DP Agent安装包“data_provision_agent_xxxxxxxx.zip”。
2. 解压zip包,将其中的DATA_UNITS\HANA_DP_AGENT_10_LIN_X86_64文件夹copy到要安装的linux机器上(当然你也可以安装windows版的)。
3. 执行./hdbinst
输入安装路径。
输入用于DP Agent服务的用户名、监听端口和管理端口。
4. 进入DP Agent安装路径,运行配置工具:
5. 在弹出的对话框中点击ConfigureàPreferences:
在DP Agent的配置界面,你可以配置Adapter Framework和各个Adapter的参数,Adapter Framework的参数适用于所有Adapter,比如Worker Thread Pool是线程池的容量,即并行导入的最大线程数。
1. 运行DP Agent的配置工具:
2. 先要连接到一个HANA系统,点击Connect to HANA
在弹出的对话框中填入HANA系统的链接信息,这里既可以连接到On Premise的HANA,也可以连接到On Cloud的HANA。
3. 连接到HANA之后就可以看到现有的所有Adapter:
然后点击Register Agent按钮,弹出对话框:
点击Register按钮完成注册,注册成功后在HANA Studio中查看视图"SYS"."AGENTS":
可以看到”srsserverAgent”已经成功注册到HANA系统。
DP Agent注册成功后,还需要将要连接的远程数据源对应的Adapter注册到HANA系统。
1. 将要连接的数据源的JDBC驱动文件(例如Oracle的JDBC驱动文件ojdbc6.jar)拷贝到DP Agent安装目录的lib子文件夹下:
<DP_AGENT_INSTALL_DIR>/lib
默认为:/usr/sap/dataprovagent/lib
2. 在配置工具界面的Adpaters列表中选择远程数据源的Adapter,例如,要连接Oracle则选择OracleLogReaderAdapter,然后点击Register Adapter按钮。
3. Adapter注册成功后,在HANA中查看视图"SYS"."ADAPTERS":
可以看到OracleLogReaderAdapter已经成功注册到HANA系统。
1. 创建SDI远程数据源和创建SDA远程数据源类似,在Adapter Name栏选择远程数据源对应的Adapter,例如连接Oracle则选择OracleLogReaderAdapter。
2. 以Oracle数据源为例,Instance Name是DP Agent中创建的实例名称,你可以使名称和数据源名称一致,Administration Port是该instance的管理端口,默认是13456。
3. 创建虚表方法和SDA一致。
1. 在repository或HANA XS project中新建一个数据流图:
2. 使用拖拽的方式构建一个数据流图:
可以选中各个节点,然后在其属性框中设置其属性,例如,JOIN节点的属性框如下所示:
3. 保存并激活数据流图:
1. 数据流图成功激活后,我们在数据流图所在的schema下可以看到生成了一个存储过程:
2. 存储过程内容如下:
CREATE PROCEDURE "SDI"."LEO.SDI::sdi_fg1"()
LANGUAGE SQLSCRIPT SQL SECURITY INVOKER
AS
BEGIN
ORCL_DS_TSTTAB_DATA_TAB = SELECT "ID", "NAME" FROM "SDI"."orcl_ds_TSTTAB";
ORCL_DS_TSTTAB_2_DATA_2_TAB = SELECT "ID", "NAME" FROM "SDI"."orcl_ds_TSTTAB";
SORT_OUTPUT_TAB=SELECT "ID", "NAME" FROM :ORCL_DS_TSTTAB_DATA_TAB ORDER BY "ID" ASC;
JOIN_OUTPUT_2_TAB = SELECT "INPUT1"."ID" AS "ID", "INPUT2"."NAME" AS "NAME_2" FROM(:SORT_OUTPUT_TAB AS "INPUT1" INNER JOIN :ORCL_DS_TSTTAB_2_DATA_2_TAB AS "INPUT2" ON"INPUT1"."ID"="INPUT2"."ID");
SELECT "ID" AS "ID", "NAME_2" AS "NAME_2" FROM :JOIN_OUTPUT_2_TAB INTO"SDI"."SORTED_JOINED_TSTTAB";
END
3. 调用该存储过程即可完成数据导入。
SAP HANA EIM Administration Guide
SAP HANA Academy – Smart Data Integration/Quality : SAP ECC Replication [SPS09]
想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!
转载本文章请注明作者和出处http://scn.sap.com/community/chinese/hana/blog/2015/03/01/sdi%E7%9A%84%E9%83%A8%E7%BD%B2%E5%8F%8A%E7%AE%80%E5%8D%95%E4%B…,请勿用于任何商业用途。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。