如何巧用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的组合可以充分发挥各自的优势,构建出高性能的实时数仓系统。
热门推荐
喝茶对肾脏的影响有多大?喝茶对肾脏的影响是什么?
心学问教育咨询,社会参与与公民责任:培养社会责任感与领导力
强化学习(Reinforcement Learning, RL)详解
PCCT在胸部应用中的最新进展
关于脂肪肝的饮食“减法”
如何在研发团队中评估和管理人员配置
“一保三肥”技术引领我省花生增产增效新篇章
房改房产权归属确认及拆迁范围判断指南
睡不着有啥办法让人睡觉吗
使用node_exporter、Prometheus和Grafana实现主机监控
Excel中给数字添加圆圈的六种方法
低胆固醇饮食,适合高胆固醇人群的5条建议
笔记本独显的作用是什么?独立显卡对设计本有何好处?
员工考勤制度管理中如何处理特殊情况?
氯气是一种什么样的气体?氯气对人体的危害
做根管治疗的步骤详解:从预约到完成,你需要了解的所有细节
别让“做不完的测评”难住求职大学生
高血压患者规范用药:不可忽视的“生命闹钟”
特别的爱给特别的你:让特殊儿童的未来充满阳光
受美元升值影响 亚洲多国货币贬值经济承压
如何认识货币贬值的现象?这种现象对经济有哪些影响?
番泻叶长期服用对身体有伤害吗
探讨“闵”字的读音、意义及其文化内涵与现代应用
实探“金三”楼市!信心加速恢复,成交大幅回暖!
国自然申请时如何巧妙的向评审专家要钱?
如何衡量一两黄金的价值与重量关系?这种关系在投资中如何应用?
如何评估城市生活质量以选择合适的居住地?这种评估对生活品质有何影响?
肺炎治疗:头孢 + 阿奇霉素 VS 头孢 + 多西环素,哪个效果更好?
毛玻璃眼角膜:美瞳佩戴者的隐形风险
变频器为什么要自学习电机