Doris:Binlog Load导入数据

news2024/11/23 7:32:17

        Binlog Load提供了一种使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC(Change Data Capture)功能。Binlog Load需要依赖canal作为中间媒介,让canal伪造成一个从节点去获取Mysql主节点上的Binlog并解析,再由Doris去获取Canal上解析好的数据。

1.适用场景

  • INSERT/UPDATE/DELETE支持
  • 过滤Query
  • 暂不兼容DDL语句
  • Binlog Load只能支持Unique类型的目标表,且必须激活目标表的Batch Delete功能。

2.配置Mysql端

2.1开启binlog日志功能

编辑my.cnf配置文件配置binlog日志信息:

[mysqld]
log-bin = mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式

######开启GTID模式 [可选]######
#gtid-mode=on // 开启gtid模式
#enforce-gtid-consistency=1 // 强制gtid和事务的一致性

2.2 配置授权账号

        授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant。

create user canal@'%' identified with mysql_native_password by 'wsx-123';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

3.配置Canal端

3.1下载 canal

wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.adapter-1.1.6.tar.gz

3.2 解压canal

mkdir ~/opt/canal

tar -zxf canal.deployer-1.1.6.tar.gz  -C ~/opt/canal

3.3 配置canal

vi conf/example/instance.properties

3.4 启动canal

sh bin/startup.sh

3.5 验证启动成功

tail -f logs/example/example.log

4.基本操作

4.1  创建Doris目标表

 CREATE TABLE `dim_area_canal` (
  `id` bigint(20) NOT NULL,
  `level` tinyint(4) NOT NULL COMMENT '层级',
  `parent_code` varchar(20) NOT NULL DEFAULT "0" COMMENT '父级行政代码',
  `area_code` varchar(20) NOT NULL DEFAULT "0" COMMENT '行政代码',
  `name` varchar(255) NOT NULL DEFAULT "" COMMENT '名称',
  `short_name` varchar(255) NOT NULL DEFAULT "" COMMENT '简称',
  `merger_name` varchar(255) NOT NULL DEFAULT "" COMMENT '组合名',
  `pinyin` varchar(50) NOT NULL DEFAULT "" COMMENT '拼音',
  `lng` DECIMAL(10, 6) NOT NULL COMMENT '经度',
  `lat` DECIMAL(10, 6) NOT NULL COMMENT '纬度',
  `pcode` varchar(2) NULL,
  `ccode` varchar(2) NULL,
  `acode` varchar(2) NULL,
  `tcode` varchar(3) NULL,
  `vcode` varchar(3) NULL
) ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`id`) BUCKETS 10


!!Doris表结构和Mysql表结构字段顺序必须保持一致!!

4.2 开启Batch Delete

ALTER TABLE demo.dim_area_canal ENABLE FEATURE "BATCH_DELETE";

4.3 创建同步作业

CREATE SYNC `demo`.`dim_area_canal_job`
(
FROM `demo`.`dim_area` INTO `dim_area_canal`
(id,level,parent_code,area_code,name,short_name,merger_name,pinyin,lng,lat,pcode,ccode,acode,tcode,vcode)
)
FROM BINLOG
(
"type" = "canal",
"canal.server.ip" = "192.168.179.131",
"canal.server.port" = "11111",
"canal.destination" = "example",
"canal.username" = "canal",
"canal.password" = "canal"
);

4.4 查看作业状态

        可以使用SHOW SYNC JOB [FROM db_name]命令查看当前所有数据库内的常驻数据同步作业状态。

SHOW SYNC JOB FROM demo

4.5 控制作业

        用户可以通过 STOP/PAUSE/RESUME 三个命令来控制作业的停止,暂停和恢复。

  • STOP SYNC JOB [db.]job_name;
  • PAUSE SYNC JOB [db.]job_name;
  • RESUME SYNC JOB [db.]job_name;

5.测试数据同步

1)源数据表中新增一条数据

2)查看目标表中的数据

        由于canal没有同步历史数据,所有如果源目标表已有的历史数据需求先手动同步到目标表之后,再启动canal去同步最新数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos k8s安装dapr

文章目录 安装helm更新helm库初始化dapr高可用方式安装 卸载dapr验证k8s的dapr安装rocketmq总结 安装helm 三个包放到一个目录下 chmod x get ./get helm version更新helm库 helm repo add dapr https://dapr.github.io/helm-charts/ helm repo update helm search repo dapr …

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发004:游戏核心消息处理 - 玩家类的实现

文章目录 0 代码仓库1 需求2 AOI设计2.1 AOI算法简介2.2 AOI数据结构及实现2.2.1 玩家2.2.2 网格对象2.2.3 游戏世界矩形2.2.4 获取周围玩家的实现2.2.5 代码测试 2.3 GameRole结合AOI创建玩家2.3.1 创建游戏世界全局对象-GameRole继承AOIWorld的Player2.3.2 把玩家到游戏世界的…

Qt OpenMP使用

1、概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C、C和Fortran。OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计。编译器根据程序中添加的pragma指令,自动将程序并行处理&…

