跳到主要内容

MySQL 单表导入

概述

Doris 支持通过 Job + CDC Stream TVF 的方式,将 MySQL 单张表的全量和增量数据持续同步到指定的 Doris 表中。适用于需要对单张表进行灵活列映射和数据转换的实时同步场景。

通过集成 Flink CDC 的读取能力,Doris 支持从 MySQL 数据库读取变更日志(Binlog),实现单表的全量和增量数据同步。

注意事项:

  1. 支持 exactly-once 语义。
  2. 目前只支持主键表同步。
  3. 需要 Load 权限。
  4. 需要在 MySQL 端开启 Binlog,如果使用云服务,请参考配置指南

前提条件

需要在 MySQL 端开启 Binlog,即 my.cnf 配置文件中增加:

log-bin=mysql-bin
binlog_format=ROW
server-id=1

如果您使用的是云服务,请参考对应的配置指南。

快速上手

创建导入作业

使用 CREATE STREAMING JOB 创建持续导入作业:

CREATE JOB mysql_single_sync
ON STREAMING
DO
INSERT INTO db1.tbl1
SELECT * FROM cdc_stream(
"type" = "mysql",
"jdbc_url" = "jdbc:mysql://127.0.0.1:3306",
"driver_url" = "mysql-connector-j-8.0.31.jar",
"driver_class" = "com.mysql.cj.jdbc.Driver",
"user" = "root",
"password" = "123456",
"database" = "source_db",
"table" = "source_table",
"offset" = "initial"
)

查看导入状态

select * from jobs("type"="insert") where ExecuteType = "STREAMING";

更多通用操作(暂停、恢复、删除、查看 Task 等)请参考持续导入概览

数据源参数

参数默认值说明
type-数据源类型,填写 mysql
jdbc_url-MySQL JDBC 连接串
driver_url-JDBC 驱动 jar 包路径
driver_class-JDBC 驱动类名
user-数据库用户名
password-数据库密码
database-数据库名
table-需要同步的表名
offsetinitialinitial: 全量 + 增量同步,latest: 仅增量同步
snapshot_split_size8096split 的大小(行数),全量同步时,表会被切分成多个 split 进行同步
snapshot_parallelism1全量阶段同步的并行度,即单次 Task 最多调度的 split 数量

导入配置参数

参数默认值说明
session.*支持在 job_properties 上配置所有的 session 变量,导入变量可参考 Insert Into Select

更多通用参数(如 max_interval 等)请参考持续导入概览