Mysql同步数据到Doris的踩坑过程

问题背景

由于项目需要,需要把多个Mysql数据库的数据同步到Doris数据库,然后利用Doris强调的计算和查询能力,来满足业务需求。有关Doris可以查看它的官方文档来了解它。

seatunnel的使用到放弃

缘起

从《第十届GIAC全球互联网架构大会》了解到在etl工具领域出了一个新的由国人开发的工具——Seatunnel,看PPT介绍是比阿里的Datax还好用的数据同步工具,以下图片来自大会PPT《白鲸开源 代立冬-基于 Apache SeaTunnel 实现超高性能数据同步.pdf》

从这个PPT文档上面来看,支持的数据源比其他三款多,单机性能比最快的DataX还快20%-50%,以及社区很活跃等等,那肯定果断使用Apache SeaTunnel来做数据同步是最好的选择了。

使用

于是我开始进入SeaTunnel的官网,开始学习,粗略看了下,好像确实强大和简单,于是开始着手部署到测试环境去验证,下载最新版本(当时是2.3.2),在测试Mysql同步到Doris时,马上就遇到了一个坑:

org.apache.seatunnel.shade.com.typesafe.config.Config这个类找不到

在社区群请教大佬,大佬说让我用dev分支试试,于是我下载dev最新的代码,本地打包去部署,这里又有坑,因为Seatunnel里面有依赖一些在maven官方库没有的包,所以有些包需要自己下载,但没有找到相关文档说明,咨询大佬才知道,给了我这个文章参考,成为 Seatunnel 源码贡献者保姆级教程

按照这个文档操作之后,顺利打包,然后去部署,可以正常同步数据了。很开心~

在测试环境测试1000万数据用了999s,平均10673条/s,速度还是相当不错的。

 但是立马又发现问题,有时候能正常跑完,有时候又会报错,提示:

1.ErrorCode:[Doris-01], ErrorDescription:[stream load error]

2.ErrorCode:[Doris-01], ErrorDescription:[stream load error] - Load status is Label Already Exists and load job finished, change you label prefix or restore from latest savepoint!

3.Please increase checkpoint timeout in the seatunnel.yaml

这里面1,2是doris那边Stream load出问题了,应该是seatunnel生成的lable prefix和之前提交的又重复,倒是提交不成功,属于是seatunnel生成策略问题,3这个就很迷,对seatunnel提交数据到doris的时机和控制不是很了解,官网也没有一个很清楚的说明,如果表数据量很大,很容易checkpoint一直卡着,然后超时,配置了split分片后也会,不知道如何解决好。并且在生产(数据量更大)测试的时候,有时候发现读不到数据,都是0

有时候任务信息显示的写入数量,在doris去查询对不上,相差很远。

缘落

由于遇到了很多奇奇怪怪的问题,而又不知道应该怎么查找问题,怎么解决问题,搞的就很烦了,可能工具本身是很好的工具,只是我使用的问题,很有可能是各种参数配置的问题,但是这里又没有一个最佳实践案例给参考,在官网上参数说明也很简单,对应技术大佬或者从事etl工具开发者来说可能看到这些说明就基本明白怎么样去调优,但是对于我这个小白来说,完全不知道要怎么办,于是打算放弃使用Seatunnel了,或许它很好,或许它未来会更好,等到它更加成熟我再来使用它吧,暂时再见了~

好用的datax

由于无法使用好Seatunnel,于是打算使用datax来同步,因为Doris用的也是Mysql的连接协议,我测试一下在datax中使用同步Mysql一样的方式来同步数据到Doris,慢的可怕,只有几百每秒的速度,但确实大数据量也很稳定的同步,但这个速度显然不满足需求。

在Doris官网文档里面发现有相关的生态扩展,见DataX Doriswriter - Apache Doris,下载最新的DataX,发现这个插件已经集成到DataX里面的,于是我使用最新的DataX来测试一下数据同步,直接惊讶到我了,速度达到了惊人的11MB/s,平均21761条/s

这个速度比Seatunnel的速度还要快一杯了,并且很稳定,没有奇奇怪怪的问题,参数设置很明确多少条数据、多大的数据进行写入。

