如何巧用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的组合可以充分发挥各自的优势,构建出高性能的实时数仓系统。
热门推荐
《哪吒之魔童闹海》热映:语言表达如何影响情绪?
欧几里得对“素数有无穷多个”的证明及其有效性
陶瓷盆釉面破损修复指南:从轻微划痕到严重破损的全面解决方案
地锅豆腐PK其他豆腐:谁才是真正的美味?
柳林地锅豆腐:非遗美食中的瑰宝
地锅豆腐PK臭豆腐,谁更营养?
【科普营养】米饭高GI,怎么吃更健康?——米饭选得好,健康没烦恼
冬至吃汤圆:从文化传承到健康指南
时间管理的“四象限法则”:如何高效规划你的工作与生活
庄筱婷:我的科学孕期管理秘籍
7种让画面出挑的对比设计,彻底告别创意焦虑
工业设计的具体要求
GIS技术如何重塑智慧城市未来?
GIS技术助力环保监测:以北京市空气质量监测为例
《楚门的世界》:现代版洞穴寓言?
探秘温宿大峡谷:新疆的“活地质博物馆”
阿克苏:借力“一带一路”打造西部经济新高地
探访世界文化遗产:阿克苏的千年古迹
未来最稳的八大“金饭碗”:教师没有上榜,医生含金量暴增!
2月还有选调生招人!党员、学生干部可冲,有编制!
CPI是什么意思?全面解析及其计算方法
从万达到格力:霸道总裁式管理的现代诠释
孙陶然揭秘:如何成为霸道总裁?
房地产自媒体SEO秘籍大公开!
北京约谈16家房地产自媒体:行业洗牌在即,内容为王时代将至
房地产自媒体如何玩转成功管理?
十二星座配对:谁是你命中注定的TA?
星座恋爱心理学:揭秘你的完美伴侣
星座配对:你的恋爱运势大揭秘!
白羊座 & 狮子座:爱情中的双星闪耀