You need to enable JavaScript to run this app.
导航

配置 SAP Hana 数据源

最近更新时间2023.10.24 10:38:36

首次发布时间2023.10.24 10:38:36

SAP HANA 数据源为您提供读取 SAP HANA 数据的数据集成通道能力,实现将读取出来的数据,写入到不同的目标数据源中。
本文为您介绍 DataSail 的 SAP HANA 数据同步的能力支持情况。

1 使用限制

  1. 当前仅支持离线读 SAP HANA 数据。

  2. 子账号新建数据源时,需要有项目的管理员角色,方可以进行新建数据源操作。各角色对应权限说明,详见:管理成员

2 支持的字段类型

SAP HANA 离线读字段数据类型支持情况如下:

类型分类数据类型备注
整数类型INT、TINYINT、SMALLINT、MEDIUMINT 和 BIGINT
字符串类型STRING、VARCHAR、NVARCHAR、SHORTTEXT、ALPHANUM
浮点类型FLOAT、DOUBLE、DECIMAL、AMALLDECIMAL
布尔类型BOOLEANBOOLEAN 别名 BOOL
日期时间类型DATE、TIMESTAMP、TIME、SECONDDATEunixtime_micros 别名 DATETIME
二进制类型BINTEXT、VARBINARY、NCLOB、CLOB、BLOB、TEXT
数组类型multi value仅支持元素为 string
其他st_point、st_geometry会转为 string 处理

3 数据同步任务开发

3.1 数据源注册

新建数据源操作详见配置数据源,下面为您介绍用连接串方式配置 Hana 数据源信息:

参数说明
基本配置
数据源类型Hana
接入方式连接串
数据源名称数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。
参数配置
主机名或 IP 地址连接 Hana 数据库的主机名称或者 IP 地址。
端口连接主机的端口号。
数据库名输入已创建的 Hana 数据库名称。
用户名有权限访问数据库的用户名信息。
密码输入用户名对应的密码信息。

3.2 新建离线任务

Hana 数据源测试连通性成功后,进入到数据开发界面,开始新建 Hana 相关通道任务。
新建任务方式详见离线数据同步

3.3 可视化配置说明

任务创建成功后,您可根据实际场景,配置 Hana 离线读通道任务。

3.3.1 Hana 离线读

数据来源选择 Hana,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数说明
*数据源类型下拉选择 Hana 数据源类型。

*数据源名称

已在数据源管理中注册成功的 Hana 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 Hana 数据源。

*Schema 目录

数据库下已有的 Schema 目录信息,下拉可选。

说明

如果需要同步计算视图、属性视图等特殊视图时,则需要选择 _SYS_BIC。

*数据表选择需要采集的数据表、视图或 Hana 特殊的计算视图、属性视图等名称信息。

切分建

根据配置的字段进行数据分片:

  • 如果表没有主键或者索引列,可以不配置该字段,同步任务不会进行分片,并以单并发的方式同步所有的数据;

  • 建议使用主键或有索引的列作为切分键,切分键配置没有索引的列同步任务会比较慢;

说明

目前仅支持类型为整型或字符串的字段作为切分建。

3.3.2 Hana 离线写

目前暂不支持可视化配置离线数据写入 Hana,敬请期待。

3.3.3 字段映射

数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
您可通过以下三种方式操作字段映射关系:

  • 自动添加:单击自动添加按钮,根据两端数据表信息,可以自动填充来源和目标的字段信息。

  • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。

  • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

3.4 DSL 配置说明

Hana 数据源支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,或当数据源类型暂不支持可视化配置时,您可通过任务脚本的方式,按照统一的 Json 格式,编写 Hana Reader 参数脚本代码,来运行数据集成任务。

3.4.1 进入 DSL 模式

进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式

3.4.2 Hana Reader

进入 DSL 模式编辑界面后,您可根据实际情况替换相应参数,Hana Reader 脚本示例如下:

{
  "job": {
    "common": {
      ...
    },
    "reader": {
      "type": "hana",
      "datasource_id": null,
      "class": "com.bytedance.dts.batch.jdbc.SapHanaInputFormat",
      "connections": [
        {
          "slaves": [
            {
              "host": "xxx.xxx.xx.xxx",
              "db_url": "jdbc:sap://xxx.xxx.xx.xxx:39017/SystemDB",
              "port": 39017
            }
          ],
          "shardNumber": 0
        }
      ],
      "user_name": "***",
      "password": "***",
      "db_name":"_SYS_BIC",
      "table_schema" : "_SYS_BIC",
      "table_name": "VIEW_TEST/SQL_TEST_SCORE_VIEW1",
      "hana_view_placeholder": "PLACEHOLDER.\"$$IN_CALMONTH$$\" => '202305'",
      "filter": "STUDENTID > 5",
      "columns" :[
        {
          "name":"STUDENTID",
          "type":"integer"
        },
        {
          "name":"SCORE",
          "type":"integer"
        }
      ]
    },
    "writer": {
      ...
    }
  }
}

Reader 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:

参数名称参数含义
*type数据源类型,输入 Hana 类型的 Reader type,默认固定值填写:hana

*datasource_id

填写注册的 Hana 数据源ID,可以在项目控制台 > 数据源管理界面中查找。

  • 目前 DSL 模式默认推荐不填写数据源 ID,这里请填写 null。

  • 若通过数据源 ID 方式配置,下方的 class、connections、user_name、password 参数可不输入。

*classhana reader connector type,默认固定值填写:com.bytedance.dts.batch.jdbc.SapHanaInputFormat

*connections

jdbc 类型数据源通用配置:

  • host:连接 Hana 数据库的 IP 地址。

  • db_url:需访问的数据库连接地址信息,以 jdbc:sap://xxx.xxx.xx.xxx:39017/SystemDB

  • port:对应连接的端口号。

*user_name有权限访问数据库的用户名信息。
*password用户名对应的密码信息。
*columns所配置的表中,需要同步的列名集合,使用 JSON 的数组描述字段信息。
*db_name填写需读取的数据库名称。
*table_schema填写需读取的 Hana 数据库中 Schema 名称。
*table_name输入需同步的数据表或者视图名字信息。
hana_view_placeholder采集带参数的计算视图时使用。
filter同步数据的过滤条件,同步数据时只会同步符合过滤条件的数据。

3.4.3 Hana Writer

目前暂不支持 DSL 模式配置离线数据写入 Hana,敬请期待。

3.5 高级参数说明

对于可视化配置通道任务,配置运行高级参数时,需在参数名称前加上 job.reader. 前缀。
如离线方式读取 Hana 数据,如果同步带参数的计算视图,且需要过滤数据读取时,则您可以使用以下高级参数:
job.reader.filterjob.reader.hana_view_placeholder 如下图所示: