DataWorks中odps 引擎得with as走的是内存吗?
在阿里云DataWorks中使用MaxCompute(原名ODPS)引擎时,WITH AS
子句创建的临时表并不直接走内存。在执行SQL语句的过程中,WITH AS
会生成一个中间结果集,这个结果集存储在分布式文件系统上,而非内存中。
MaxCompute是一个基于云计算的大数据处理服务,它的设计原理是将大规模数据分布在集群的多个节点上进行计算和存储,而不是依赖单个节点的内存资源。因此,即使使用了WITH AS
来创建临时视图或者中间结果,这些数据最终还是以分布式文件的形式存在,并在后续查询过程中按需读取和计算。
在DataWorks的PyODPS节点中,当使用with as子句时,其处理的数据主要是存储在内存中的。这是因为,PyODPS为MaxCompute的Python版SDK,它在执行任务时会占用一定的系统资源,如CPU和内存。具体来说,Map Task每个Instance的Memory大小是可以设定的,单位是M,范围通常在 [256,12288]之间调整。然而,如果数据量过大,可能会导致内存使用超限,进程被杀死。因此,在使用with as等操作时,需要特别注意内存的使用情况,避免本地数据的大量操作,以减小对系统资源的压力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。