本文共 1415 字,大约阅读时间需要 4 分钟。
以下是关于MaxCompute常见问题的总结,旨在帮助用户快速排查问题。
计费相关
存储计费:MaxCompute根据存储在其平台上的数据容量大小进行阶梯计费。
计算计费:支持两种计算方式——按量后付费和按CU预付费。
- 按量后付费:适用于SQL任务和MapReduce任务,按I/O量进行计费。
- SQL按量后付费:指SQL任务按输入输出量(I/O)后付费。
- MapReduce按量后付费:指MapReduce任务按执行量进行计费。
- 按CU预付费:仅在阿里云大数据平台提供,需提前购买计算资源单位(CU)。下载计费:MaxCompute根据下载的数据大小进行计费,注意事项:对公网下载收费,内网下载不收费。
SQL语法与标准SQL区别
无事务控制。 暂时不支持update和delete语句。 不支持修改字段类型或删除字段操作。 不支持select from多表查询。 其他Hive对标函数若不在官方文档中说明,则暂不支持。更多详情请参考相关文档。 SQL限制
- 查询结果限制:
select语句默认显示最大10000行,若需导出超过10000行数据,请单独处理。 - 字符串长度限制:字段最大长度为8MB。更多其他限制请参考相关文档。
Java沙箱限制类问题
用户常见问题:
- 本地测试环境正常,但提交至ODPS后失败,代码一模一样。原因:
- 由于安全考虑,MaxCompute对第三方JAR包进行了限制,常见问题集中在
fastjson等包被拦截。建议: - 使用
gson包替代,导入com.google.gson.Gson。 - 对其他JAR包遇到类似问题的用户,请提交工单进行咨询。
没有启用新类型flag
若使用新数据类型或新函数,需在SQL语句前执行以下命令:
set odps.sql.type.system.odps2=true;目前需要手动设置,后续将支持自动开启。
未设置时可能出现错误:
com.aliyun.odps.OdpsException: ODPS-0130071: 语义分析异常 - 函数或UDTFudtf_recom
无法解析。
错误提示表示无法识别函数或方法。
OSS和OTS外部表创建及查询失败
检查是否按照文档授权使用外部表。 错误示例:DDL语法错误:ODPS-0130071:语义分析异常 - 未识别选项‘EXTERNAL’。 - 检查是否引用了新类型,并确保已设置
set odps.sql.type.system.odps2=true;。
如果表已创建但查询失败,请检查: - OSS或OTS数据量过大,尤其是单个对象大小和数量。
- 参考文档了解详细要求。错误提示“未授权”可能表明未完成外部表的授权步骤。
客户端ODPSCmd报错
检查客户端连接域名、项目名称及Access Key信息。 如果错误提示找不到Java类,通常是客户端Java环境问题。 - 目前仅支持Java7和Java8,Java9及以上版本暂不支持。
任务运行较慢
若为按量付费用户,请提交工单处理;若为预付费用户,请检查CU配额是否充足,是否存在长时间未完成的任务。 - 使用
TOP INSTANCE命令(客户端版本为0.29.0或以上)查看当前运行任务状态。 - 下载最新客户端或使用其他工具查看任务状态。
数据倾斜: - 检查查询是否存在数据分布不均的问题,调整SQL逻辑或增加分区。
阅读更多干货好文
扫描下方二维码,关注更多技术干货内容。
转载地址:http://ejrb.baihongyu.com/