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

正在通过flink cdc 做一张宽表。因为需要的字段都分散在很多表里面,我这样写合理吗?

正在通过flink cdc 做一张宽表。因为需要的字段都分散在很多表里面,所以join 很多。现在是每个表都给他建一个flink 表,然后在join。 我这样写合理吗?image.png

展开
收起
真的很搞笑 2023-12-04 07:51:58 54 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您的描述,您正在使用 Flink CDC 进行宽表处理,并且需要将多个表连接在一起。在这种情况下,为每个表创建一个单独的 Flink 表并执行 join 操作是合理的。

    然而,这种方法可能会导致一些问题,例如:

    1. 性能问题:创建大量的 Flink 表可能会影响性能,特别是在处理大量数据时。
    2. 可维护性问题:如果表的数量不断增加,管理和维护这些表可能会变得困难。
    3. 可扩展性问题:如果表的数量非常大,那么在执行 join 操作时可能会出现内存不足的问题。

    因此,建议您考虑以下解决方案:

    1. 使用 Flink SQL 或 Flink Table API 来定义一个通用的表结构,然后根据需要从不同的表中读取数据。这样可以避免创建大量的 Flink 表,并且可以更好地控制和管理数据流。
    2. 使用 Flink CDC 的内置函数(如 INNER JOINLEFT JOIN 等)来执行 join 操作。这样可以简化代码并提高可读性。
    3. 如果可能的话,尝试优化您的查询,以减少内存使用和提高性能。这可能包括使用更高效的数据结构和算法,或者调整 Flink 配置参数。
    2023-12-04 14:12:03
    赞同 展开评论 打赏
  • 你的查询语句看起来是合理的。你正在使用Flink CDC从多个表中获取数据,并进行了多次内连接和左连接操作。这种查询方式在处理大量数据时可能会遇到性能问题,因为每次连接都需要遍历所有的表。

    然而,如果你的表非常大,或者你的查询非常复杂,那么这可能会导致内存不足的问题。在这种情况下,你可能需要优化你的查询,或者考虑使用更高效的数据处理工具,如Apache Spark或Hadoop。

    此外,你的查询中有一些语法错误,例如在JOIN操作符和字段名之间没有空格,以及在WHERE子句中的LEFT JOIN关键字拼写错误。你需要修复这些错误才能使查询正确执行。

    2023-12-04 11:51:37
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载