达梦 DM 数据源

最近更新时间:2024-09-04 20:44:31

我的收藏
数据集成提供了达梦 DM 的单表读取和写入能力,本文为您介绍使用达梦 DM 进行实时数据同步的前置环境配置以及当前能力支持情况。

支持版本

目前数据集成已支持达梦 DM 单表实时读取和写入,使用实时同步能力需遵循以下版本限制:
类型
版本
达梦DM
7、8

使用限制

目前仅支持单表实时读取和写入,不支持整库任务。
仅支持 At-least-once 语义,需要依赖目标端去重能力保证数据唯一性。
DM 作为目标端时不支持根据源表结构一键创建 DM 目标端表结构,需提前在 DM 数据库建好目标表。

数据库环境准备

开启归档模式

1. 使用如下语句核对 ARCH_INI 和 RLOG_APPEND_LOGIC 参数是否正确设置,保证数据库已开启归档模式:
select para_name, para_value
from v$dm_ini
where para_name in ('ARCH_INI','RLOG_APPEND_LOGIC');
2. 若显示参数为0,则需要按照如下步骤设置归档模式及修改参数。
2.1 修改 dm.ini 中的参数,如下:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
2.2 dmarch.ini 需要配置本地归档,举例如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = d:\\dmdbms\\arch
ARCH_FILE_SIZE = 128 #单位Mb
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围1024~4294967294M
ARCH_INI和RLOG_APPEND_LOGIC
2.3 参数说明如下:




开启自动事务提交

大多数数据库管理工具,默认情况下,是开启了自动事务提交的,即执行了一句 Select 、Insert 、Delete 、Update 之后会自动执行 commit 操作。但达梦数据库管理工具不会,无论是命令行工具 disql,还是可视化管理工具都是默认执行了不会自动提交的,需要手动提交 commit 操作。
方式1:管理工具菜单选择窗口 > 选项,单击查询分析器,勾选自动提交



方式2:SQL 命令方式。
临时修改可以通过如下方式配置,下面为官方文档说明:
1. 设置当前 session 是否对修改的数据进行自动提交。
ON:表示打开自动提交,所有执行的 SQL 语句的事务将自动进行提交。
OFF:表示关闭自动提交,所有执行的 SQL 语句的事务将由用户显式提交,为默认设置。
SET AUTO[COMMIT] <ON|OFF>

权限授予

grant create session to my_user;
grant select on all_users to my_user ;
grant select on all_objects to my_user ;
grant select on all_tab_cols to my_user ;
grant select on all_indexes to my_user ;
grant select on dba_objects to my_user ;
grant select on V$LOGMNR_CONTENTS to my_user ;
grant select on V$ARCHIVED_LOGS to my_user ;

单表读取节点配置




参数
描述
数据来源
选择达梦 DM 数据源。
支持选择或者手动输入需读取的库名称。
默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。
当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema
支持选择或者手动输入需读取该数据源下可用的 Schema。
支持选择或者手动输入需读取的表名称。
分表情况下,可在达梦 DM 源端支持选择或输入多个表名称,多个表需保证结构一致。
分表情况下,支持配置表序号区间。例如 'table_[0-99]' 表示读取 'table_0'、'table_1'、'table_2' 直到 'table_99' ; 如果您的表数字后缀的长度一致,例如 'table_000'、'table_001'、'table_002' 直到 'table_999',您可以配置为 '"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]' 。
当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
添加分库分表
适用于分库场景,单击后可配置多个数据源、库及表信息。分库分表场景下需保证所有表结构一致,任务配置将默认展示并使用第一个表结构进行数据获取。
表主键
选择一个字段作为写入表的主键。
读取模式
全量 + 增量:数据同步分为全量和增量同步阶段,全量阶段完成后任务进入增量阶段。全量阶段将同步库内历史数据,增量阶段从任务启动后 binlog cdc 的位点开始同步。
仅增量:仅从任务启动后的 binlog cdc 位点开始同步数据。
参数(选填)
可根据业务需求配置参数。

实时单表写入节点配置




参数
说明
数据去向
需要写入的达梦 DM 数据源。
支持选择、或者手动输入需写入的库名称
默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。
当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema
支持选择、或者手动输入需要写入的 达梦 DM 数据模式。
当数据源网络不联通导致无法直接拉取 Schema 信息时,可手动输入 Schema 名称。在数据集成网络连通的情况下,仍可进行数据同步。
支持选择、或者手动输入需写入的表名称。
当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
高级设置(选填)
可根据业务需求配置参数。

支持的数据类型

读取

达梦 DM 读取支持的数据类型及转换对应关系如下(在处理达梦 DM 时,会先将达梦 DM 数据源的数据类型和数据处理引擎的数据类型做映射):
DM 类型
内部类型
备注
INT
INT

TINYINT
TINYINT
TINYINT(1) 映射到 BOOLEAN
需要增加选项支持 TINYINT(1) 可以映射到 bool 或者 tinyint
SMALLINT
SMALLINT

BIGINT
Long

REAL
DOUBLE

FLOAT
FLOAT

DOUBLE
DOUBLE

DECIMAL
DECIMAL
采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
CHAR
STRING

VARCHAR
STRING

TEXT
STRING

DATE
DATE

TIMESTAMP
TIMESTAMP


写入

达梦 DM 写入支持的数据类型及转换对应关系如下:
内部类型
DM 类型
INT
INT,NUMBER,INTEGER
TINYINT
TINYINT(3)
SMALLINT
SMALLINT
BIGINT
BIGINT
FLOAT
FLOAT
DOUBLE
REAL,DOUBLE,DECIMAL,DOUBLE PRECISION
BOOLEAN
BIT(1)
CHAR
CHARACTER(1)
VARCHAR
VARBINARY,BYTE,VARCHAR(8188),VARCHAR2(8188),LONGVARCHAR(2147483647)
TEXT
CLOB,BINARY,TIME WITH TIME ZONE
TINYTEXT
TIME
DATE
DATE,DATETIME,DATETIME WITH TIME ZONE
TIMESTAMP
TIMESTAMP,TIMESTAMP WITH LOCAL TIME ZONE
BLOB
BLOB,IMAGE,LONGVARBINARY