我们这边发现在5月初,大数据计算MaxCompute成本突然增加了2倍,想知道这个要怎么查询一下原因呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要排查5月初MaxCompute成本突然增加2倍的原因,您可以按照以下步骤进行详细分析和定位问题。以下是具体的排查方法和操作建议:
首先,通过阿里云费用中心确认费用超出预期的具体日期,并定位到当天产生高额费用的项目和计费项。
根据费用中心的初步定位结果,进一步分析具体的消费上涨原因。可能的原因包括计算费用、存储费用或公网下行流量费用的异常增长。
如果发现计算费用超出预期,可以通过Information Schema
视图中的TASKS_HISTORY
数据统计作业量和TOP费用作业。
操作步骤:
set odps.sql.decimal.odps2=true;
SELECT
inst_id, -- 实例ID
input_bytes, -- 数据输入量(字节)
complexity, -- SQL复杂度
CAST(input_bytes / 1024 / 1024 / 1024 * complexity * 0.3 AS DECIMAL(18,5)) AS cost_sum, -- 费用估算
get_json_object(settings, "$.SKYNET_ID") AS SKYNET_ID -- DataWorks调度任务ID
FROM information_schema.tasks_history
WHERE (task_type = 'SQL' OR task_type = 'SQLRT')
AND ds = '20230501' -- 替换为具体日期分区
ORDER BY cost_sum DESC
LIMIT 10000;
重要提示:
input_bytes
(输入数据量)较大,可能是由于全表扫描或未优化的查询条件导致的。SELECT signature, ds, COUNT(*) AS tasknum
FROM information_schema.tasks_history
WHERE (task_type = 'SQL' OR task_type = 'SQLRT')
AND ds >= '20230501'
GROUP BY ds, signature
ORDER BY tasknum DESC
LIMIT 10000;
如果存储费用超出预期,可以通过下载用量明细分析存储费用变化。
操作步骤:
优化建议:
如果公网下行流量费用超出预期,可以通过TUNNELS_HISTORY
视图统计公网下行流量费用变化。
set odps.sql.decimal.odps2=true;
SELECT
ds,
operate_type,
SUM(CAST(data_size / 1024 / 1024 / 1024 * 0.8 AS DECIMAL(18,5))) AS download_fee
FROM information_schema.tunnels_history
WHERE (operate_type = 'DOWNLOADLOG' OR operate_type = 'DOWNLOADINSTANCELOG')
AND ds >= '20230501'
GROUP BY ds, operate_type
ORDER BY download_fee DESC;
如果您的MaxCompute作业是通过DataWorks调度的,还需要检查调度任务的配置是否发生了变化。
常见问题:
优化建议:
完成上述排查后,您应该能够定位到费用突增的具体原因。针对不同的问题,可以采取以下优化措施:
UPDATE
或DELETE
操作,减少资源消耗。通过以上步骤,您可以有效定位并解决5月初MaxCompute成本突增的问题。如果仍有疑问,建议联系阿里云技术支持团队获取进一步帮助。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。