匿名类型与元组(ValueTuple)

匿名类型与元组(ValueTuple) 匿名类型 简介:匿名类型提供了一种方便的方法,可用来将一组相关的属性封装到单个对象中。匿名对象由编译器在编译时动态生成,它是只读的,且只在当前作用域中可见。它可以方便…

CDN加速技术:降低企业云服务成本的有效利用

在当今数字化时代,云服务已经成为企业运营的不可或缺的一部分。然而,与此同时,云服务的需求也在不断增长,使企业不得不应对更大的数据传输和负载。这就引出了一个关键问题:如何有效降低企业云服务成本,同时…

kubernetes-调度

目录 一、k8s调度简介 二、影响kubernetes调度的因素 1、nodename 2、nodeselector 3、亲和与反亲和 (1)nodeaffinity (2)podaffinity(亲和) (3)podantiaffinity&#xff0…

易点易动固定资产管理系统:提升固定资产领用效率的解决方案

在企业运营中,固定资产的领用和管理是一个重要的环节。然而,对于许多企业来说,固定资产领用的过程往往存在效率低下、信息不透明等问题。为了帮助企业提升固定资产领用效率并实现用量控制管理,我们引入了易点易动固定资产管理系统…

小知识:无源无线测温传感器可以安装在哪些部位?

无源无线测温传感器采用超低功耗设计:主芯片采用美国TI公司,功耗低,低可至0.03mw,区别于传统的感应供电,不存在发热现象。测温元件采用耐高温、高精度热敏电阻,测温范围宽至-40℃~200℃&#xf…

WebGL主要接口功能

WebGL(Web Graphics Library)提供了一组用于在Web浏览器中呈现3D和2D图形的接口类型和功能。下面是一些主要的WebGL接口类型和它们的功能,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交…

复盘一个诡异的Bug

该Bug的诡异之处在于这是一个由多种因素综合碰撞之后形成的综合体。纵观整个排查过程,一度被错误的目标误导,花费大量功夫后才找到问题点所在,成熟的组件在没有确凿证据之前不能随意怀疑其稳定性。 前言 此前在接入两台粒径谱仪(…

tingpng 批量压缩工具

无聊的时候写的 自用 还行 https://ttkeji.lanzoul.com/iPCfY1e5wwwh

虹科示波器 | 汽车免拆检测 | 2017款路虎发现车行驶中发动机抖动且加速无力

一、故障现象 一辆2017款路虎发现车,搭载3.0L发动机,累计行驶里程约为3.8万km。车主反映,车辆在行驶过程中突然出现发动机抖动且加速无力的现象,于是请求拖车救援。 二、故障诊断 拖车到店后首先试车,发动机怠速轻微抖…

盈科视控荣获创响中国大赛第四名

近日,随着2023“创响中国”安徽省创新创业大赛省内赛区复赛的举办完成,60个项目从6个专项组中脱颖而出。 盈科视控凭借其【IC 载板及先进 PCB 智慧工厂服务商】参赛项目,荣获大赛第四名。 本次大赛由安徽省发改委、安徽省财政厅、合肥市人民…

图形学及图形学进展

有段时间没有来CSDN了,最近一直忙于工作,最近图形学方面,特别是重建图形学方面有了比较大的进展,然后NeRF-SLAM向也有不少进展,但由于ChatGPT风光无限,光芒都没有发出来,后续还是继续创作&#…

【已解决】ChatGPT报错“Unable to load history Retry“等问题

解决ChatGPT历史加载错误:“Unable to load history Retry”问题指南 引言 在使用ChatGPT时,您可能遇到过一个常见的错误提示:“Unable to load history Retry”。这可能会阻止您查看以前的对话历史。本文将为您提供一个详细的教程&#xf…

nodejs express vue 酒店预订系统源码

开发环境及工具: nodejs,vscode(webstorm),大于mysql5.5 技术说明: nodejs express vue elementui 功能介绍: 用户端: 用户登录注册 首页显示轮播图,客房分类&…

2010年5月27日Go生态洞察:I/O中Go的热门问答

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【JS】判断字符串是否为 url 的方法

文章目录 用法解析 用法解析 当你传递一个字符串给 URL 构造函数时: 如果字符串是一个有效的 URL,它将返回一个新的 URL 对象。否则,它将返回一个错误。 const url new URL("https://www.baidu.com/"); console.log(url);函数封装&#xf…

Final Cut Pro X 10.6.10 跨行小白都能看懂的安装教程

Final Cut Pro X又名FCPX,是MAC上非常不错的视频非线性剪辑软件,它剪辑速度超凡,具有先进的调色功能、HDR 视频支持,以及 ProRes RAW,让剪辑、音轨、图形特效、整片输出,支持主流的摄像机格式,是专业视频剪辑领域的王者工具。 获取路径地址 最…

C语言每日一题(25)链表的中间结点

力扣 876. 链表的中间结点 题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 思路分析 快慢指针法 用一慢一快指针遍历整个链表,每次遍历,快指针都会比慢指针多…