【Apache Doris】一键实现万表MySQL整库同步 | 快速体验

【Apache Doris】一键实现万表MySQL整库同步 | 快速体验)

  • 一、 环境信息
    • 1.1 硬件信息
    • 1.2 软件信息
  • 二、 流程介绍
  • 三、 前提概要
    • 3.1 安装部署
    • 3.2 JAR包准备
      • 3.2.1 数据源
      • 3.2.2 目标源
    • 3.3 脚本模版
  • 四、快速体验
  • 五、常见问题
    • 5.1 Mysql通信异常
    • 5.2 MySQL无Key同步异常
    • 5.3 CKP ON HDFS连接异常
    • 5.4 CKP ON HDFS权限异常
    • 5.5 其它参考官方【Flink Doris Connector】QA

一、 环境信息

1.1 硬件信息

  1. CPU :48C
  2. CPU型号:x86_64
  3. 内存 :185GB

1.2 软件信息

  1. 系统 :CentOS
  2. Apahce Doris版本 :2.0.2
  3. Mysql版本:5.7.36
  4. Flink版本:1.17.1
  5. Flink-Doris-Connector版本:1.5

二、 流程介绍

Mysql万表同步至Doris,主要是通过Flink计算引擎、基于Doris社区研发的Flink Doris Connector 实现的。无需提前建表,当Flink任务启动后,Flink Doris Connector 会自动识别对应的Doris表是否存在,不存在则自动创建Doris表,如果存在则直接启动同步任务。
在这里插入图片描述

三、 前提概要

3.1 安装部署

Doris/Flink/Mysql的安装部署流程可以根据版本自行Google。

  1. Doris下载地址:Doris下载地址
  2. Flink下载地址:Flink下载地址
  3. MySQL包下载地址:MySQL包下载地址

3.2 JAR包准备

3.2.1 数据源

Flink源端读取MySQL数据的连接器,可通过该地址下载flink-sql-connector-mysql-cdc-2.4.1.jar:
mysql-cdc-2.4.1下载地址

3.2.2 目标源

Flink目标端写Doris的Flink Doris Connector ,可通过该地址获取:
flink-doris-connector下载地址

3.3 脚本模版

./bin/flink run \
    -Dexecution.checkpointing.interval=10s \
    -Dparallelism.default=1 \
    -c org.apache.doris.flink.tools.cdc.CdcTools \
    lib/flink-doris-connector-1.17-1.5.0-SNAPSHOT.jar \
    mysql-sync-database \
    --database doris_db \
    --mysql-conf hostname= 127.0.0.1 \
    --mysql-conf port= 3306 \
    --mysql-conf username= root \
    --mysql-conf password= root \
    --mysql-conf database-name= mysql_db \
    --mysql-conf scan.startup.mode=initial \
    --including-tables "test.*" \
    --sink-conf fenodes= 127.0.0.1:8030 \
    --sink-conf username=root \
    --sink-conf password=root \
    --sink-conf jdbc-url=jdbc:mysql://127.0.0.1:9030 \
    --sink-conf sink.label-prefix=label \
    --table-conf replication_num=1 \
  • –job-name Flink任务名称, 非必需。
  • -Dexecution.checkpointing.interval checkpoint时间间隔,实际task中是需要checkpoint后才执行数据写入
  • –database 同步到Doris的数据库名。
  • –mysql-conf MySQL CDCSource 配置,例如–mysql-conf hostname=127.0.0.1 ,可以在这里查看 所有配置MySQL-CDC,其中hostname/username/password/database-name 是必需的。
  • –including-tables 需要同步的MySQL表,可以使用"|" 分隔多个表,并支持正则表达式。 比如–including-tables “test.*” 就是同步所有以test开头的表。
  • –sink-conf Doris Sink 的所有配置,可以在这里查看完整的配置项。
  • –table-conf Doris表的配置项,即properties中包含的内容。 例如 --table-conf replication_num=1

四、快速体验

例如单表同步MySQL中Star Schema Benchmark的part零件信息表,共1600000条记录。

