Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

什么是SDI

SDI,即Smart Data Integration,是集成到HANA中的一个数据迁移和同步工具。通过SDI,我们可以用图形化的方式对远程数据源(如OracleDB2Hive等)的数据做过滤、连接、类型转换等操作,然后导入到HANA

使用SDI要做的工作

  1. 启动HANADP Server
  2. 安装配置DP Agent
  3. 注册DP Agent
  4. 注册 Adapter
  5. 创建远程数据源及虚表
  6. 创建并激活数据流图
  7. 执行存储过程

启动HANADP Server

Data Provisioning ServerHANA的一个native进程,它与DP Agent或远程数据源进行数据交互。DP ServerHANA自带组件,不需要额外安装,但默认情况下DP Serverdisabled,所以我们需要将其enable。激活方法是:Configuration选项卡àdaemon.iniàdpserveràinstances1

该属性是change online,不需要重启HANA

DP Server启动完成后可以在Services选项卡中看到dpserver的状态为active

安装配置DP Agent

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是线程池的容量,即并行导入的最大线程数。

注册DP Agent

1. 运行DP Agent的配置工具:

2. 先要连接到一个HANA系统,点击Connect to HANA

在弹出的对话框中填入HANA系统的链接信息,这里既可以连接到On PremiseHANA,也可以连接到On CloudHANA

3. 连接HANA之后就可以看到现有的所有Adapter

然后点击Register Agent按钮,弹出对话框:

点击Register按钮完成注册,注册成功后在HANA Studio中查看视图"SYS"."AGENTS"

可以看到”srsserverAgent”已经成功注册到HANA系统。

注册Adapter

DP Agent注册成功后,还需要将要连接的远程数据源对应的Adapter注册到HANA系统。

1. 将要连接的数据源的JDBC驱动文件(例如OracleJDBC驱动文件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 NameDP Agent中创建的实例名称,你可以使名称和数据源名称一致,Administration Port是该instance的管理端口,默认是13456

3. 创建虚表方法和SDA一致。

创建并激活数据流图

1. 在repositoryHANA 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...,请勿用于任何商业用途。

1 Comment