---
title: "创建 MySQL 数据库至 DataHub 的数据同步项目 | OceanBase 文档中心"
description: 创建 MySQL 数据库至 DataHub 的数据同步项目 本文为您介绍如何同步 MySQL 数据库的数据至 DataHub。 前提条件 已在 DataHub 创建 Topic。 您可以在 OMS 控制台填写一个新的 Topic 名称，OMS 会根据该名称在 DataHub 自动创建。 注意 您在 OMS 中填写 T…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 3.2.2 企业版

# 创建 MySQL 数据库至 DataHub 的数据同步项目

更新时间：2023-06-25 10:20:37

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

## 前提条件

- 已在 DataHub 创建 Topic。

  您可以在 OMS 控制台填写一个新的 Topic 名称，OMS 会根据该名称在 DataHub 自动创建。 **注意**

  您在 OMS 中填写 Topic 名称时，请遵循 DataHub 中要求的 Topic 的命名规范。

  如果您需要自行创建，请提前在 DataHub 控制台准备。详情请参见 [创建 Topic](https://help.aliyun.com/document_detail/158794.html)。
 - 已为自建 MySQL 数据库开启了 Binlog，详情请参见 [为 MySQL 数据库开启 Binlog](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373387)。
 - 已为源端自建 MySQL 数据库创建专用于数据迁移任务的数据库用户，并为其赋予了相关权限。详情请参见 [创建数据库用户并授权](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373386)。

## 使用限制

- 当一条链路意外中断进行断点续传时，可能会存在部分重复数据（最近一分钟内），需要下游具备排重能力。
 - OMS 支持字符集配置为 UTF8 和 GBK 时的数据同步。
 - 待同步的表名和其中的列名不能包含中文字符。

DataHub 相关的使用限制如下：

- DataHub 官方限制一条消息具体的大小根据云环境而定，通常为 1 MB。
 - 由于是攒批发送，DataHub 限制一次只能发送 4 MB 的消息。如果单条消息满足可发送的前提，您可以通过更改 Connector Sink 端的配置项 `batch.size` 来设置攒批大小，默认为 20 条消息攒批发送（时间窗口一秒内）。

## MySQL 至 DataHub 同步的支持范围

- 支持单物理表同步至 DataHub 单 Topic。
 - 支持增量 DML 同步：`INSERT`、`UPDATE` 和 `DELETE`。
 - 同步 MySQL 的增量数据至 DataHub 时，其中包含表结构至 DataHub Schema 的初始化 Schema。

下表为 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 |

## 补充 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 | 变更类型，包括 `UPDATE`、`INSERT` 和 `DELETE`。 |
| oms_is_before | STRING | 如果是 `UPDATE` 类型，Y 表示该条数据为变更前的数据。 |
| oms_is_after | STRING | 如果是 `UPDATE` 类型，Y 表示该条数据为变更后的数据。 |

## 操作步骤

1. 进入 **新建同步项目** 页面。

      1. 登录 OMS 控制台。
      2. 在左侧导航栏，单击 **数据同步**。
      3. 在 **数据同步** 页面，单击 **新建同步项目** > **新建数据库到大数据同步项目**。
 2. 选择源和目标。

      1. 选择 **同步类型** 为 **MySQL** **→DataHub**。
      2. 设置 **同步链路名** **称** **。**

        **说明**

        同步链路名称支持中文、数字和英文字母的组合，且不得超过 64 个字符。
      3. 单击 **标签** 文本框，在下拉列表中选择目标标签。您也可以单击 **管理标签**，进行新建、修改和删除。详情请参见 [通过标签管理数据同步项目](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373406)。
      4. 设置 **源端**。

        | 参数 | 描述 |
        | --- | --- |
        | 表类型 | 目前只能选择 **单表**，即支持 MySQL 单表同步至 DataHub 的单个 Topic。 |
        | 数据源 | 如果您已创建 MySQL 数据源，请从下拉列表中进行选择。如果未创建，请单击下拉列表中的 **添加数据源**，在右侧对话框进行添加。参数详情请参见 [添加 MySQL 数据源](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373422)。 |
        | 数据表 | 在下拉列表中输入关键字，搜索目标源端数据表。 **注意** 待同步的表名和其中的列名不能包含中文字符。 |
        | 分片列 | 在分片列下拉列表中选择目标分片列。您可以选择多个字段作为分片列，该参数为选填。 分片列用于区分可并发写入至 MySQL 数据库的数据行。如果分片列值相同，则不会出现并发写入的情况。 **注意** 请保证分片列的正确性，分片列填写错误会导致数据同步任务失败。 |
      5. 设置 **目标端**。

        | 参数 | 描述 |
        | --- | --- |
        | 数据源 | 如果您已创建 DataHub 数据源，请从下拉列表中进行选择。如果未创建，请单击下拉列表中的 **添加数据源**，在右侧对话框进行添加。参数详情请参见 [添加 DataHub 数据源](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373427)。 如果您需要查看 OMS 中所有已创建的数据源，请单击页面下方的 **查看数据源**。 |
        | Topic | 输入一个已存在的 Topic。如果您未创建 Topic，可以直接输入 Topic 名称，并在设置同步选项时勾选 **结构初始化**，OMS 会在目标端自动创建该 Topic。 **注意** 如果指定的 Topic 不存在，则必须勾选 **初始化结构**。 |
      6. 单击 **下一步**。
 3. 设置同步类型。

      1. 设置源端同步类型。

        | 参数 | 描述 |
        | --- | --- |
        | 同步类型和配置 | 包括 **结构同步**、**全量同步** 和 **增量同步**。 增量同步的 DML 包括 **Insert**、**Delete** 和 **Update**，默认全部勾选。 |
        | 同步起始位点 | 指定同步某个时间节点之后的数据，默认为当前系统时间。您可以选择时间节点，也可以直接输入时间戳。 该位点与当前归档日志的保留时间密切相关。如果无特殊要求，可以从当前位点开始启动。 |
      2. 单击 **下一步**。
 4. 系统自动完成对数据同步项目的预检查。

   在 **预检查** 环节，OMS 会检测逻辑表 Schema 和物理表 Schema 是否一致。目前仅检查列名、列类型，以及是否为空，不检查长度和默认值。如果预检查报错，请排查并处理问题后，重新执行预检查，直至预检查成功。
 5. 单击 **启动任务**，启动该项目的增量同步等各项任务。

   如果您暂时无需启动任务，请单击 **保存**，跳转至数据同步项目的详情页面，您可以根据需要手动启动数据同步项目。如果您需要查看详情，请参见 [查看数据同步项目详情](https://www.oceanbase.com/docs/enterprise-oms-doc-cn-10000000000373403)。

如果数据同步项目运行报错（通常由于网络不通或进程启动过慢导致），您可以在数据同步的列表或详情页面，单击 **恢复**。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
