背景

参与项目有关数据采集,采集数据同步到数据库之前是使用sql的形式去进行同步,考虑到全表同步数据时数据量过大导致mybatis批量插入数据内存异常,原始解决方案采取分批次进行导入,但是同步数据速度相对会比较慢。这块已经达到性能的瓶颈相对来说优化的点很少


解决方案

采用消息中间件KAFKA结合Doris Routine load 例行任务进行数据同步,Kafka 是每秒几十万条消息吞吐对于大数据量处理上面性能比较好。而且它能进行部分时间内的数据保留,以及它单分区内能按顺序消费,也便于我们对后续数据同步出现问题做响应的处理。

Kafka 结合Doris Routine load 支持导入的格式csv, json 文本格式,我们这边采用csv 它相比与JSON来说粒度更细,更便于我们在数据同步时针对于出错数据做处理


流程图


批次号的解释:
相当于我有一个瓶子A现在往里面倒水倒满了就停然后换个瓶子B继续倒倒一半停了,我再换个瓶子C倒满再换瓶子D瓶子ABCD分布就对应批次号ABCD

模型:
这是我们导入数据的一种方式,每个业务数据采集对应一个采集模型


针对于导入出现异常的处理

这点主要利用kafka的一个偏移量offset去处理,主要针对两块进行处理,一块是重新导入(是当数据导入时导入数据的格式与数据库表的格式对应不上跳过这部分数据重新导入),第二块是继续导入(当导入数据的长度等大于数据库表字段长度时,保留数据修改数据库表后再次导入数据)。

流程图

这两块的配置具体可以参考doris routine load 中的配置可以实现

数据导入 - Kafka 结合Doris Routine load 任务导入相关推荐

  1. Apache Doris Routine Load数据导入使用方法

    Apache Doris 代码仓库地址:apache/incubator-doris 欢迎大家关注加星 1.概要 Routine load 功能为用户提供了一种自动从指定数据源进行数据导入的功能. R ...

  2. Doris Routine Load数据导入实战【每秒导入16w】

    Doris Routine Load实战[每秒导入16w] 1. Kafka安装 #1.下载安装包 wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2. ...

  3. doris routine load

    https://doris.apache.org/zh-CN/docs/data-operate/import/import-way/routine-load-manual/ json (无嵌套) C ...

  4. Doris Routine Load正则表达实战

    Doris Routine Load正则表达实战 1. Kafka安装 #1.下载安装包 wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3. ...

  5. Doris Routine Load接入Kafka0.8.0实战

    Doris Routine Load接入Kafka0.8.0实战 想要更全面了解Spark内核和应用实战,可以购买我的新书. <图解Spark 大数据快速分析实战>(王磊) 1. 问题产生 ...

  6. Doris系列之导入Kafka数据操作

    Doris系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Sp ...

  7. Doris系列13-数据导入之Routine Load

    文章目录 一. Routine Load 概述 二. Kafka 例行导入 2.1 创建例行导入任务 2.1.1 columns_mapping 2.1.2 where_predicates 2.1. ...

  8. 第3.3章:StarRocks数据导入--Routine Load

    Routine Load(例行导入)是StarRocks自带的一种可以从Kafka中持续不断的导入数据的方式,我们可以方便的在StarRocks中通过SQL来控制导入任务的暂停.继续及停止. 关于Ro ...

  9. Doris之Routine Load

    Routine Load 例行导入(Routine Load)功能为用户提供了一种自动从指定数据源进行数据导入的功能. 本文档主要介绍该功能的实现原理.使用方式以及最佳实践. FE:Frontend, ...

最新文章

  1. (C++)数组作为函数参数
  2. [DruidAbstractDataSource] maxIdle is deprecated
  3. 教你如何使用 OpenCV检测图像中的轮廓
  4. ASP.NET MVC 上传大文件时404
  5. aspnet管理员用户登录_WINDOWS/LINUX系统修改管理员密码方法
  6. 95-40-115-java.util.concurrent-线程-AbstractExecutorService
  7. 电偶溶解氧传感器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. 使用Data URI Scheme优雅的实现前端导出csv
  9. HDU1722 Cake【GCD】
  10. 【安装包】WinSCP
  11. android复制粘贴功能,android 复制 粘贴 剪切功能应用
  12. PT002(JspStudy)安装与端口解决问题
  13. BATH四巨头鼎立,中国云市场将走向何方?
  14. 在寂静的夜中、独自沉沦_悲伤QQ个人签名
  15. LOJ10144宠物收养所
  16. 【知识点总结】电力拖动系统——直流调速系统
  17. 史上最完美的 Typora 教程
  18. 中国下一代互联网(CNGI)建设市场投资前景预测与发展战略规划研究报告2021~2027年
  19. Python爬取中原地产香港26281套在售二手房数据并分析
  20. 汇编语言各“标志位”含义

热门文章

  1. 怎么恢复删除的数据?
  2. 爬虫之Splash基础篇
  3. php jcrop教程,PHP+Jcrop+artDialog头像上传
  4. 优思学院 | 质量工程师的职责有哪些?
  5. 路由策略route-map
  6. 如何使用latex排版并排放置两张图
  7. C#之如何把子窗体嵌入到主窗体中显示
  8. Unity 快速切换 Game 视图分辨率
  9. Jsplumb基础教程(vue+jsplumb+d3)
  10. 微信小程序开发教程:项目四组件布局 课后习题