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

有一个问题 flink cdc 使用sql 进行group by 录入的时候,长时间会造成内存溢出吗

image.png

展开
收起
雪哥哥 2022-11-17 20:04:10 1871 0
10 条回答
写回答
取消 提交回答
  • 聊天室在线技术交流(摸鱼)http://chat.dilicili.cn

    数据量大的话,可能会造成内存溢出,即使没有导致内存溢出,也可能比较耗时,所以稳妥的办法就是先进行优化。

    2022-11-29 09:24:10
    赞同 展开评论 打赏
  • 如果数据量很大的话,长时间会造成内存溢出。 建议做好时间限制,避免造成不必要的资源浪费。

    2022-11-28 23:55:12
    赞同 展开评论 打赏
  • groupBy算子操作输出的数据,要覆盖上一次的数据,如果有新的结果出现,就会先将state中旧的消息撤回,然后将新的结果保存到state中,如果上游的数据源源不断,类似kafka之类source端,建议还是最好设置状态的ttl,防止状态无限大。

    2022-11-28 20:06:19
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    flink cdc 使用sql 进行group by 录入的时候,尤其是在分组操作的时候会造成一定程度的资源消耗,所以需要先查询数据量再考虑是否需要优化资源。

    2022-11-26 08:11:15
    赞同 展开评论 打赏
  • 码中自由一片天地。。。

    group by进行分组的话确实会造成一定的资源消耗,使用之前可以先去查询一下数据量,如果数据量大的话,可以先优化资源,这样比较稳妥。

    2022-11-24 11:41:26
    赞同 展开评论 打赏
  • 这问题问的不对,“flink cdc 使用sql 进行group by 录入的时候,长时间会造成内存溢出吗?”如果会溢出你想怎样?,如果不会溢出你想怎样?。你应该这样问,“我想通过flink cdc 使用sql 进行group by 录入,想要达到什么样的目的,但是担心内存溢出,大家有什么好的方法嘛?”,回到问题本身 会溢出的

    2022-11-24 07:30:30
    赞同 展开评论 打赏
  • 从事java行业8年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    首先GROUP BY语句用于根据一个或多个列对结果集进行分组,根据你的sql可以看出你是想直接通过插入通过分组查询获得的数据到一张新表中,对于你的担忧长时间group by 录入的时候是否会导致内存溢出,个人觉得不会的,Flink作为实时计算的一个流式计算引擎,可以处理多种实时数据,既然可以处理双十一的数据,那么你的数据量应该不足以导致内存溢出,不过如果数据量太大的话,group by进行结果集分组的时候会比较耗时,体验也不会太好,如果有where条件语句的话建议加上条件语句来限制数据量或者通过分页语句通过多次执行录入的方式来提高响应效率,也类似官方文档说的【上下游参数调优】,通过设置batchsize,批量读写上下游存储数据可以降低上下游存储的压力。

    还有就是官方文档提到的【作业参数调优】,其中作业参数调优的主要参数tminiBatch设置仅适用于优化GROUP BY,设置batchsize,批量读写上下游存储数据可以降低上下游存储的压力。

    还有一种就是【资源调优】,可以通过优化资源配置来保证你的group by录入语句可以正常执行,详细的操作内容可以参考官方文档:https://help.aliyun.com/document_detail/62491.html

    2022-11-23 15:57:17
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    时间长内存溢出Framework Heap Memory满了,但是 Managed memory还有很多空余的,把Managed memory 调小,配置文件中taskmanager.memory.managed.size: 1g

    2022-11-23 10:38:46
    赞同 展开评论 打赏
  • coder at work

    groupBy 之前先查询下数据量, 然后确认下服务的内存大小, 数据太大要么很慢, 要么超时, 建议先优化

    2022-11-23 10:03:38
    赞同 展开评论 打赏
  • 网站:http://ixiancheng.cn/ 微信订阅号:小马哥学JAVA

    这个主要看一下数据量有多大,如果数据量很大的话,超过了内存的可用容量,其实会产生内存的溢出。如果数据量不是很大的话,可用等待处理,一般时间比较耗时,也没有意义。最好在做这个groub by的时候,先加上where条件,先把数据的范围限制在一个可用处理的范围内进行处理。

    2022-11-22 19:23:17
    赞同 展开评论 打赏
滑动查看更多

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

相关产品

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

    更多
    SQL Server 2017 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载