如何巧用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的组合可以充分发挥各自的优势,构建出高性能的实时数仓系统。
热门推荐
宝宝身上出现很多小红疹怎么办
公司破产后,员工工资的优先受偿权是什么?
征地手续流程及时间怎么认定
避坑秘笈:如何高效选购高性能随身WiFi设备?
使用PE引导ISO安装系统的详细教程
入住不到2个月发现租到串串房,如何鉴别“串串房”?
让银耳种得好也卖得好,福建古田这样“上新”
一朵“菇”激活乡村振兴大“蘑”力
老年人关节不好,吃氨糖是智商税?医生:这2类药物比氨糖有用
AI Hedge Fund:通过多个代理来模拟一个AI驱动的对冲基金开源系统
物体的沉浮条件与漂浮问题分析
电脑切换窗口卡顿怎么办?Windows和Mac系统的实用解决方案
注意!你现在的坐姿可能很危险→
血脂异常的人,该怎么吃肉?
德政府数据显示:上半年美国超中国成德国最大贸易伙伴,但对德出口仍逊于中国
气力输送,稀相or密相?
汉字“郫”的详细解释
心理学家:永远不要低估一个四十岁还好看的女人,不简单
李定国的辉煌功绩与西南人民的深厚情感
remain的用法是什么 有哪些例句
什么是交易费率?交易费率的高低如何影响交易成本?
离心萃取机在三级逆流间苯二酚提取工艺中的应用
范晔:《后汉书》的作者及其史学成就
为什么有些球员的薪资在NBA薪资排行榜上特别高?
简述舌诊的临床意义
卫生间窗户遮挡方法及防水注意事项
这座城市,科技制造业迈向“低空之城”
光栅光谱仪的应用及其背景分析
螺杆支撑座使用选型介绍
留学生合唱团操作流程是什么?如何高效管理?