dataworks中有一个非分区表是订单表,然后我建了一个MR任务从里面读取所有支付成功的订单数据,分按天查分金额到一个新的表,但是我发现拆分后的表里数据并不全,很多数据没有进来。请问一下,MR任务对源表的数量是否有限制,目标的表的记录数量是否有上限。会不会是因为是非分区表导致数量超过了要求上限所认才进不来?
这可能得先从脚本逻辑自查一下 少了哪部分数据 ,或者可以看下是不是from的数据本身还未产出 任务就开始执行了 导致读到的数据少了或者为0 最终当前表产出的数据也会为0 ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
在DataWorks中运行MR任务读取源表数据并写入新表的过程,可能会受到几种因素的限制。首先,MR任务对源表的数量并没有明确的限制。然而,目标表的记录数量是有上限的,单个Job的输出路数不能超过256。
对于你的问题,如果发现拆分后的表中的数据并不全,可能的原因有几个。第一,MR任务的输出路径和目标表的路径是否正确;第二,检查源数据是否存在缺失或者异常;第三,目标表是否达到了单表的记录上限。特别是当源表是非分区表时,该表的记录数量上限可能会成为影响任务完成的一个重要因素。
在这种情况下,建议你首先确认目标表的记录数量上限是否已经达到。然后,你可以使用DataWorks的Check节点来检查MaxCompute分区表数据是否已经可用。此外,如果源表是非分区表并且可能导致数据超出预期上限,可以考虑程序自动监控项目空间中表对应的分区数,如果接近上限就进行报警。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。