创建同步作业

创建数据同步作业的的详细语法可以连接到 Doris 后,执行 HELP CREATE SYNC JOB; 查看语法帮助。这里主要详细介绍,创建作业时的注意事项。

job_name

job_name是数据同步作业在当前数据库内的唯一标识,相同job_name的作业只能有一个在运行。

channel_desc

channel_desc用来定义任务下的数据通道,可表示mysql源表到doris目标表的映射关系。在设置此项时,如果存在多个映射关系,必须满足mysql源表应该与doris目标表是一一对应关系,其他的任何映射关系(如一对多关系),检查语法时都被视为不合法。

column_mapping

column_mapping主要指mysql源表和doris目标表的列之间的映射关系,如果不指定,FE会默认源表和目标表的列按顺序一一对应。但是我们依然建议显式的指定列的映射关系,这样当目标表的结构发生变化(比如增加一个 nullable 的列),数据同步作业依然可以进行。否则,当发生上述变动后,因为列映射关系不再一一对应,导入将报错。

binlog_desc

binlog_desc中的属性定义了对接远端Binlog地址的一些必要信息,目前可支持的对接类型只有canal方式,所有的配置项前都需要加上canal前缀。

canal.server.ip: canal server的地址
canal.server.port: canal server的端口
canal.destination: 前文提到的instance的字符串标识
canal.batchSize: 每批从canal server处获取的batch大小的最大值,默认8192
canal.username: instance的用户名
canal.password: instance的密码
canal.debug: 设置为true时,会将batch和每一行数据的详细信息都打印出来,会影响性能

CANAL配置

下面配置属于canal端的配置,主要通过修改 conf 目录下的 canal.properties 调整配置值。

canal.ip

canal server的ip地址

canal.port

canal server的端口

canal.instance.memory.buffer.size

canal端的store环形队列的队列长度,必须设为2的幂次方,默认长度16384。此值等于canal端能缓存event数量的最大值,也直接决定了Doris端一个事务内所能容纳的最大event数量。建议将它改的足够大,防止Doris端一个事务内能容纳的数据量上限太小,导致提交事务太过频繁造成数据的版本堆积。

canal.instance.memory.buffer.memunit

canal端默认一个event所占的空间,默认空间为1024 bytes。此值乘上store环形队列的队列长度等于store的空间最大值,比如store队列长度为16384,则store的空间为16MB。但是,一个event的实际大小并不等于此值,而是由这个event内有多少行数据和每行数据的长度决定的,比如一张只有两列的表的insert event只有30字节,但delete event可能达到数千字节,这是因为通常delete event的行数比insert event多。

FE配置

下面配置属于数据同步作业的系统级别配置,主要通过修改 fe.conf 来调整配置值。

enable_create_sync_job

开启数据同步作业功能。默认为 false,关闭此功能。

sync_commit_interval_second

提交事务的最大时间间隔。若超过了这个时间channel中还有数据没有提交,consumer会通知channel提交事务。

min_sync_commit_size

提交事务需满足的最小event数量。若Fe接收到的event数量小于它,会继续等待下一批数据直到时间超过了sync_commit_interval_second为止。默认值是10000个events,如果你想修改此配置,请确保此值小于canal端的canal.instance.memory.buffer.size配置(默认16384),否则在ack前Fe会尝试获取比store队列长度更多的event,导致store队列阻塞至超时为止。

min_bytes_sync_commit

提交事务需满足的最小数据大小。若Fe接收到的数据大小小于它,会继续等待下一批数据直到时间超过了sync_commit_interval_second为止。默认值是15MB,如果你想修改此配置,请确保此值小于canal端的canal.instance.memory.buffer.size和canal.instance.memory.buffer.memunit的乘积(默认16MB),否则在ack前Fe会尝试获取比store空间更大的数据,导致store队列阻塞至超时为止。

max_bytes_sync_commit

提交事务时的数据大小的最大值。若Fe接收到的数据大小大于它,会立即提交事务并发送已积累的数据。默认值是64MB,如果你想修改此配置,请确保此值大于canal端的canal.instance.memory.buffer.size和canal.instance.memory.buffer.memunit的乘积(默认16MB)和min_bytes_sync_commit。

max_sync_task_threads_num

数据同步作业线程池中的最大线程数量。此线程池整个FE中只有一个,用于处理FE中所有数据同步作业向BE发送数据的任务task,线程池的实现在SyncTaskPool类。

常见问题

修改表结构是否会影响数据同步作业?

会影响。数据同步作业并不能禁止alter table的操作,当表结构发生了变化,如果列的映射无法匹配,可能导致作业发生错误暂停,建议通过在数据同步作业中显式指定列映射关系,或者通过增加 Nullable 列或带 Default 值的列来减少这类问题。

删除了数据库后数据同步作业还会继续运行吗?

不会。删除数据库后的几秒日志中可能会出现找不到元数据的错误,之后该数据同步作业会被FE的定时调度检查时停止。

多个数据同步作业可以配置相同的ip:port + destination吗?

不能。创建数据同步作业时会检查ip:port + destination与已存在的作业是否重复,防止出现多个作业连接到同一个instance的情况。

为什么数据同步时浮点类型的数据精度在Mysql端和Doris端不一样?

Doris本身浮点类型的精度与Mysql不一样。可以选择用Decimal类型代替。

doris同步作业配置参数修改和注意事项相关推荐

  1. Redis常用配置参数详解及查看修改命令

    目录 Redis常用配置参数 Redis配置参数查看命令 语法 举例 说明: Redis配置参数修改命令 语法 举例 说明: Redis常用配置参数 序号 配置项 说明 1 daemonize no ...

  2. 人大金仓多节点数据库集群配置参数一键修改

    对于单个数据库来讲,修改配置参数相对比较容易: 对于多节点的主备集群环境的来讲,集群配置参数修改并不是简单的数据主备同步过程,而是需要对每个节点的配置文件进行调整. 金仓KingbaseES数据库集群 ...

  3. kubenetes 1.4 修改kubelet启动参数修改方法

    背景信息 OS为Ubuntu 16.04,该版本默认提供了systemctl工具,kubelet就通过该工具来管理. root@ubuntu2:/etc/# systemctl --version s ...

  4. Doris FE配置参数(全面)

    Doris FE配置参数 该文档主要介绍 FE 的相关配置项. FE 的配置文件 fe.conf 通常存放在 FE 部署路径的 conf/ 目录下. 而在 0.14 版本中会引入另一个配置文件 fe_ ...

  5. Apache Doris FE配置参数

    今天刚整理完,提了RP到社区,现在这发布一下,大家可以参考 Apache Doris 代码仓库地址:apache/incubator-doris 欢迎大家关注加星 Doris FE配置参数 该文档主要 ...

  6. mysql数据库密码安全参数_MySQL 密码参数配置与修改 validate_password

    MySQL 密码参数配置与修改 validate_password 场景 通过root用户创建travel_agency数据库,目标是,新建一个用户然后对仅对该用户开放travel_agency数据库 ...

  7. mysql密码参数_MySQL 密码参数配置与修改 validate_password

    MySQL 密码参数配置与修改 validate_password 场景 通过root用户创建travel_agency数据库,目标是,新建一个用户然后对仅对该用户开放travel_agency数据库 ...

  8. 传奇版本添加npc修改增加npc方法以及配置参数教程

    传奇版本添加npc修改增加npc方法以及配置参数教程,修改版本最基本的一种运用技术 1.D:\mirserver\Mir200\Envir\Merchant.txt 添加NPC参数与配置文件 2.D: ...

  9. oracle修改rman参数,Oracle数据库中RMAN默认配置参数代表什么意思

    RMAN> show all; db_unique_name 为 ORCL11G64B 的数据库的 RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUN ...

最新文章

  1. 五花八门的Shell 的相关概念和配置方法
  2. git pull 显示的冲突---解决办法git stash
  3. CHM文件不能正确显示
  4. Spring中的简单实现AOP小例子
  5. Image inpainting 图像修补最新综述
  6. BS结构中,web如何将数据进行DES加密并写道IC卡中
  7. javascript开发中的封装模式(转)
  8. iptables 简介
  9. 申通核心业务系统上云战役
  10. 一根网线让两台笔记本对拷文件
  11. systemverilog : constraint slove... before 详解
  12. 没有学历学了JAVA怎么找份工作_自学java没学历可以找到工作嘛?
  13. 实验:JS判断浏览器中英文版本
  14. 如何制定一个好计划?运用SMART原则
  15. 【C++初阶】C++入门一(命名空间、输入输出、缺省参数、函数重载等)
  16. PS弧形边缘的去黑色背景色
  17. ROS12机器人操作系统免安装在线自主学习平台简介和官方第三方教程列表
  18. 2019年东北大学计算机系提档线,东北大学2019年部分省、批次、科类录取分数线发布!...
  19. 【论文阅读】R3Det
  20. 动态规划python_手把手教你用Python+可视化工具制作漂亮地图

热门文章

  1. SourceTree 教程文档(进阶知识)
  2. 跳转前暂停几秒js如何实现
  3. redis-3.2.9安装
  4. Java异常:选择Checked Exception还是Unchecked Exception?
  5. 【李宏毅2020 ML/DL】P74 Generative Adversarial Network | Basic Idea
  6. 【转载】Java NIO学习
  7. C#笔记13 匿名类型、集合初始化器、扩展方法和查询表达式
  8. Web Components 系列(八)—— 自定义组件的样式设置
  9. ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
  10. 计算机运算器存储器知识点,计算机一级知识点:运算器、控制器