./bin/flink run \
    -Dexecution.checkpointing.interval=10s \
    -Dparallelism.default=1 \
    -c org.apache.doris.flink.tools.cdc.CdcTools \
    lib/flink-doris-connector-1.17-1.5.0-SNAPSHOT.jar \
    mysql-sync-database \
    --database ssb_test \
    --mysql-conf hostname=172.21.16.12 \
    --mysql-conf port=23306 \
    --mysql-conf username=root \
    --mysql-conf password=123456 \
    --mysql-conf database-name=ssb_test \
    --mysql-conf scan.startup.mode=initial \
    --mysql-conf scan.incremental.snapshot.chunk.key-column=ssb_test.part:p_partkey \
    --including-tables "part" \
    --sink-conf fenodes=10.16.10.6:8032 \
    --sink-conf username=root \
    --sink-conf password=root \
    --sink-conf jdbc-url=jdbc:mysql://10.16.10.6:9034 \
    --sink-conf sink.label-prefix=label05 \
    --table-conf replication_num=1 \

在FLINK_HOME执行上述命令后,WEB UI中会新增相应Job。
在这里插入图片描述
查看taskmanager日志可以发现,task会先对mysql主键做切分,然后再根据ckp的时间间隔按批写入Commit(默认2pc提交)。

在这里插入图片描述

默认环境10秒ckp下,单并发写入只需3min左右即可同步完160W数据,且单副本数据压缩率达到90%!!!
在这里插入图片描述

五、常见问题

5.1 Mysql通信异常

不用单独加mysql驱动包;这个问题可能是因为mysql信息填写错误驱动包不兼容导致。
在这里插入图片描述

5.2 MySQL无Key同步异常

mysql源表没有设置主键,可以在脚本中指定–mysql-conf scan.incremental.snapshot.chunk.key-column=database.table:column,database.table1.column… 解决。

在这里插入图片描述

5.3 CKP ON HDFS连接异常

使用hadoop作为checkpoint时报如下异常:

Caused by: java.net.ConnectException: Call From hadoop1/ip to hadoop1:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

这类异常一般是由于网络原因端口配置错误导致,可以先进行telnet ip port看是否通,再进行调整处理。

在这里插入图片描述

5.4 CKP ON HDFS权限异常

使用默认root跑脚本时,如果出现如下异常:

Caused by: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x

这类异常一般切换至对应用户或者授权即可,这个case可以切换至hadoop用户起 或 将root用户加到hdfs用户组中即可。

在这里插入图片描述

5.5 其它参考官方【Flink Doris Connector】QA

在这里插入图片描述

【Apache Doris】一键实现万表MySQL整库同步 | 快速体验 分享至此结束,体验过程中若遇到问题欢迎留言交流

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

excel一个单元格换行方法

要是在同一个单元格内输入文字输入不下的话,我们是可以进行同一个单元格换行设置的,而且换行的方法也是有很多种,下面我们就一起来看一下有哪些方法吧。 excel一个单元格换行方法: 方法一: 1、我们可以直接按下alte…

2-10岁女童穿搭 I 看的见的时尚感

分享女儿的时尚穿搭—连帽加绒卫衣 简单易搭怎么穿都好看的卫衣 红色吸睛又显肤色,不挑人穿 面料亲肤柔软,保暖性也很棒 单穿内搭都能轻松打造时尚造型!!

广州华锐互动:AR可视化展示昆虫让教学过程更直观生动

随着科技的不断发展,AR(增强现实)技术已经逐渐走进我们的生活。通过AR技术,我们可以将虚拟的信息叠加到现实世界中,让现实世界变得更加丰富多彩。在这篇文章中,我们将以昆虫为主题,探讨AR增强现…

破案现场:Docker容器资源限制导致的oom问题

破案现场:Docker容器资源限制导致的oom问题 01 事故现场02 问题定位03 对症下药04 后记 原文来自于微信公众号“运维之美” https://mp.weixin.qq.com/s?__bizMzA5NDY1MTM3MA&mid2247484902&idx1&sn8394aefd884ee09ea546fcd400dd233c&chksm904a136…

想当老师应该去学什么专业

专业选择是决定未来职业发展的重要步骤,如果你也想成为一名老师,那么这五个专业可能会适合你! 教育学专业 教育学专业是培养教育理论和方法的学科,这些理论知识将帮助你理解教学过程、学生发展、课程设计和评估。该专业将让你全面…

人工智能教程(二):人工智能的历史以及再探矩阵

目录 前言 更多矩阵的知识 Pandas 矩阵的秩 前言 在上一章中,我们讨论了人工智能、机器学习、深度学习、数据科学等领域的关联和区别。我们还就整个系列将使用的编程语言、工具等做出了一些艰难的选择。最后,我们还介绍了一点矩阵的知识。在本文中&am…

