开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

A ,B ,C三张表,实时打宽成一张明细宽表D,以下要求,如何实现呢?

A ,B ,C三张表,实时打宽成一张明细宽表D,ABC表是三种不断变化的表,我要怎么去做join比较好呢?regular join 设置ttl 可以,但是ttl时间过了,再来一条A数据,BC不来,插入D时,会把原先BC表字段的数据覆盖成null。有什么好办法吗?

展开
收起
滴滴滴~ 2023-03-29 16:55:37 147 0
1 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    为了实现实时打宽成一张明细宽表D,可以考虑使用流处理框架,如Apache Flink或Apache Spark Streaming等。这些框架可以处理实时数据流,并支持对数据流进行Join操作。

    对于你提到的问题,可以考虑使用状态管理来解决。在流处理框架中,可以使用状态来跟踪和管理数据。对于需要使用TTL的表,可以将其状态设置为有限的生存时间,一旦TTL时间到期,就可以将其从状态中删除。当新的A表数据到达时,可以检查BC表的状态是否存在,并将A表数据与BC表数据进行Join。如果BC表的状态不存在,则忽略A表数据,以避免将BC表的字段数据覆盖为Null。

    另外,还可以考虑使用缓存机制来减轻Join操作的负担。可以使用缓存存储BC表的数据,以便在处理A表数据时,可以从缓存中获取BC表的数据,而不是每次都对BC表进行Join操作。这样可以提高处理效率,并减少对BC表的访问次数。

    综上所述,使用流处理框架、状态管理和缓存机制可以有效地解决实时打宽表过程中遇到的问题。需要根据具体情况进行实现和调整。

    2023-03-30 17:58:41
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
玩转HBase和Lindorm 大数据入门和实战 立即下载
《玩转HBase和Lindorm大数据入门和实战》 立即下载
《阿里云原生多模超融合数据库Lindorm》 立即下载