于是乎果断使用上了datax来进行数据同步了。

总结

最新的技术不一定最好用,刚出来还没有经历过大面积的应用,总会有很多奇奇怪怪的Bug,但是新的工具新的技术总是推动着技术的发展和革新,希望Seatunnel未来能做到又快又好用。

在技术实现选择上面还是不能完全听别人的介绍或者百度搜索的资料,还是需要自己实际的去对比一下,有些时候别人的说的不一定对,或者别人的一下测试数据或者理论数据是在不同版本(可能不是发行版)不同环境中得出来的,所以还是需要自己实际进行测试对比,来决定使用什么样的实现方案。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

口袋参谋:淘宝不限类目,透视竞品实时销量!快试试这个插件

​在运营一家店铺之前,可以先了解各类目宝贝的市场行情,及时掌握不同类目宝贝的价格、销售情况,根据需求制定出属于自己的营销策略。 【可跨类目竞店透视】功能: 支持一键获取任意店铺宝贝概况信息 【跨类目竞店透视】功能使用 …

C/C++之链表的建立

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.头插 1.1简介 1.2代码实现头插 …

PyCharm克隆github上开源的项目

PyCharm怎么clone github上开源的项目 一、先要确保PyCharm正确的配置了Git 如果你已经在PyCharm中配置好了Git,可以跳过此步骤,直接看下一步。 那么怎么在PyCharm中配置Git呢? 百度搜索Git安装包,安装过程不再多说&#xff0…

数据结构与算法基础-学习-34-基数排序(桶排序)

目录 一、基本思想 二、算法思路 1、个位排序 (1)分配 (2)收集 2、十分位排序 (1)分配 (2)收集 三、源码分享 1、InitMyBucket 2、DestroyMyBucket 3、ClearMyBucket 4、…

JMeter接口测试

0.前言, 我决定我的代码必须要提升性能了,而不是写不写得出来的问题了, however,怎么知道我的代码是不是很烂和健壮性,需要专业的测试工具来测试出来,如高并发QPS是什么?,高频率是什么? 怎样自动化测试解放双手 1.jmeter是apache使用java的测试工具,模拟巨大的负载,官网地址…

C++ 特性模版

目录 1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 1. 非类型模板参数 模板参数分类类型形…

数据库数据恢复-Oracle数据库truncate的数据恢复案例

Oracle数据库故障&分析: 北京某单位Oracle 11g R2数据库误执行truncate table CM_CHECK_ITEM_HIS,表数据丢失,查询该表时报错。数据库备份无法使用,表数据无法查询。 Oracle数据库Truncate数据的机理:执行Trunca…

如何初始化静态成员在类中

c - How do I initialize a const data member? - Stack Overflow

【GO语言基础】基本数据类型

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录数据类型数值型:整数类型:浮点数类型: 字符型-布尔型-字符串零值转义字符 常用类型转换运算符总结 数据…

2023-9-11 台阶-Nim游戏

题目链接&#xff1a;台阶-Nim游戏 #include <iostream> #include <algorithm>using namespace std;int main() {int n;cin >> n;int res 0;for(int i 1;i < n; i){int x;cin >> x;if(i % 2) res ^ x; }if(res) cout << "Yes" &l…

Ask Milvus Anything!聊聊被社区反复@的那些事儿 Ⅰ

作为用户备受期待的重大版本&#xff0c;Milvus 2.3 不仅新上线了实用的新功能&#xff0c;还对已有功能的进行更新和优化。因此&#xff0c;新版本一经发布&#xff0c;便受到了社区用户的热切关注&#xff0c;期间我们也陆陆续续收到了不少用户的使用体验及问题反馈。 为了给…

多元共进|科技促进艺术发展,助力文化传承

科技发展助力文化和艺术的传播 融合传统与创新&#xff0c;碰撞独特魅力 一起来了解 2023 Google 开发者大会上 谷歌如何依托科技创新 推动艺术与文化连接 传承和弘扬传统文化 自 2011 年成立以来&#xff0c;谷歌艺术与文化致力于提供体验艺术和文化的新方式&#xff0c;…