flink CDC+clickhouse 构成的实时数仓中,原始数据通过flinkCDC 同步到clickhouse 形成贴原创,明细层的数据是如何生成呢?
我的理解: 明细层数据是要通过贴原层的数据经过join关联而来,这样子明细层似乎没法实时的
我的想法是明细层直接建视图 ,但是视图确实不如实体表方便,
还有就是,我数据有多个来源系统,假设每个系统都有客户数据要计算并写入明细层的客户信息表,明细层如果是一张实体表,写入性能上会不会是瓶颈
flink CDC+clickhouse 构成的实时数仓问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
yule.yang 2024-01-23 10:55关注在使用Flink CDC和ClickHouse构建实时数仓时,确实需要仔细考虑明细层数据的生成方式。
首先,你的理解是正确的,明细层数据通常是通过对贴原创层的数据进行join等关联操作而来的。这种方式有助于将原始数据进行整合,形成更加具体和详细的信息。
关于你提到的实时性问题,确实在使用join等关联操作时可能会导致明细层数据无法实时生成。一种解决方案是采用流处理的方式,将Flink的流处理能力应用于数据的实时处理和计算,以实现更快的数据更新。这样可以在一定程度上提高实时性。
关于明细层是否直接建视图的问题,视图的确可以提供一种方便的方式来查看和处理数据,但是你已经指出,相比实体表,视图在性能上可能有一些损失。因此,在权衡方便性和性能的时候,需要根据具体情况做出选择。
至于多个来源系统的数据写入性能问题,如果每个系统都有客户数据要计算并写入明细层的客户信息表,确实可能会引起性能瓶颈。在这种情况下,你可以考虑以下几个方面:
- 分区表: 如果可能,可以将实体表按照一定的规则进行分区,以减轻写入的压力。
- 批处理和定时任务: 不是所有的数据都需要实时写入,可以考虑将一些计算较为复杂的数据以批处理或者定时任务的方式进行写入,降低实时计算的压力。
- 缓存: 对于一些频繁查询的数据,可以考虑使用缓存来提高查询性能。
总体来说,明细层数据生成的方式需要综合考虑实时性、方便性和性能,根据具体业务需求进行权衡和选择。
解决 无用评论 打赏 举报