DTStack ChunJun SAP HANA数据源读取配置指南

DTStack ChunJun SAP HANA数据源读取配置指南

chunjun ChunJun(唤醒)是一个基于 Flink 的实时数据同步工具。 - 提供实时数据同步、数据迁移和数据集成功能,支持多种数据源和数据目的。 - 特点:支持多种数据源和数据目的、高性能、可扩展、易于使用。 chunjun 项目地址: https://gitcode.com/gh_mirrors/ch/chunjun

一、概述

DTStack ChunJun作为一款强大的大数据同步工具,提供了对SAP HANA数据库的完善支持。本文将详细介绍如何使用ChunJun从SAP HANA数据库读取数据,包括离线全量读取和实时增量轮询两种模式。

二、版本兼容性

ChunJun支持SAP HANA 2.0及以上版本的数据读取操作。在使用前请确保您的SAP HANA数据库版本符合要求。

三、插件类型

ChunJun提供了两种方式操作SAP HANA数据源:

  1. Sync模式:使用saphanasource或saphanareader插件
  2. SQL模式:使用saphana-x连接器

四、详细配置参数解析

1. Sync模式配置

基础连接配置
  • connection:必须配置的连接参数集合,包含以下子项:
    • jdbcUrl:SAP HANA JDBC连接字符串,格式为jdbc:sap://host:port
    • schema:数据库schema名称(可选)
    • table:要读取的表名(目前仅支持单表)

示例配置:

"connection": [{
  "jdbcUrl": ["jdbc:sap://localhost:39015"],
  "table": ["employees"],
  "schema": "HR"
}]
  • username/password:数据库认证凭据,必须提供
性能优化参数
  • fetchSize:控制每次从数据库读取的记录数,默认为1024。对于大数据量场景,适当调整此值可避免内存溢出(OOM)

  • splitPk:当启用多通道(channel>1)时,必须指定此分片键。建议使用表的主键字段,确保数据均匀分布

数据过滤与自定义查询
  • where:添加查询条件,如"where": "hire_date > '2020-01-01'"

  • customSql:支持完全自定义SQL查询,但需注意:

    • 必须是SELECT语句
    • 返回字段需与column配置匹配
    • 不能使用*通配符
增量轮询配置
  • polling:设置为true启用间隔轮询
  • pollingInterval:轮询间隔(毫秒),默认5000
  • increColumn:指定增量字段(名称或索引位置)
  • startLocation:增量起始位置(可选)
  • useMaxFunc:控制是否包含边界数据,避免重复读取

2. SQL模式配置

SQL模式采用Flink SQL标准语法,主要参数包括:

  • connector:固定为saphana-x
  • url:JDBC连接URL
  • table-name:目标表名
  • scan.polling-interval:轮询间隔(毫秒)
  • scan.fetch-size:每次获取记录数
  • scan.increment.column:增量字段名

五、数据类型支持情况

ChunJun对SAP HANA数据类型的支持分为三类:

  1. 完全支持:包括常见类型如:

    • 数值类型:TINYINT、SMALLINT、INTEGER等
    • 时间类型:DATE、TIME、TIMESTAMP等
    • 字符串类型:VARCHAR、NVARCHAR等
    • 二进制类型:VARBINARY
  2. 部分支持:仅在Sync模式下支持:

    • 大文本类型:CLOB、NCLOB、TEXT等
  3. 暂不支持

    • 空间数据类型:ST_Point、ST_LineString等
    • 数组类型:ARRAY

六、最佳实践建议

  1. 增量同步配置
{
  "polling": true,
  "pollingInterval": 60000,
  "increColumn": "update_time",
  "startLocation": "2023-01-01 00:00:00"
}
  1. 大表读取优化

    • 设置合理的fetchSize(如5000)
    • 启用splitPk并行读取
    • 添加where条件减少数据量
  2. 字段映射示例

"column": [
  {"name": "emp_id", "type": "int"},
  {"name": "emp_name", "type": "string"},
  {
    "name": "hire_date",
    "type": "date",
    "format": "yyyy-MM-dd"
  }
]

七、常见问题处理

  1. 连接超时:适当增加queryTimeOut值
  2. 内存不足:减小fetchSize或启用splitPk分片
  3. 增量数据重复:设置useMaxFunc为true
  4. 字段类型不匹配:在column中明确指定目标类型

通过合理配置这些参数,您可以高效稳定地从SAP HANA抽取数据,满足各类数据集成和分析需求。

chunjun ChunJun(唤醒)是一个基于 Flink 的实时数据同步工具。 - 提供实时数据同步、数据迁移和数据集成功能,支持多种数据源和数据目的。 - 特点:支持多种数据源和数据目的、高性能、可扩展、易于使用。 chunjun 项目地址: https://gitcode.com/gh_mirrors/ch/chunjun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸锬泽Jemima

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值