clickhouse 实时数据更新方案求助

171 天前
 KJH

各位大佬架构师们,紧急求助

我们有个报表类的需求,目前架构设计如下

数据量:1TB 左右 数据流转流程 业务数据->( kafka 、flink )->数据仓库( MySQL)->通过 ETL 抽取->Clickhouse->报表呈现

由于我们报表对实时性要求比较高,而且在生成报表的时候涉及到的表多、逻辑也复杂,不得已我们将数据仓库的数据原封不动的同步到了 clickhouse ,后面在进行报表生成计算的时候,全部查 clickhouse 的数据最后生成大宽表。

我知道 clickhouse 是列式存储,对数据得删除和更新都是重量级操作,而我们的数据都是业务数据,更新比较频繁,所以我们采用了先删后插的策略,alter table delete (同步删非异步)。

这就导致我们的数据更新周期最低也要 1 个小时

之前考虑个几种方案

  1. 使用 ReplacingMergeTree 引擎,只追加数据,不删除,然后查询通过 final 或这 argMax 取最新数据,但是这有两个问题,一:final 没办法进行表关联查询, 二:argMax 对我们改动太大太大,表字段页表字段也比非常多( 100+)
  2. 对于实时性要求高的报表 不再去查 clickhouse , 直接查数据仓库

我比较中意第二种,因为我是在想不出更好的方案了,想请教下各位架构师们有没有比较好的方案

在此拜谢

4315 次点击
所在节点    程序员
41 条回复
KJH
151 天前
@v2day 好的,谢谢大佬,我了解下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1123606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX