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

2023-11-14

创建同步作业

创建数据同步作业的的详细语法可以连接到 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类型代替。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

doris同步作业配置参数修改和注意事项 的相关文章

  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • hashcode 的默认实现为以相同方式构造的对象返回不同的值

    我在这里编写一个示例代码 public class Test private int i private int j public Test TODO Auto generated constructor stub public Test
  • ServletContainer 类未找到异常

    我无法再编译我的球衣项目 并且出现以下异常 GRAVE Servlet Project API threw load exception java lang ClassNotFoundException com sun jersey spi
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • 非root用户安装expect

    非root用户安装expect 文章目录 非root用户安装expect 准备 tcl安装 expect安装 怎么卸载 看了很多教程 踩了很多坑 分享给需要的人 准备 参考资料 ubuntu安装expect 其实不用root权限的原理很简单
  • 设置VS 2013代码折叠

    设置VS 2013代码折叠 版本 VS2013 中文版 步骤 工具 T gt 选项 O gt 文本编辑器 gt C C gt 查看 gt 大纲语句块 设置为 True
  • JavaScript基础

  • matlab低通滤波器

    clc 清除命令窗口 clear 清除所有变量 close all 关闭所有的图形窗口 N 2 10 定义一个变量N 值为2的10次方 n 0 N 1 生成一个从0到N 1的序列 Fs 2000 采样频率 tn n 1 Fs 时间序列 Fn
  • 为什么需要单元测试?

    为什么需要单元测试 从产品角度而言 常规的功能测试 系统测试都是站在产品局部或全局功能进行测试 能够很好地与用户的需要相结合 但是缺乏了对产品研发细节 特别是代码细节的理解 从测试人员角度而言 功能测试和系统测试以及其他性能测试等等对测试人
  • Windows下忘记MySQL root密码解决方法

    Windows下忘记MySQL密码的解决办法网上好多好多 可是 我发现 如果采用Windows服务启动的时候 安装网上通过命令行修改root密码的方法行不通 经过实验 发现 Windows的服务运行的配置并不是在命令行下的配置 查看Wind
  • anaconda怎么运行python脚本_Anaconda运行python脚本 Anaconda方法教程

    你是否想了解Anaconda运行python脚本的操作 下面就是笔者带来的Anaconda运行python脚本的操作步骤 赶紧来看一下吧 相信对大家一定会有所帮助哦 Anaconda是使用 虚拟 环境里边运行Python 这样便于版本 包管
  • 面向对象的设计思想

    面向对象的设计思想 OO思想 Object Oriented 1 看到一个需求的时候不应该直接写代码 应该先考虑有哪些类 2 考虑类的时候 类一定是一类事务的描述 不能太局限 3 考虑类的时候需要考虑主要的类 也就是需要和业务 动作 事件紧
  • 声明指向unsigned int类型的对象的指针vptr_一步步分析:C语言如何面向对象编程...

    一 前言 在嵌入式开发中 C C 语言是使用最普及的 在C 11版本之前 它们的语法是比较相似的 只不过C 提供了面向对象的编程方式 虽然C 语言是从C语言发展而来的 但是今天的C 已经不是当年的C语言的扩展了 从2011版本开始 更像是一
  • c语言string函数的用法_C语言奇淫技巧,字符串的三种表示方法,不会用不是合格的程序员...

    1 在C语言中 是将字符串作为字符数组来处理的 字符串是逐个存放到数组元素中的 例如用一个一维的字符数组存放字符串 I am a boy 如下代码 char c 12 I a m a b o y 这个字符串的实际长度是11 数组长度是12
  • 【红队技术】第二节:信息收集

    https note youdao com s M5U3LWvw
  • 如何高效率提出问题?

    前言 我们总是对自己 不太熟悉 的东西 但是又迫切想知道其答案 所以总是 匆匆 的像他人提出问题 然而 我们发现一个现象 为什么大多数时候 我的问题总是很少引起别人的兴趣 言外之意是 我总是不能在 短时间 的得到一个 正确的答案 本篇根据笔
  • Oracle检查点队列–实例崩溃恢复原理剖析

    检查点队列 实例崩溃恢复原理剖析 什么叫检查点队列 检查点队列是将脏块连接起来 按照第一次脏的数据块依次往后串联起来 形成一个队列 检查点的作用是什么 检查点只是一个数据库事件 它存在的根本意义在于减少崩溃恢复时间 Oracle8i以前是没
  • PHPStorm.WebStrom等系列官方开发工具配置本地项目与运程服务器同步

    PHPStorm WebStrom配置本地项目与运程服务器同步 说明 PHPStorm WebStrom等官方的系统开发工具配置本地项目与运程服务器同步的方法都基本一致没有 几乎没有什么不同之处 我们拿WebStorm为例说一下具体的配置过
  • 背光补偿

    背光补偿能提供在非常强的背景光线前面目标的理想的曝光 无论主要的目标移到中间 上下左右或者荧幕的任一位置 背光补偿也称作逆光补偿或逆光补正 它可以有效补偿摄像机在逆光环境下拍摄时画面主体黑暗的缺陷 当摄像机处于逆光环境中拍摄时 画面会出现黑
  • windows,IDEA各种常用快捷键积累

    windows IDEA各种常用快捷键积累 windows快捷键 1 win shfit s 拖动截屏 2 ctrl alt s 系统录屏 IDEA 1 快速形成main方法 psvm 回车 2 快速形成输出语句 sout 回车 3 内容提
  • [转载]推荐:互联网思维必读十本书

    原文地址 推荐 互联网思维必读十本书 作者 梧桐雨 推荐 互联网思维必读十本书 最近在商界最流行的词汇 莫过于 互联网思维 了 互联网思维 就像一部让人垂涎的武林秘籍 得之可化腐朽为神奇 无论是小米 阿芙精油 或是卖煎饼的黄太吉 都宣称自己
  • 神经网络bn公式_BN、LN、IN、GN、SN归一化

    作者 泛音 公众号 知识交点 该小伙子文章写得不错 感兴趣的大家可以关注下 公众号 知识交点 内容包含 BatchNormalization LayerNormalization InstanceNorm GroupNorm Switcha
  • 解决Docker中运行的MySQL8.0中文乱码

    解决Docker中MySQL8 0乱码问题 环境 Ubuntu版本 21 10 64位 Docker版本 20 10 MySQL版本 8 0 27 正文 MySQL命令行无法展示中文 如下图 进入MySQL容器 docker exec it
  • doris同步作业配置参数修改和注意事项

    创建同步作业 创建数据同步作业的的详细语法可以连接到 Doris 后 执行 HELP CREATE SYNC JOB 查看语法帮助 这里主要详细介绍 创建作业时的注意事项 job name job name是数据同步作业在当前数据库内的唯一