如何理解maxcompute常见报错信息?【阿里云MVP月度分享】

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 貌似大部分人在遇到报错的时候,都懒得用翻译软件翻译报错信息,一般直接抛出来问,甚至连报错信息都懒得复制,直接截图出来。所以这里特地总结了一下,最近一段时间有人经常在群里问到的报错信息。 ODPS-0130252:Cartesian product is not allowed “不允许笛卡尔积”主要是为了防止用户误操作,不小心漏了关联条件,造成大量的资源的耗费。

貌似大部分人在遇到报错的时候,都懒得用翻译软件翻译报错信息,一般直接抛出来问,甚至连报错信息都懒得复制,直接截图出来。所以这里特地总结了一下,最近一段时间有人经常在群里问到的报错信息。

ODPS-0130252:Cartesian product is not allowed

“不允许笛卡尔积”
主要是为了防止用户误操作,不小心漏了关联条件,造成大量的资源的耗费。特别,如果是后付费用户,做大表的笛卡尔积会占用大量的计算资源,会影响整个资源池的其他用户的正常使用。
大部分场景下,笛卡尔积都不是用户的本意。对于真的想做笛卡尔积的用户,也有解决办法:
(1)有小表的时候,使用mapjoin
(2)没有小表的时候,左右两张都单独新增一个字段,例如 1 as join_column ,关联时候用t1.join_column = t2.join_column

ODPS-0130241:Illegal union operation - type mismatch for column 12 of UNION, left is BIGINT while right is STRING

“union左右两边字段类型不一致”
union左右两边的字段个数、字段名、字段类型需要完全一致。特别注意有种情况union中的某个表的某个字段值为显示的NULL,比如NULL as col1,但其他表的该字段为bigint,那么需要cast(NULL AS bigint) as col1

ODPS-0130111:Subquery partition pruning exception - records returned from subquery exceeded limit of 1000.

“子查询结果数大于1000行”
这是maxcompute的限制。子查询一般是习惯于使用传统数据库的开发,经常用的查询方式。而实际上,无论是MYSQL还是maxcompute,都不建议使用子查询。在maxcompute中一般会用多表关联来解决问题。

ODPS-0130071:Semantic analysis exception - physical plan generation failed: java.lang.RuntimeException: Table(xxxx) is full scan with all partitions, please specify partition predicates.

“分区表不允许全表扫描,必须指定分区值”
这条限制主要用来防止用户误操作,造成大量的金钱和时间上的浪费。很可能用户的本意只是随便挑两条数据看看,却习惯性的随手写了一个select * from table1;其实无论是mysql还是maxcompute,都不建议写select * 扫描全表。
对于随便挑两条数据看看的需求,推荐使用read关键字,read table1 partition (pt = xxx) 10;即在表table1的pt=xxx分区中随便挑10条数据出来看看。read关键字不会讲任务转化成MR任务,可以直接返回。
而如果真的需要扫描全表,则可以添加分区字段的范围查询,例如pt >= '2000' and pt <= '2099'。养成添加分区字段筛选条件的好习惯。

ODPS-0130071:[1,10] Semantic analysis exception - encounter runtime exception while evaluating function /, detailed message: DIVIDE func result NaN, two params are 0.000000 and 0.000000

“除数为0”
这个错误信息虽然写的比较绕弯,但是还是可以理解的。所有涉及到除法的地方,都必须增加分母不为0的判断,if(bb IS NOT NULL AND bb <> 0, aa / bb ,NULL)

ODPS-0123111:Format string does not match datetime string

“字符串格式不符合datetime类型”
maxcompute中的datetime类型其实很好理解,和yyyy-MM-dd HH:mm:ss格式的字符串几乎是完全等价的。比如unix_timestamp('2018-01-01 00:00:00')就是正常结果,如果写成unix_timestamp('2018-01-01')结果就是NULL。

ODPS-0123031:ODPS partition exception - maximum 60000 partitions allowed

“单表最多6万个分区”
一个表不允许超过6万的分区,如果分区过多,就要考虑重新设计分区了。

ODPS-0130071:Semantic analysis exception - Top level UNION is not supported

“不允许最外层使用union”
外边再套一层select就行了。select * from (select a from table1 union all select a from table2) t;

ODPS-0130161:Parse exception - invalid token ')'

“不合法字符”
这种情况一般就是HQL写错了。原因可能多种多样,一般可以肉眼检查出来。
目前dataworks已经支持了编译时错误的自动检测。

ODPS-0420061: Invalid parameter in HTTP request - Fetched data is larger than the rendering limitation. Please try to reduce your limit size or column number.

“获取数据量过大”
一般这种情况比较容易发生在“大宽表”的情况下,也可能是某个字符串类型的字段值过长。解决办法就是指定select 出来的字段、或者限制条数。

