BladePipe 1.9.0: New data pipelines, faster Oracle writes, and improved stability.
跳到主要内容

SAP HANA 到 PostgreSQL

选择对端数据库:

数据链路

基本功能

功能说明
Schema Migration

If the target schema does not exist, BladePipe will automatically generate and execute CREATE statements based on the source metadata and the mapping rule.

Full Data Migration

Migrate data by sequentially scanning data in tables and writing it in batches to the target database.

Incremental Data Sync

Sync of common DML like INSERT, UPDATE, DELETE is supported.

Data Verification and Correction

Verify all existing data. Optionally, you can correct the inconsistent data based on verification results. Scheduled DataTasks are supported.
For more information, see Create Verification and Correction DataJob.

Subscription Modification

Add, delete, or modify the subscribed tables with support for historical data migration. For more information, see Modify Subscription.

Table Name Mapping

Support the mapping rules, namely, keeping the name the same as that in Source, converting the text to lowercase, converting the text to uppercase, truncating the name by "_digit" suffix.

Metadata Retrieval

Retrieve the target metadata with filtering conditions from the source table.

高级功能

功能说明
基于 Trigger 增量同步

任务会自动创建表的触发器,触发器能捕获数据的 INSERT / UPDATE / DELETE 事件并写入增量 CDC 数据表

0 值时间处理

支持将 0 值时间设置成不同类型的值,防止写入对端报错

Custom Code

For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code.

Data Filtering Conditions

Support data filtering using WHERE conditions, with SQL-92 as the SQL language. For more information, see Data Filtering.

Setting Update Conditions for Target

Set additional update conditions for UPDATE operations, used to resolve confilcts in bidirectional sync.

限制和注意点

限制项说明
DDL 变化处理方案

SAP HANA 源端通过触发器捕获增量数据,不支持 DDL 同步。若发生 DDL 变更,可参考文档:SAP HANA 源端表结构变更

HANA 增量同步数据类型

HANA 增量阶段,触发器不支持捕获 TEXTBIN_TEXTST_POINTST_GEOMETRY 类型的数据变更

主键冲突处理

PostgreSQL <= 9.4 或 Greenplum <= 6, 因不支持冲突掠过或覆盖,当大量主键冲突场景下,性能较低


源端数据源

前置条件

条件说明
账号权限

文档:HANA 需要的权限

任务参数

参数名称说明
sysTriggerDataSchema

触发器写入增量表 SCHEMA 名称

sysTriggerDataTable

触发器写入增量表 TABLE 名称

incrPagingCount

触发器增量同步每次查询数据总量

incrIdleSleepSecond

触发器的增量同步空闲时查询间隔(单位:秒)

incrScanIntervalMs

设置基于触发器的增量同步数据查询间隔(单位:毫秒)

autoCheckTriggerAndReInstall

任务启动时检查触发器状态并重新安装

triggerDataCleanEnabled

是否开启定时清理触发器增量表数据

triggerDataCleanIntervalMin

设置触发器增量表的清理间隔(单位:分钟)

triggerDataRetentionMin

设置触发器增量表数据的保留时间(单位:分钟)

dbHeartbeatEnable

配置对源端数据库是否开启心跳

needTriggerDataJsonEscape

是否对触发器增量表数据加转义符(\)

triggerDataJsonQuotation

自定义触发器增量表 JSON 数据引号

triggerParamBathSize

设置触发器模板中每个变量包含列的个数

fullBeforeImageEnabled

触发器是否记录所有列变更前的完整数据

Tips: 通用参数配置请参考 通用参数及功能


目标端数据源

前置条件

条件说明
账号权限

具备 SELECT, INSERT, DELETE, UPDATE 常见 DDL 权限
阿里云 AnalyticDB for PostgreSQL 初始账号,或有 SELECT, INSERT, DELETE, UPDATE, 常见 DDL 权限

网络准备

迁移同步节点(sidecar)可连接 PostgreSQL / Greenplum / AnalyticDB for PostgreSQL / PolarDB for PostgreSQL 标准交互接口(如 5432)

任务参数

参数名称说明
keyConflictStrategy

增量写入遇到主键冲突策略:

  • IGNORE 冲突忽略(默认)
  • REPLACE 冲突替换(可选)

dstWholeReplace

将 INSERT 和 UPDATE 操作变成对端的整行覆盖

enableTimeZoneProcess

是否对时间字段进行时区转换

timezone

目标端时区,例如 +08:00, Asia/Shanghai, America/New_York

defaultZeroDate

在遇到'0000-00-00 00:00:00' / '0000-00-00' 值时用于替换的默认值,可选参数有:

  • null (空值)
  • 时间 (14:23:33)
  • 日期 (1970-01-01)
  • 时间日期 (1970-01-01 00:00:00),
  • 时区时间 (14:23:33+08:00 或 1970-01-01 00:00:00+08:00)
caseSensitive

对端写入SQL语句表名大小写策略,包含

  • UpperCase (转大写)
  • LowerCase (转小写)
  • Sensitive (添加限定符)
  • NoSpecified (不转换/不加限定符)
writeStrategy

对端写入策略,包含

  • ROW (单条)
  • MULTI_SQL (多语句)
  • BATCH (批量,默认选项)
  • COPY (PostgreSQL COPY 指令)
defaultGisSRID

设置 GIS 数据类型的 SRID

Tips: 通用参数配置请参考 通用参数及功能