Doris:Binlog Load导入数据

        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;

        用户还可以通过DROP JOB where jobName='jobname' 删除一个 JOB 作业,作业会被立即停止同时删除。

 

5.测试数据同步

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

2)查看目标表中的数据

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

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
上层应用业务对实时数据的需求,主要包含两部分内容:1、 整体数据的实时分析。2、 AB实验效果的实时监控。这几部分数据需求,都需要进行的下钻分析支持,我们希望能够建立统一的实时OLAP数据仓库,并提供一套安全、可靠的、灵活的实时数据服务。目前每日新增的曝光日志达到几亿条记录,再细拆到AB实验更细维度时,数据量则多达上百亿记录,多维数据组合下的聚合查询要求秒级响应时间,这样的数据量也给团队带来了不小的挑战。OLAP层的技术选型,需要满足以下几点:1:数据延迟在分钟级,查询响应时间在秒级2:标准SQL交互引擎,降低使用成本3:支持join操作,方便维度增加属性信息4:流量数据可以近似去重,但订单行要精准去重5:高吞吐,每分钟数据量在千W级记录,每天数百亿条新增记录6:前端业务较多,查询并发度不能太低通过对比开源的几款实时OLAP引擎,可以发现Doris和ClickHouse能够满足上面的需求,但是ClickHouse的并发度太低是个潜在的风险,而且ClickHouse的数据导入没有事务支持,无法实现exactly once语义,对标准SQL的支持也是有限的。所以针对以上需求Doris完全能解决我们的问题,DorisDB是一个性能非常高的分布式、面向交互式查询的分布式数据库,非常的强大,随着互联网发展,数据量会越来越大,实时查询需求也会要求越来越高,DorisDB人才需求也会越来越大,越早掌握DorisDB,以后就会有更大的机遇。本课程基于真实热门的互联网电商业务场景为案例讲解,具体分析指标包含:AB版本分析,下砖分析,营销分析,订单分析,终端分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。整个课程,会带大家实践一个完整系统,大家可以根据自己的公司业务修改,既可以用到项目中去,价值是非常高的。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0DorisDBHadoop2.7.5Hbase2.2.6Kafka2.1.0Hive2.2.0HDFS、MapReduceFlume、ZookeeperBinlog、Canal、MySQLSpringBoot2.0.8.RELEASESpringCloud Finchley.SR2Vue.js、Nodejs、Highcharts、ElementUILinux Shell编程等课程亮点:1.与企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink4.支持ABtest版本实时监控分析5.支持下砖分析6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.天级别与小时级别多时间方位分析9.数据库实时同步解决方案10.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI11.集成SpringCloud实现统一整合方案12.互联网大数据企业热门技术栈13.支持海量数据的实时分析14.支持全端实时数据分析15.全程代码实操,提供全部代码和资料16.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_37559973

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值