HANA-SLT
正文
在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作。对于这种需求,除了开发ABAP接口之外,也有高效的工具可用。SLT就是其中之一。
SLT是SAP的第一个ETL(Extract-Transform-Load)工具,它允许实时加载和复制数据,或者将数据从源系统和非源系统调度到SAP HANA数据库。
SAP SLT服务器使用基于触发器的复制方式以实现从源系统到目标系统的数据传递。
SLT服务器可以安装在单独的系统或SAP ECC系统上。
SLT系统的好处如下:
- 允许实时或按计划时间进行数据复制。
- 在实时复制数据的过程中,可以以SAP HANA格式迁移数据。
- SLT可以处理簇表和池表
- 在加载/复制期间支持非Unicode和Unicode的自动转换。
- 与SAP HANA Studio有着完全的集成。
- SLT有表设置和转换能力。
- 可以通过SAP HANA Solution Manager监控。
SLT的全称是 SAP Landscape Transformation
SAP/非SAP系统的SAP SLT服务器的架构概述如下:
SAP系统和SAP HANA之间的SLT连接架构
SAP SLT Replication Server将所有元数据表定义从ABAP源系统转换为SAP HANA的元数据表定义。
对于SAP源,SLT连接具有以下功能:
- 在复制表时,SAP SLT Replication Server将在源系统中创建日志表。
- 读取引擎在SAP源系统中创建。
- SAP SLT和SAP源系统之间的连接基于RFC连接。
- SAP SLT和SAP HANA之间的连接基于DB连接。
与“SYSTEM”具有相同权限的数据库用户可以在SAP SLT和SAP HANA数据库之间创建连接。
图 SAP SLT连接SAP系统和SAP HANA数据库
在SAP源系统中配置SLT服务器
首先,我们需要配置SAP SLT Replication Server以连接SAP源服务器和SAP HANA数据库。 事务代码LTR用于在SAP源服务器和SAP SLT之间创建连接。
步骤1)登录到SAP SLT服务器,并从SAP SLT复制服务器调用事务“LTR”。
系统会弹出一个Web Dynpro窗口,用于登陆到SAP SLT服务器。
输入用户名密码并登录。
会出现一个如下的弹出窗,用于配置:
点击“New”按钮,创建一个新的配置。
步骤2)在本步骤:
- 输入配置名和描述。
- 选择SAP系统作为源系统。
- 输入SAP系统的RFC连接(destination)。
- 输入用户名/密码/主机名和实例编号。
- 输入作业选项细节。
- 数据传输任务编号
- 计算任务编号
- 选择复制选项为实时。
- 一旦所有选项维护完毕,点击‘OK’来创建一个SLT的新SCHEMA。
现在已经添加并激活了名为“SLTECC”的新配置:
成功配置SAP SLT服务器后,SAP SLT服务器会自动为SAP HANA数据库创建数据库连接(当通过事务LTR创建新的配置时)。不需要手动创建它。
下一步,我们将数据从SAP源导入SAP HANA。
通过SLT将数据从SAP源导入至SAP HANA
一旦我们成功配置了SAP SLT服务器,SAP HANA数据库就会创建一个和SAP SLT中的配置同名的SCHEMA。
该SCHEMA包含以下对象:
- 1 Schema - SLTECC.
- 1 User – SLTECC.
- 1 Privileges
- 8 Tables:
- DD02L (SAP Tables Name )
- DD02T (SAP Table Texts)
- RS_LOG_FILES
- RS_MESSAGE
- RS_ORDER
- RS_ORDER_TEXT
- RS_SCHEMA_MAP
- RS_STATUS.
- 4 Role -
- SLTECC_DATA_PROV
- SLTECC_DATA_POWER_USER
- SLTECC_DATA_USER_ADMIN
- SLTECC_DATA_SELECT
- 2 Procedures
- RS_GRANT_ACCESS
- RS_REVOKE_ACCESS
所有配置完成后,现在我们从SAP ECC(ERP中央组件)中加载一个表。
步骤1)要将表从SAP ECC加载到SAP HANA数据库,请按照以下步骤:
- 从Quick View前往Data provisioning。
- 选择SAP HANA系统
- 点击完成按钮
程序会显示一个基于SLT的Table Data Provisioning屏幕。有5个用于data provisioning的选项:
Load (Full Load) | 这是一个一次性事件,会开启从源系统的初始数据加载。 |
Replicate (Full Load + Delta Load) | 会开启一个初始加载(如果之前没进行过的话),并且也会传输增量数据。会为每个表创建数据库触发器和日志表。 |
Stop Replication | 为当前表停止复制过程。完全地移除触发器和日志表。 |
Suspend | 暂停正在进行的表复制过程。数据库触发器不会从源系统移除,日志也将继续记录。相关信息会存储在源系统的日志表里。 |
Resume | 重启暂停的表复制。 |
我们使用“加载选项”列表中的第一个选项来对表(LFBK)数据进行初始加载,将其从源系统加载到SAP HANA数据库。
操作步骤如下:
- 根据SAP SLT配置选择源和目标系统详细信息。
- 点击加载按钮,然后选择我们需要在SAP HANA中加载/复制的表(LFBK)。
- 表(LFBK)将被添加到数据加载管理部分,它的Action是"Load",状态为"Scheduled"。
数据加载后,状态将变为“已执行”。 该表和数据将在“SLTECC” schema中创建。
步骤3)通过schema “SLTECC”中的Data Preview检查表(LFBK)中的数据:
- 使用SAP HANA Studio登录SAP HANA数据库,并且选择SAP HANA系统HDB(HANAUSER)。
- 在表节点下选择表(LFBK)。
- 右键点击表(LFBK)选择打开Open data preview。
- 在Data Preview屏幕中将显示通过SLT处理加载的数据。
现在我们已经成功的将数据加载到表“LFBK”中。 我们可以在未来的建模中使用这个表。
非SAP系统和SAP HANA间的SLT连接
SAP SLT Replication Server将所有元数据表定义从非ABAP源系统转换为SAP HANA的元数据表定义。
对于非SAP的源,SLT连接具有以下功能:
- 在复制表时,SAP SLT复制服务器将在源系统中创建日志表。
- 读取引擎在SAP SLT复制服务器中创建。
- SAP SLT和源系统/SAP HANA之间的连接基于数据库连接。
图 SAP SLT连接非SAP系统和SAP HANA数据库
SAP SLT只能进行最简单的转换(比如考勤机数据的同步等),对于复杂的转换,我们需要其它的ETL工具,如SAP Data Services(SAP DS)。