如何巧用Flink+ClickHouse构建高性能实时数仓?
创作时间:
作者:
@小白创作中心
如何巧用Flink+ClickHouse构建高性能实时数仓?
引用
CSDN
1.
https://blog.csdn.net/SelectDB_Fly/article/details/137966658
Flink和ClickHouse都是用于构建实时数据仓库的优秀工具。Flink是一个用于流处理的开源框架,而ClickHouse则是一个用于实时数据仓库的高性能列存储数据库。Flink是ClickHouse的最佳搭档,为什么这么说呢?
ClickHouse的特点
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),它采用了列式存储、数据压缩、多核并行、向量引擎、分布式处理等技术,性能遥遥领先竞品。
在1亿条数据量级下,ClickHouse与多种常见数据处理系统的查询速度对比图(数字越小代表耗时越短,性能越好),可以看到ClickHouse的性能数据遥遥领先。
图1:ClickHouse与多种常见数据处理系统的查询速度对比
ClickHouse的局限性
尽管ClickHouse的数据分析能力非常高效,但它也有自己的局限性:
- 不适合大量单条数据的写请求,因为写入过快时后台合并不过来,会报Too many parts等错误;
- 不适合频繁的数据更新和删除操作,因为变更数据的聚合处理需要时间,短期内可能出现数据不准的现象;
- 不擅长做多张表的关联(尤其是不同数据库引擎的源表之间JOIN);
- 生态支持弱,不适合多种不同数据源(特别是流式数据源)的接入;
Flink的优势
而这些ClickHouse不擅长做的事情,刚好是Flink最适合的领域:
- Flink流处理模型,天然适合处理大量单条的流数据,吞吐量高,延迟低;
- Flink的流-动态表映射模型(如下图,来自Flink官网文档),可以很好地应对频繁更新和删除等记录。还可以通过Mini-Batch、Window等优化手段,极大地降低下游ClickHouse的处理压力;
- Flink支持多种流和流的JOIN,还支持流和维度表的JOIN操作。借助强大的状态管理能力,可以做到精确的关联语义;
- Flink的生态支持很丰富,常见的各类系统基本都有Connector;而且通过标准化Source和Sink API,也可以轻松实现自己的Connector。
图2:Flink的流-动态表映射模型
综上所述,Flink和ClickHouse的组合可以充分发挥各自的优势,构建出高性能的实时数仓系统。
热门推荐
NAND闪存技术详解:从基本原理到实际应用
“浪漫南宁,夜景美!”昨晚,数百万网友共同聚焦这座“中国不夜城”
“浪漫南宁,夜景美!”昨晚,数百万网友共同聚焦这座“中国不夜城”
期刊检索号是什么
鱼线号数与钓重对照表
浅析王安石变法中“保马法”实施的背景及失败的原因
右归丸的功效与作用简介
碳纤维板有哪些应用?为什么它在工业领域如此受欢迎?
宋朝五京在哪里?当时的情况是怎样的?
7步用厨房工具自酿出你第一杯美味啤酒!
种植玫瑰花应选择哪种泥土?
hyper-v安装与使用超详细教程,一看就会
打造多功能飘窗设计,提升室内采光与视野
哪些患者需进行鼻内窥镜下鼻窦手术?
高血糖可以吃龙眼吗?龙眼的升糖指数及食用注意事项
澳科大团队在类风湿性关节炎研究中取得重要进展
王者荣耀:如何根据英雄定位与个人风格,打造最强阵容?
美国留学生活中吹风机的选择与使用指南
Excel图表横纵坐标标题设置完全指南
敦煌石窟进入预防性保护 推行“负责任的旅游模式”
坚决不学歼20?为什么全世界的隐身战斗机,都在仿美国F-22战机
乡村教师每月收入多少
卫生间马桶下水不畅怎么办?
减肥期间可以吃方便面吗?这份健康指南请收好
银行的信用卡最低还款和全额还款的区别?
下降星座天蝎座另一半,下降天蝎座的特点及情感互动
车厘子VS樱桃:它们真的是同一种水果吗?揭秘背后的差异!
从洗浴场到避风港,年轻人过上“沉浸”夜
烧菜最常用的几种香料
Logo设计图片:解锁品牌视觉识别的关键要素