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

Flink CDC中我的业务不太适合使用lookup join,同步的可以理解为,用户信息表,部门?

Flink CDC中我的业务不太适合使用lookup join,同步的可以理解为,用户信息表,部门表,权限表、角色表,jion后给整理成一个大宽表。这个有啥好的办法吗?

展开
收起
真的很搞笑 2023-08-02 09:06:06 101 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    对于像用户信息表、部门表、权限表和角色表这样的维度数据,在 Flink CDC 中使用 Lookup Join 可能并不是最佳的选择。Lookup Join 主要适用于维度表相对较小的情况,而对于大型维度表,它可能会导致性能问题或内存消耗过高。

    针对这种情况,以下是一些替代方案可以考虑:

    批量加载维度表:将维度表加载到 Flink 程序的内存中,并使用广播变量或自定义数据源将其分发给所有任务实例。这样,每个任务实例都可以在本地缓存维度表,并通过维度表的键进行关联查询。这种方式适用于维度表相对较小且不经常变化的情况。

    异步维度查询:使用异步 I/O 模型,在 Flink 程序中使用异步维度查询,将维度表的查询请求发送到外部存储系统(如数据库),并使用回调函数处理查询结果。这种方式可以减少对内存的消耗,并提高程序的吞吐量。

    缓存维度数据:使用缓存系统(如 Redis、Memcached 等)来缓存维度数据。在 Flink 程序中,通过查询缓存系统获取维度数据,避免频繁地查询外部存储系统。这种方式可以提高查询性能,并减轻外部存储系统的负载压力。

    数据预处理:在数据进入 Flink CDC 之前,对维度数据进行预处理,将其整理成宽表形式。这样,在 Flink CDC 中可以直接使用宽表进行操作,避免使用 Lookup Join。这种方式适用于维度数据变化较少、宽表结构相对稳定的情况。

    2023-08-03 22:39:12
    赞同 展开评论 打赏
  • 没有相同的pk组件大宽表是个问题,此回答整理自钉群“Flink CDC 社区”

    2023-08-02 09:13:13
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 覃立辉 立即下载
    Flink CDC Meetup PPT - 孙家宝 立即下载
    Flink CDC Meetup PPT - 徐榜江 立即下载