首批通过分布式安全可靠测评,为关键业务系统打造
创建 OceanBase 数据库至 DataHub 的数据同步项目
更新时间:2023-06-25 10:20:37
本文为您介绍如何同步 OceanBase 数据库(MySQL 和 Oracle 租户)的数据至 DataHub。
前提条件
OMS 支持自动创建 Topic。如果您需要自行创建,请提前在 DataHub 控制台准备。详情请参见 创建 Topic。
使用限制
全量同步时,不支持同步无主键表。
增量同步时,不支持同步没有分片列的无主键表。
同步 OceanBase 数据库的增量数据至 DataHub 时,其中包含表结构至 DataHub Schema 的初始化 Schema。
当一条链路意外中断进行断点续传时,DataHub 内可能会存在部分重复数据(最近一分钟内),因此下游系统需要具备排重能力。
OMS 支持字符集配置为 UTF8 和 GBK 时的数据同步。
待同步的表名和其中的列名不能包含中文字符。
DataHub 相关的使用限制如下:
DataHub 官方限制一条消息具体的大小根据云环境而定,通常为 1 MB。
由于是攒批发送,DataHub 限制一次只能发送 4 MB 的消息。如果单条消息满足可发送的前提,您可以通过更改 Connector Sink 端的配置项
batch.size来设置攒批大小,默认为 20 条消息攒批发送(时间窗口一秒内)。DataHub 的官方限制和命名规范请参见 DataHub 的限制描述。
DataHub 支持的数据类型如下表所示。
类型 描述 值域 BIGINT 8 字节有符号整型 -9223372036854775807 ~ 9223372036854775807 DOUBLE 8 字节双精度浮点数 -1.0 _10^308 ~ 1.0 _10^308 BOOLEAN 布尔类型 * True/False * true/false * 0/1 TIMESTAMP 时间戳类型 表示到微秒的时间戳类型 STRING 字符串,仅支持 UTF-8 编码 单个 STRING 列最大支持 2 MB TINYINT 单字节整型 -128 ~127 SMALLINT 双字节整型 -32768 ~ 32767 INTEGER 4 字节整型 -2147483648 ~ 2147483647 FLOAT 4 字节单精度浮点数 -3.40292347_10^38 ~ 3.40292347_10^38 DECIMAL 数字型 - 10^38 +1 ~ 10^38 - 1 注意
DataHub 中的 TINYINT、SMALLINT、INTEGER 和 FLOAT 类型,从 JAVA SDK 2.16.1-public 版本开始支持。
OceanBase 数据库 MySQL 租户至 DataHub 同步的支持范围
支持同步单物理表至 DataHub 单 Topic。
支持同步 OceanBase 数据库 MySQL 租户的逻辑表至 DataHub。
支持增量 DML 同步:
INSERT、UPDATE和DELETE。
下表为 OceanBase 数据库 MySQL 租户数据类型的支持情况。
| 数据类型 | 映射 DataHub 类型 |
|---|---|
| BIT | BIGINT |
| CHAR | STRING |
| BINARY | STRING |
| VARBINARY | STRING |
| INT | BIGINT |
| TINYINT | BIGINT |
| SMALLINT | BIGINT |
| MEDIUMINT | BIGINT |
| BIGINT | BIGINT 注意 DataHub 中 BIGINT 的长度限制为 -9223372036854775807~9223372036854775807。在数据库中,如果数字长度超过该阈值,可能会出现同步数据溢出的问题。 |
| FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| DECIMAL | DECIMAL |
| DATE | STRING |
| TIME | STRING |
| YEAR | STRING |
| DATETIME | STRING |
| TIMESTAMP | STRING |
| VARCHAR | STRING |
| TINYBLOB | STRING |
| TINYTEXT | STRING |
| BLOB | STRING |
| TEXT | STRING |
| MEDIUMBLOB | STRING |
| MEDIUMTEXT | STRING |
| LONGBLOB | STRING |
| LONGTEXT | STRING |
补充 Properties
如果自行创建 Topic,启动数据同步项目前,请在 DataHub 的 Schema 中补充下述 Properties。如果由 OMS 自动创建 Topic 和结构同步,OMS 会自动补充下述 Properties。
| 名称 | 类型 | 含义 |
|---|---|---|
| oms_timestamp | STRING | 发生变更的时间。 |
| oms_table_name | STRING | 源端为表时,变更表名。 |
| oms_database_name | STRING | 源端为数据库时,变更库名。 |
| oms_sequence | STRING | 数据至同步进程内存中的时间戳,由时间 + 5 位递增数字组成。如果发生时钟回退的情况,会导致数据不一致。 |
| oms_record_type | STRING | 变更类型,包括 UPDATE、INSERT 和 DELETE。 |
| oms_is_before | STRING | 如果是 UPDATE 类型,Y 表示该条数据为变更前的数据。 |
| oms_is_after | STRING | 如果是 UPDATE 类型,Y 表示该条数据为变更后的数据。 |
操作步骤
新建同步项目。
登录 OMS 控制台。
在左侧导航栏,单击 数据同步。
在 数据同步 页面,单击 新建同步项目 > 新建数据库到大数据同步项目。
选择源和目标。
在 选择源和目标 页面,选择 同步类型 为 OB→DataHub。
设置 同步链路名称 。
说明
同步链路名称支持中文、数字和英文字母的组合,且不得超过 64 个字符。
单击 标签 文本框,在下拉列表中选择目标标签。您也可以单击 管理标签,进行新建、修改和删除。详情请参见 通过标签管理数据同步项目。
设置 源端。
参数 描述 表类型 包括 单表 和 逻辑表。 数据源 * 当选择表类型为 单表 时:如果您已创建 OceanBase 数据源,请从下拉列表中进行选择。如果未创建,请单击下拉列表中的 添加数据源,在右侧对话框进行添加。参数详情请参见 添加 OceanBase 数据源。 * 当选择表类型为 逻辑表 时:如果您已创建 DBP 或 IDB 数据源,请从下拉列表中进行选择。如果未创建,请单击下拉列表中的 添加数据源,在右侧对话框进行添加。参数详情请参见 添加 DBP 数据源 和 添加 IDB 数据源。 数据表 在 数据表 中输入关键字搜索源端数据表。 * 选择 表类型 为 单表 时,支持单表同步至 DataHub 的单个 Topic。 * 选择 表类型 为 逻辑表 时,如果选择 DBP 数据源,逻辑表自动同步自数据访问代理 DBP。如果选择 IDB 数据源,则需要手动输入 GUID。 注意 待同步的表名和其中的列名不能包含中文字符。 分片列 在分片列下拉列表中选择目标分片列。您可以选择多个字段作为分片列,该参数为选填。 分片列用于区分可并发写入至 MySQL 数据库的数据行。如果分片列值相同,则不会出现并发写入的情况。 注意 请保证分片列的正确性,分片列填写错误会导致数据同步项目失败。 ETL 选项 OceanBase 数据库的数据同步至 DataHub 支持简单的 ETL。 您可以单击 ETL 选项。在 ETL 选项 对话框中,您可以输入标准 SQL 语句的 WHERE条件来配置行过滤。只有满足WHERE条件的数据才会被同步至目标数据源,以实现数据的行过滤。 注意 如果选择 IDB 数据源,则不显示该参数。设置 目标端。
参数 描述 数据源 如果您已创建 DataHub 数据源,请从下拉列表中进行选择。如果未创建,请单击下拉列表中的 添加数据源,在右侧对话框进行添加。参数详情请参见 添加 DataHub 数据源。 如果您需要查看 OMS 中所有已创建的数据源,请单击页面下方的 查看数据源。 Topic 输入一个已存在的 Topic。如果您未创建 Topic,可以直接输入 Topic 名称,并在设置同步选项时勾选 初始化结构,OMS 会在目标端自动创建该 Topic。 注意 如果指定的 Topic 不存在,则必须勾选 初始化结构。 单击 下一步。
设置同步类型。
设置源端同步类型。
参数 描述 同步类型和配置 包括 结构同步、全量同步 和 增量同步。 增量同步的 DML 包括 Insert、Delete 和 Update,默认全部勾选。 同步起始位点 指定同步某个时间节点之后的数据,默认为当前系统时间。您可以选择时间节点,也可以直接输入时间戳。 该位点与当前归档日志的保留时间密切相关。如果无特殊要求,可以从当前位点开始启动。 单击 下一步。
系统自动完成对数据同步项目的预检查。
在 预检查 环节,OMS 仅检查列名、列类型,以及是否为空,不检查长度和默认值。如果预检查报错,请排查并处理问题后,重新执行预检查,直至预检查成功。如果需要跳过某项预检查,您可以在系统配置中进行设置。
单击 启动任务,启动该项目的增量同步等各项任务。
如果您暂时无需启动项目,请单击 保存,跳转至数据同步项目的详情页面,您可以根据需要手动启动数据同步项目。如果您需要查看详情,请参见 查看数据同步项目详情。
如果数据同步项目运行报错(通常由于网络不通或进程启动过慢导致),您可以在数据同步的列表或详情页面,单击 恢复。