机器学习第14天:KNN近邻算法

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 文章目录 介绍 实例 回归任务 缺点 实例 分类任务 如何选择最佳参数 结语 介绍 KNN算法的核心思想是:当我们要判断一个数据为哪一类时…

CMD - ping

文章目录 前言参数 前言 ping 命令主要测试到达指定 IP 或主机的连通性. 参数 -t: ping 指定的计算机直到中断 -a: 将地址解析为主机名 -n count: 要发送的回显请求数

教师编制缩减是为什么

老师们有没有注意到一个趋势?那就是教师编制正在逐步缩减。不知道你们发现没有,我最近在研究教育领域的新闻,发现这两年教师编制缩减的消息越来越多。这是为什么呢?今天就来跟大家聊一聊。 原因一:资金压力 第一个原因…

【华为OD题库-038】支持优先级的对列-java

题目 实现一个支持优先级的队列,高优先级先出队列,同优先级时先进先出。 如果两个输入数据和优先级都相同,则后一个数据不入队列被丢弃。 队列存储的数据内容是一个 整数。 输入描述 一组待存入队列的数据(包含内容和优先级)。 输出描述 队列…

ubuntu 使用webrtc_ros 编译linux webrtc库

ubuntu 使用webrtc_ros 编译linux webrtc库 webrtc_ros 使用WebRTC流式传输ROS图像主题 该节点提供了一个WebRTC对等方,可以将其配置为流ROS图像主题并接收发布到ROS图像主题的流。 该节点托管一个提供简单测试页面的Web服务器,并提供可用于创建和配置W…

基于springboot实现学生成绩管理系统项目【项目源码+论文说明】

基于springboot实现学生成绩管理系统演示 摘要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&am…

【从浅识到熟知Linux】基本指令之基本权限

🎈归属专栏:从浅学到熟知Linux 🚗个人主页:Jammingpro 🐟每日一句:用博客整理整理之前学过的知识,是个不错的选择。 文章前言:本文介绍Linux中的基本权限及相关指令用法并给出示例和…

互联网+智慧工地系统源码

智慧工地以施工现场风险预知和联动预控为目标,将智能AI、传感技术、人像识别、监控、虚拟现实、物联网、5G、大数据、互联网等新一代科技信息技术植入到建筑、机械、人员穿戴设施、场地进出关口等各类设备中,实现工程管理与工程施工现场的整合&#xff0…

快速压缩:迅速减小PDF文件大小的步骤与技巧

虽然png图片格式是一种无损压缩格式,但是png图片的内存大小也是比较大的,而且兼容性上也没有jpg图片好,许多平台推荐的也都是jpg格式,所以当我们需要把png转jpg格式的时候,就需要用到图片格式转换器,今天推…

JAVA创建线程方式有几种

方式1:继承Thread类 步骤: 创建一个继承于Thread类的子类重写Thread的run()方法创建当前Thread子类的对象通过实例对象调用start()方法,启动线程----》JAVA虚拟机会调用run()方法 实现: public class TestMyThread {public sta…

怎样禁止邮件发送涉密信息

数字化时代,电子邮件已成为人们生活和工作中不可或缺的通讯工具。然而,随着互联网的普及,涉密信息的泄露风险也随之增加。为了保护敏感数据,禁止邮件发送涉密信息显得尤为重要。以下是一些建议,帮助你实现这一目标。 1…

buuctf web [极客大挑战 2019]PHP

提示有备份,dirsearch扫描网站备份 GitHub - maurosoria/dirsearch: Web path scanner下载.zip格式文件 解压到python目录下 在上图位置cmd打开窗口 输入python setup.py install安装dirseach 安装好后输入命令使用dirseach python dirseach.py -u http://44296191-973d-448…

在CentOS 7.9上搭建高性能的FastDFS+Nginx文件服务器集群并实现外部远程访问

文章目录 引言第一部分:FastDFS介绍与安装1.1 FastDFS简介1.2 FastDFS安装1.2.1 安装Tracker Server1.2.2 安装Storage Server 1.3 FastDFS配置1.3.1 配置Tracker Server1.3.2 配置Storage Server1.3.3 启动FastDFS服务 第二部分:Nginx配置2.1 Nginx安装…

【深度学习】因果推断与机器学习的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生(1)潜在结果框架(Potential Outcome Framework)(2)结构因果模型(Structual Causal Model,SCM) 身处人工智能爆发式增长时代的机器学…