开发者社区> 问答> 正文

老师,Flink 主键表加上这个参数以后,状态大小暴增,从几kb到几个g(表数据量很大)

老师,Flink 主键表加上这个参数以后,状态大小暴增,从几kb到几个g(表数据量很大)image.png

展开
收起
真的很搞笑 2023-04-19 21:38:04 143 0
1 条回答
写回答
取消 提交回答
  • 存在即是合理

    在Flink中,主键表(Primary Key Table)是一个用于存储数据库表中唯一键值对的表。当您将主键表加上upsert参数时,Flink将自动插入新的行,以更新主键表中的数据。

    然而,当表数据量很大时,这可能会导致状态大小暴增。这是因为Flink在处理主键表时会将所有的行插入到内存中,这可能会导致内存占用过高。为了解决这个问题,您可以考虑以下几种方法:

    1、使用缓存:使用缓存可以减少Flink SQL的状态大小,因为缓存可以将多次插入操作的结果缓存在内存中,而不是每次都将整个表插入到内存中。

    2、拆分主键表:将主键表拆分成多个子表,每个子表包含表中的一部分数据,这样可以减少每次插入操作的数据量,从而减少状态大小。

    3、限制插入次数:您可以通过限制Flink SQL在主键表中插入行的次数来减少状态大小。Flink支持批量插入和实时插入操作,这可以限制您的主键表的插入次数。

    4、使用Flink SQL的变体:Flink SQL支持变体(Variant),您可以使用变体来减少状态大小。变体是一种特殊的数据类型,它可以存储多个值,并且可以在不同的数据类型之间进行转换。使用变体可以使Flink SQL将操作数据从主键表转换为指定类型的数据,从而减少状态大小。

    2023-04-20 19:54:24
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
相关文档: 实时计算 Flink版
问答排行榜
最热
最新

相关电子书

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