ODPS-0130071:Semantic analysis exception - only a single expression in the SELECT clause is supported with UDTF's

“select后边只能有一个单独的UDTF”
如果想把UDTF放在select后边,那么这个select里就只能有这一个UDTF,不能有其他任何字段。
如果不是只想要这一个UDTF,那就要结合着lateral view一起用了。

最后补充一句

抛出问题给别人,是想让别人帮忙解决的。我发现很多人提问,习惯把问题描述到一个“绝不可能出问题”的情景下,但是还“偏偏出问题”了。

“我XXX也检查过了,XXX也检查过了,XXX也找人看过了,也在别人电脑上试过了,XXX和官方文档上也一模一样,之前运行过都没问题的,现在出问题了,到底是怎么回事儿呢? ”

这就不是一个想解决问题的态度。有人会在去医院看病的时候,坐在医生对面说,“我什么事儿都没有,好得很”么?

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
4月前
|
分布式计算 DataWorks 大数据
阿里云ODPS的个人收获思考
在接触阿里云ODPS过程中,我深入了解了MaxCompute和DataWorks等产品。MaxCompute强大的数据处理能力显著提升了我的工作效率,而DataWorks的一站式开发与治理平台简化了数据流程管理。通过实践,我不仅掌握了高效的SQL编写与数据挖掘技巧,还提升了团队协作意识与大数据思维,为未来挑战打下了坚实基础。
102 3
|
4月前
|
数据采集 搜索推荐 算法
大数据信息SEO优化系统软件
大数据信息SEO优化系统软件(V1.0)是公司基于“驱动企业价值持续增长”战略,针对企业网站、电商平台及内容营销场景深度定制的智能化搜索引擎优化解决方案。该软件以“提升搜索排名、精准引流获客”为核心目标,通过整合全网数据采集、智能关键词挖掘、内容质量分析、外链健康度监测等功能模块,为企业构建从数据洞察到策略落地的全链路SEO优化体系,助力品牌高效提升搜索引擎曝光度,实现从流量获取到商业转化的价值升级。
106 2
|
4月前
|
存储 分布式计算 大数据
【赵渝强老师】阿里云大数据存储计算服务:MaxCompute
阿里云MaxCompute是快速、全托管的TB/PB级数据仓库解决方案,提供海量数据存储与计算服务。支持多种计算模型,适用于大规模离线数据分析,具备高安全性、低成本、易用性强等特点,助力企业高效处理大数据。
218 0
|
4月前
|
数据采集 人工智能 大数据
10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
阿里云大数据AI平台推出智能驾驶数据预处理解决方案,助力车企构建高效稳定的数据处理流程。相比自建方案,数据包处理效率提升10倍以上,推理任务提速超1倍,产能翻番,显著提高自动驾驶模型产出效率。该方案已服务80%以上中国车企,支持多模态数据处理与百万级任务调度,全面赋能智驾技术落地。
416 0
|
7月前
|
数据采集 机器学习/深度学习 人工智能
面向 MoE 和推理模型时代:阿里云大数据 AI 产品升级发布
2025 AI 势能大会上,阿里云大数据 AI 平台持续创新,贴合 MoE 架构、Reasoning Model 、 Agentic RAG、MCP 等新趋势,带来计算范式变革。多款大数据及 AI 产品重磅升级,助力企业客户高效地构建 AI 模型并落地 AI 应用。
|
2月前
|
人工智能 分布式计算 DataWorks
阿里云大数据AI产品月刊-2025年8月
阿里云大数据& AI 产品技术月刊【2025年 8 月】,涵盖 8 月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
270 1
|
2月前
|
存储 分布式计算 资源调度
【赵渝强老师】阿里云大数据MaxCompute的体系架构
阿里云MaxCompute是快速、全托管的EB级数据仓库解决方案,适用于离线计算场景。它由计算与存储层、逻辑层、接入层和客户端四部分组成,支持多种计算任务的统一调度与管理。
249 1
|
4月前
|
人工智能 分布式计算 DataWorks
多模态数据处理新趋势:阿里云ODPS技术栈深度解析与未来展望
阿里云ODPS技术栈通过MaxCompute、Object Table与MaxFrame等核心组件,实现了多模态数据的高效处理与智能分析。该架构支持结构化与非结构化数据的统一管理,并深度融合AI能力,显著降低了分布式计算门槛,推动企业数字化转型。未来,其在智慧城市、数字医疗、智能制造等领域具有广泛应用前景。
436 6
多模态数据处理新趋势:阿里云ODPS技术栈深度解析与未来展望

相关产品

  • 云原生大数据计算服务 MaxCompute