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

有朋友遇到过Flink这种情况吗,flinksql的查询字段数不能超过33个,超过了就报错不能识别映

有朋友遇到过Flink这种情况吗,flinksql的查询字段数不能超过33个,超过了就报错不能识别映射的动态表

展开
收起
真的很搞笑 2023-07-18 21:41:05 189 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink SQL 查询字段数不能超过33个的限制。不过,这可能与你使用的 Flink 版本或你的查询语句有关。请注意,Flink SQL 查询中的字段数应该是没有限制的,只受限于你所使用的计算资源,例如内存和CPU。

    如果你遇到了这种问题,可以检查你的查询语句是否正确并符合 Flink SQL 的语法规范。你也可以尝试升级 Flink 版本,

    2023-07-29 21:22:39
    赞同 展开评论 打赏
  • Flink SQL 的查询字段数限制通常是由于底层的限制所导致的。在 Flink 中,如果使用的是 Blink Planner(默认情况下),目前存在一个硬性限制,即查询中的字段数不能超过 32767 个(2^15 - 1)。

    这是由于 Blink Planner 在执行查询计划时使用了一个位图来表示字段映射关系。该位图被限制为 1 字节大小,因此最多只能表示 8 个字段。对于超过 8 个字段的情况,需要使用额外的字节来表示更多的字段映射,而总字节数不能超过 32KB。因此,在 Blink Planner 中查询字段的数量上有了限制。

    解决这个问题的一种方法是减少查询中的字段数量。您可以考虑将字段进行合并或者进行聚合操作,以减少字段数。

    另外,如果您不需要使用到所有的字段,也可以通过选择需要的字段进行投影,从而避免超出限制。

    如果您确实需要处理超过限制的字段数,一种解决方案是改用旧版的 Flink Planner(也称为 Old Planner 或 Batch Planner)。Old Planner 没有类似的限制,但可能会带来一些其他的局限性,需要权衡利弊。

    请注意,具体解决方案取决于您的具体场景和需求。如果以上建议无法满足您的要求,建议咨询 Flink 社区或相关论坛,以获得更多专业的支持和指导。

    2023-07-29 19:15:13
    赞同 展开评论 打赏
  • 有默认大小的table.exec.max-column-count 这个参数调解下大小,此回答整理自钉群“【③群】Apache Flink China社区”

    2023-07-19 12:23:35
    赞同 展开评论 打赏

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

相关产品

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

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