CREATE SYNC JOB
目前数据同步作业只支持对接Canal,从Canal Server上获取解析好的Binlog数据,导入到Doris内。
用户可通过 查看数据同步作业状态。
语法:
job_name
同步作业名称,是作业在当前数据库内的唯一标识,相同
job_name
的作业只能有一个在运行。channel_desc
作业下的数据通道,用来描述mysql源表到doris目标表的映射关系。
FROM mysql_db.src_tbl INTO des_tbl
[partitions]
[columns_mapping]
mysql_db.src_tbl
指定mysql端的数据库和源表。
des_tbl
指定doris端的目标表,只支持Unique表,且需开启表的batch delete功能(开启方法请看help alter table的’批量删除功能’)。
partitions
指定导入目的表的哪些 partition 中。如果不指定,则会自动导入到对应的 partition 中。
示例:
-
指定mysql源表和doris目标表的列之间的映射关系。如果不指定,FE会默认源表和目标表的列按顺序一一对应。
不支持 col_name = expr 的形式表示列。
示例:
假设目标表列为(k1, k2, v1),
COLUMNS(k2, k1, v1)
忽略源数据的第四列
COLUMNS(k2, k1, v1, dummy_column)
binlog_desc
用来描述远端数据源,目前仅支持canal一种。
语法:
Canal 数据源对应的属性,以
canal.
为前缀- canal.server.ip: canal server的地址
- canal.server.port: canal server的端口
- canal.destination: instance的标识
- canal.batchSize: 获取的batch大小的最大值,默认8192
- canal.username: instance的用户名
- canal.password: instance的密码
- canal.debug: 可选,设置为true时,会将batch和每一行数据的详细信息都打印出来
-
(
)
FROM BINLOG
(
"type" = "canal",
"canal.server.ip" = "127.0.0.1",
"canal.server.port" = "11111",
"canal.destination" = "example",
"canal.username" = "",
"canal.password" = ""
);
为
test_db
的多张表创建一个名为job1
的数据同步作业,一一对应多张Mysql源表,并显式的指定列映射。