阿里云首页 云数据库 OceanBase

新建 OceanBase 数据库 MySQL 租户至 DataHub 的数据同步项目

本文为您介绍如何同步 OceanBase 数据库 MySQL 租户下的数据至 DataHub。

前提条件

  • 已创建 OceanBase 数据库 MySQL 租户类型的数据源。详情请参见 创建数据源(OceanBase)

  • 已创建 DataHub 数据源,并确认连通性。

  • OMS 支持自动创建 Topic。如果您需要自行创建,请提前在 DataHub 控制台准备。

使用限制

  • 同步 OceanBase 数据库 MySQL 租户下的增量数据至 DataHub 时,其中包含表结构至 DataHub Schema 的初始化 Schema。

  • 当一条链路意外中断进行断点续传时,可能会存在部分重复数据(最近一分钟内),需要下游具备排重能力。

DataHub 相关的使用限制如下:

  • DataHub 官方限制一条消息具体的大小根据云环境而定,通常为 1 MB。

  • 由于是攒批发送,DataHub 限制一次只能发送 4 MB 的消息。

OceanBase 数据库 MySQL 租户至 DataHub 的同步支持范围

  • 支持单物理表同步至 DataHub 单 Topic。

  • 支持增量 DML 同步:INSERTUPDATEDELETE

下表为 OceanBase 数据库 MySQL 租户数据类型的支持情况。

数据类型

映射 DataHub 类型

BIT

BIGINT

CHAR

STRING

BINARY

STRING

VARBINARY

STRING

INT

BIGINT

TINYINT

BIGINT

SMALLINT

BIGINT

MEDIUMINT

BIGINT

BIGINT

BIGINT

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

检查源端字符集的配置

源端为 OceanBase 数据库时,OMS 支持字符集配置为 UTF8 和 GBK 时的数据同步。

补充 Properties

如果自行创建 Topic,启动同步任务前,请在 DataHub 的 Schema 中补充下述 Properties。如果由 OMS 自动创建 Topic 和结构同步,OMS 会自动补充下述 Properties。

名称

类型

含义

oms_timestamp

STRING

发生变更的时间。

oms_table_name

STRING

源端为表时,变更表名。

oms_database_name

STRING

源端为数据库时,变更库名。

oms_sequence

STRING

变更序列号。承诺相同机器上,同一个主键不断递增。

oms_record_type

STRING

变更类型,包括 UPDATEINSERTDELETE

oms_is_before

STRING

如果是 UPDATE 类型,Y 表示该条数据为变更前的数据。

oms_is_after

STRING

如果是 UPDATE 类型,Y 表示该条数据为变更后的数据。

操作步骤

  1. 新建同步项目。

    1. 登录 OceanBase 控制台

    2. 在左侧导航栏,单击 数据传输>数据同步

    3. 数据同步 页面,单击右上角的 新建同步项目

  2. 选择源和目标。

    1. 选择源和目标 页面,选择 同步类型OB→DataHub

    2. 设置 同步链路名

      说明

      同步链路名称支持中文、数字和英文字母的组合,且不得超过 64 个字符。

    3. 源端 区域,选择 表类型

      参数

      描述

      表类型

      您可以选择 单表逻辑表

      数据源

      从下拉列表中选择已创建的 OceanBase 数据源。

      如果您需要添加数据源,请单击选择框右侧的 添加数据源。详情请参见 创建数据源(OceanBase)

      数据表

      选择 表类型单表 时,支持单表同步至 DataHub 的单个 Topic。请在 数据表 下拉列表中输入关键字搜索源端数据表。

      选择 表类型逻辑表 时,请在 数据表 中输入关键字搜索源端数据表。逻辑表自动同步自数据管理 DMS,详情请参见 数据管理 DMS

      ETL 选项

      同步 OceanBase 数据库 MySQL 租户的数据至 DataHub 时,支持简单的 ETL。

      单击数据表文本框右侧的 ETL 选项。在 ETL 选项 对话框中,您可以输入标准 SQL 语句的 WHERE 条件来配置行过滤,以及选择需要同步的列。

      • 只有满足 WHERE 条件的数据才会被同步至目标数据源,以实现数据的行过滤。

      • 支持用户选择某一列或多列,以实现数据的列过滤。

        勾选全部列或维持默认不勾选任何列,表示全部列数据都需要同步。

      分片列

      单击文本框,从下拉列表中选择分片列。该项为选填。

    4. 设置 目标端

      参数

      描述

      数据源

      从下拉列表中选择已创建的 DataHub 数据源。

      您可以单击 查看数据源,进入 数据源列表 页面查看所有已创建的数据源。

      Topic

      输入一个已存在的 Topic。如果您未创建 Topic,可以直接输入 Topic 名称,并在设置同步选项时勾选 结构初始化,OMS 会在目标端自动创建该 Topic。

      迁移规格实例

      请确保已经购买 OMS 数据迁移链路,不同规格链路的迁移性能有所差异。

    5. 单击 下一步

  3. 设置同步选项。

    1. 设置同步选项。

      您可以勾选 结构同步全量同步增量同步。如果您未勾选 全量同步,则可以设置 同步起始位点

      同步起始位点可以指定同步某个时间节点之后的数据,默认为当前系统时间。您可以选择时间节点,也可以直接输入时间戳。 该位点与当前归档日志的保留时间密切相关。如果无特殊要求,可以从当前位点开始启动。

    2. 单击 下一步

  4. 预检查并启动数据同步任务。

    系统会自动完成数据同步的预检查。在 预检查 环节,OMS 会检测逻辑表 Schema 和物理表 Schema 是否一致。目前仅检查列名、列类型,以及是否为空,不检查长度和默认值。如果预检查报错,请排查并处理问题后,重新执行预检查,直至预检查成功。

    预检查成功后,请单击 保存启动任务,OMS 会直接创建数据同步任务。您也可以在左侧导航栏,单击 数据同步,在 数据同步 页面手动启动该数据同步任务。

如果中途接入数据的过程出错(通常由于网络不通或进程启动过慢导致),您可以进入任务的详情页面,单击右上角的 恢复(此处为了延时,使用暂停再恢复)。

首页 云数据库 OceanBase 数据迁移方案 数据同步 新建 OceanBase 数据库 MySQL 租户至 DataHub 的数据同步项目