首批通过分布式安全可靠测评,为关键业务系统打造
SeaTunnel
更新时间:2026-06-12 09:15:06
SeaTunnel 是一个分布式、高扩展性的数据集成平台,用于在各种数据存储系统之间传输数据。SeaTunnel 提供易于配置的数据流任务插件,让用户定义数据处理和转换的流程。更多关于 SeaTunnel 的信息,参考 SeaTunnel 的 GitHub 地址。
前提条件
在同步数据前,确认以下信息:
- 您已下载 SeaTunnel。
- 您已安装 Java 1.8 或更高版本。
- 您已开启 OB Cloud MySQL 的 Binlog。
- 您已下载 MySQL 驱动到
lib目录。
介绍使用 SeaTunnel 的 MySQL CDC Source Connector 在 OB Cloud MySQL 兼容模式租户执行 SQL 查询。connector-cdc-mysql 是 SeaTunnel的 一个插件,用于捕获并流式传输 MySQL 数据库中的实时更改数据(Change Data Capture,CDC)。
操作步骤
按照以下步骤进行 OB Cloud MySQL 兼容模式租户间的数据同步:
开启 OB Cloud 的 Binlog 服务。
开启 Binlog 日志服务的路径:实例列表 -> 租户管理 -> Binlog 服务,点击开通即可。更多信息,参考 开通 Binlog 日志服务。
创建 SeaTunnel 用户。
CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT SELECT ON *.* TO '用户名';配置
config/plugin_config。指定
connector-cdc-mysql,执行sh bin/install-plugin.sh 2.3.3。配置 SeaTunnel。
修改配置文件
config/v2.streaming.conf.template:source { # This is a example source plugin **only for test and demonstrate the feature source plugin** MySQL-CDC { result_table_name = "fake" parallelism = 1 server-id = 5656 username = "用户名" password = "密码" table-names = ["seatunnel.full_types"] base-url = "jdbc:mysql://xx.xxx.x.xx:3306/seatunnel" } # If you would like to get more information about how to configure SeaTunnel and see full list of source plugins, # please go to https://seatunnel.apache.org/docs/category/source-v2 }启动 SeaTunnel。
执行以下命令,启动 SeaTunnel:
./bin/seatunnel.sh --config ./config/v2.streaming.conf.template -e local
注意
OB Cloud 不支持 SET 类型。
Caused by: org.apache.seatunnel.api.table.catalog.DataTypeConvertException: ErrorCode:[COMMON-07], ErrorDescription:[Unsupported data type] - Convert type: SET to SeaTunnel data type error.
更多信息,参考 SeaTunnel MySQL CDC 文档。
介绍使用 SeaTunnel 的 JDBC OceanBase Source Connector 和 JDBC OceanBase Sink Connector 同步数据。JDBC OceanBase Source Connector 支持对 OceanBase 单表数据的全量读和写。更多信息,参考 JDBC OceanBase Source Connector。JDBC OceanBase Sink Connector 支持对 OceanBase 多表数据的全量读和写。更多信息,参考 JDBC OceanBase Sink Connector。
前提条件
在同步数据前,确认以下信息:
- 您已下载 SeaTunnel。
- 您已安装 Java 1.8 或更高版本。
- 您已配置
config/plugin_config。更多信息,参考 操作步骤。 - 您已开启 OB Cloud MySQL 的 Binlog。更多信息,参考 操作步骤。
- 您已在目标 OB Cloud 数据库中创建需要的表结构,确保它与源数据库相同。
操作步骤
按照以下步骤进行 OB Cloud MySQL 兼容模式租户间的数据同步:
开启 OB Cloud 的 Binlog 服务。
开启 Binlog 日志服务的路径:实例列表 -> 租户管理 -> Binlog 服务,点击开通即可。更多信息,参考 开通 Binlog 日志服务。
创建 SeaTunnel 用户。
CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO '用户名';配置
config/plugin_config。下载 OceanBase JDBC 驱动到
lib目录。更多信息,参考 OceanBase Client。配置 SeaTunnel。
修改配置文件
config/ob_to_ob:env { parallelism = 1 job.mode = "BATCH" } source { # This is a example source plugin **only for test and demonstrate the feature source plugin** Jdbc { driver = com.oceanbase.jdbc.Driver url = "jdbc:oceanbase://e2e_oceanbase_mysql:3306/seatunnel?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=UTC" user = "用户名" password = "密码" query = "SELECT c_bit_1, c_bit_8 FROM source" compatible_mode = "mysql" } # If you would like to get more information about how to configure seatunnel and see full list of source plugins, # please go to https://seatunnel.apache.org/docs/connector-v2/source/FakeSource } sink { Jdbc { driver = com.oceanbase.jdbc.Driver url = "jdbc:oceanbase://e2e_oceanbase_mysql:3306/seatunnel?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=UTC" user = "用户名" password = "密码" query = "insert into sink(c_bit_1, c_bit_8) values (?, ?);" compatible_mode = "mysql" } # If you would like to get more information about how to configure seatunnel and see full list of sink plugins, # please go to https://seatunnel.apache.org/docs/connector-v2/sink }启动 SeaTunnel。
执行以下命令,启动 SeaTunnel:
./bin/seatunnel.sh --config ./config/ob_to_ob -e local
注意
OB Cloud 不支持 SET 类型。
Caused by: org.apache.seatunnel.api.table.catalog.DataTypeConvertException: ErrorCode:[COMMON-07], ErrorDescription:[Unsupported data type] - Convert type: SET to SeaTunnel data type error.