文档

计算费用(按量付费)

更新时间:

当您购买按量付费规格后,MaxCompute会对SQL、MapReduce、Lightning(交互式分析)、Spark、Mars(数据科学)和MCQA(查询加速SQL)计算类型按量付费。本文为您介绍不同计算类型下的计费规则。

背景信息

MaxCompute是以作业的执行情况作为计量指标,并在作业执行后收取费用。目前MaxCompute对SQL、MapReduce、Lightning(交互式分析)、Spark、Mars(数据科学)和MCQA(查询加速SQL)计算类型按量收费,其他计算类型若有商业化收费会另行通知。

说明

SQL作业按量付费

每执行一个SQL作业,MaxCompute会根据作业的输入数据量及SQL复杂度进行计费。系统将在第二天对所有执行成功的SQL作业进行一次性按项目维度汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • 执行失败的SQL作业不计费。

  • 与存储类似,SQL作业的输入量是以压缩后的量计费。

  • 账单和下载的数据记录中,数据量的单位是Byte,需要除以1024³换算为GB。

SQL作业计费预估方法

您可以通过SQL费用预估方法,提前预估SQL费用,防止计费费用过高。常见预估SQL费用方法如下。

  • 如果您使用DataWorks开发SQL,可以通过图形界面上的费用预估功能估算费用。详情请参见使用DataWorks开发SQLSQL预估费用

  • 如果您使用的开发工具为IntelliJ IDEA,也可以在提交SQL脚本时自动估算费用。详情请参见开发及提交SQL脚本

  • 实际SQL开发中,调用SQLCostTask接口估算SQL费用。详情请参见ODPS SDK

  • 在实际生产环境中,正式上线一个分析SQL前,通过Cost SQL命令估算该SQL作业的费用。详情请参见计量预估

说明
  • 预估的费用不一定等于真实费用,真实费用以最终账单费用为准。

  • 不支持预估外部表参与计算的SQL作业费用。

  • 如果您担心按量付费项目的日消费过高,可以通过云监控配置消费监控告警。您可以按项目粒度配置每日消费总额上限告警,及时获取当日累计消费总额,以免消费超出预期。消费监控告警配置详情请参见消费监控告警

SQL作业计费规则

不同类型SQL作业的计费规则如下。

类型

计费公式

价格(单个SQL作业计算费用)

说明

开发者版SQL作业

(指在绑定了按量付费开发者版的项目下提交的SQL作业)

SQL作业当日总费用=计算输入数据量×单价

一般情况下,计费单价如下:

  • 公共云:0.15元/GB

  • 金融云:不涉及。

按量付费开发者版每个项目每个月的计算费用优惠100元。

说明

按量付费开发者版已停止新购,并将于北京时间2023年10月31日(周二)00:00:00停止服务,建议您尽快调整至标准计算资源,详情请参见2022年09月23日-MaxCompute部分售卖规格停止新购公告

标准SQL作业

(指使用按量付费标准版计算配额的SQL作业)

SQL作业当日总费用=计算输入数据量×SQL复杂度×单价

  • 单日计算量小于100 TB(包含)时,单价如下:

    • 公共云:0.3元/GB

    • 金融云:0.57元/GB

    说明

    单日计算量大小=计算输入数据量×SQL复杂度

  • 单日计算量大于100 TB时,超过部分单价如下:

    • 公共云:0.285元/GB

    • 金融云:0.5415元/GB

  • 单日计量大小超过500 TB时,超过部分单价如下:

    • 公共云:0.27元/GB

    • 金融云:0.513元/GB

按量付费标准版

SpotSQL作业

(指使用按量付费闲时版计算配额的SQL作业)

SQL作业当日总费用=计算输入数据量×SQL复杂度×单价

一般情况下,计费单价如下:

  • 公共云:0.1元/GB

  • 金融云:0.19元/GB

按量付费闲时版

引用外部表的SQL作业

(包括OTS外部表作业、OSS外部表作业、Spot OTS外部表作业、SpotOSS外部表作业)

SQL作业当日总费用=计算输入数据量×单价

一般情况下,计费单价如下:

  • 公共云:0.03元/GB

  • 金融云:0.057元/GB

自2018年10月31日起,外部表开始计费,详情请参见外部表

  • 如果在MaxCompute下使用OTS和OSS相关服务,计费方式如下:

    • 执行SQL作业时,如果您通过外网、经典网络和VPC网络访问OTS(不包含STS方式访问),OTS会收取费用,详情请参见OTS计费说明

    • 执行SQL作业时,如果您通过外网访问OSS会收取流量费用,通过经典网络或者VPC网络访问OSS不收取流量费用。如果调用OSS API,可能会额外产生费用,详情请参见OSS计费说明

  • 当您执行内外表混合SQL作业时,会分别计费。

  • 计算输入数据量:指一个SQL作业实际扫描的数据量。大部分的SQL作业有分区过滤和列裁剪,所以通常该值会远小于源表数据大小。

    • 分区过滤:例如SQL语句中含有WHERE ds > 20130101ds是分区列,则计费的数据量仅包括实际读取的分区,不包括其他分区的数据。

    • 列裁剪:例如SQL语句SELECT f1,f2,f3 FROM t1;,只计算t1表中f1、f2和f3列的数据量,其他列不参与计费。

  • SQL复杂度:系统先统计SQL语句中的关键字,再折算为SQL复杂度。

    • 统计SQL关键字。

      SQL关键字个数=JOIN个数+GROUP BY个数+ORDER BY个数+DISTINCT个数+窗口函数个数+MAX((INSERT个数|UPDATE个数|DELETE个数),1)。更多关键字信息,请参见JOINGROUP BYORDER BY窗口函数INSERTUPDATE|DELETE

      说明

      如果SQL关键字个数远高于20,会导致解析消耗大量时间,且作业长期处于排队状态,建议您优化SQL,控制SQL关键字个数。

    • SQL复杂度计算。

      • SQL关键字个数小于等于3,复杂度为1。

      • SQL关键字个数小于等于6,且大于等于4,复杂度为1.5。

      • SQL关键字个数小于等于19,且大于等于7,复杂度为2。

      • SQL关键字个数大于等于20,复杂度为4。

SQL作业计费示例

以下述SQL为例:

SELECT DISTINCT total1 
  FROM(SELECT id1, 
              COUNT(f1) AS total1 
          FROM in1 
          GROUP BY id1
       ) tmp1
  ORDER BY total1 DESC 
  LIMIT 100;

其中

  • DISTINCT个数为1

  • GROUP BY个数为1

  • ORDER BY个数为1

  • MAX((INSERT个数|UPDATE个数|DELETE个数), 1) = MAX(0|0|0, 1) = 1

  • SQL关键字个数 = 1+1+1+1 = 4

由此可知,SQL关键字个数小于等于6,且大于等于4,复杂度为1.5,即SQL复杂度为1.5。

MapReduce按量付费

MapReduce作业执行成功后,系统会统计作业所消耗的计算时。系统将在第二天对所有执行成功的MapReduce作业进行一次性汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • 执行失败的MapReduce作业不计费。

  • 任务排队时间不计费。

  • 相同作业会受集群负载环境的影响而产生较小的费用波动。

  • 资源的基本单位定义为CU(Compute Unit),1 CU包含的计算资源为4 GB内存和1 CPU Core。当作业消耗的内存大于4倍的1 CPU Core时,计算时为消耗内存量除以4再乘以时间。

  • 如果您购买了MaxCompute包年包月服务,可以在购买的服务范围内免费执行MapReduce作业,不需要额外支付费用。

  • 如果您对MapReduce作业计费存在疑问,请通过申请链接或搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群联系MaxCompute技术支持咨询。

MapReduce作业计费规则如下。

计费公式

类型

价格

说明

示例

  • MapReduce作业当日计算费用=当日总计算时×单价

  • 一个执行成功的MapReduce作业计算时=作业运行时间(小时)×作业调用的Core数量

标准MapReduce作业

(指使用按量付费标准版计算配额的MapReduce作业)

一般情况下,计费单价如下:

  • 公共云:0.46元/计算时

  • 金融云:0.874元/计算时

自2017年8月16日起,MaxCompute正式开始对MapReduce作业按量付费。一个Map或Reduce作业默认占用2 Core且占用3 GB内存。

一个MapReduce作业执行成功时调用了100 Core并消耗0.5小时,则计算时为100 Core×0.5小时=50

MapReduce作业总计算费用如下:

  • 公共云:50×0.46=23元

  • 金融云:50×0.874=43.7元

SpotMapReduce作业

(指使用按量付费闲时版计算配额的MapReduce作业)

一般情况下,计费单价如下:

  • 公共云:0.154元/计算时

  • 金融云:0.293元/计算时

一个SpotMapReduce作业执行成功时调用了100 Core并消耗0.5小时,则计算时为100 Core×0.5小时=50

该SpotMapReduce作业总计算费用如下:

  • 公共云:50×0.154=7.7元

  • 金融云:50*0.293=14.65元

MCQA(查询加速SQL)按量付费

每执行一次MCQA作业,MaxCompute将根据作业的输入数据量进行计费。系统将在第二天对所有MCQA作业的计费信息进行一次性汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • 如果您已经购买了预付费(包年包月)资源,则可以单独划分一部分Quota资源给MCQA作业独立使用;如果您只有后付费,则当执行MCQA作业时,费用与普通SQL作业计算收费一致。

  • MaxCompute按照每条查询作业扫描的数据量(每条查询至少10 MB)计费。对于取消的查询作业,按实际扫描的数据量计费。

  • 不查询不产生任何费用。

  • MaxCompute默认对数据进行列式存储和数据压缩。MaxCompute按照压缩后的数据量计算数据扫描量。

  • 查询分区表时,您可以应用分区过滤条件,减少数据扫描量并提升查询性能。

  • 华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)和西南1(成都)区域已开通MCQA作业按量付费服务。

MCQA作业计费规则如下。

计费公式

价格

说明

一次MCQA作业费用=输入数据量×SQL复杂度×单价

一般情况下,计费单价如下:

  • 公共云:0.3元/GB

  • 金融云:0.57元/GB

自2020年10月12日起,MaxCompute正式对MCQA作业按量付费,详情请参见查询加速(MCQA)

Spark按量付费

Spark作业执行成功后,系统会统计作业所消耗的计算时。系统将在第二天对所有Spark作业的计费信息进行一次性汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • 作业排队时间不计费。

  • 相同作业会因为指定资源的大小不同而产生费用波动。

  • 如果您购买了MaxCompute包年包月服务,可以在购买的服务范围内免费执行Spark作业,不需要额外支付费用。

  • 如果您对Spark作业计费存在疑问,请通过申请链接或搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群联系MaxCompute技术支持咨询。

  • 华东1(杭州)、华北2(北京)、华南1(深圳)区域已开通Spark作业按量付费服务,其他区域将陆续开放。

Spark作业计费规则如下。

计费公式

类型

价格

说明

示例

Spark作业当日计算费用=当日总计算时×单价

标准Spark作业

(指使用按量付费标准版计算配额的Spark作业)

一般情况下,计费单价如下:

  • 公共云:0.66元/计算时

  • 金融云:1.254元/计算时

自2019年2月1日起,MaxCompute正式对Spark作业按量付费,详情请参见MaxCompute Spark

Spark作业的计算时详情如下:

  • 计算消耗的CPU Core及内存数量。

  • 1计算时包含1 CPU Core和4 GB内存。

  • 计算方法为MAX(CPU×时长, 向上取整(内存×时长/4))

执行Spark作业使用2 CPU Core和5 GB内存,运行1小时。则计算时为MAX(2×1, 向上取整(5×1/4))=2

Spark作业计算费用在公有云上为2×0.66=1.32元,在金融云上为2×1.254=2.508元

SpotSpark作业(指使用按量付费闲时版计算配额的Spark作业)

一般情况下,计费单价如下:

  • 公共云:0.22元/计算时

  • 金融云:0.418元/计算时

执行SpotSpark作业使用2 CPU Core和5 GB内存,运行1小时。则计算时为MAX(2×1, 向上取整(5×1/4))=2

SpotSpark作业计算费用在公有云上为2×0.22=0.44元 ,在金融云上为2×0.418=0.836元

Mars(数据科学)按量付费

Mars作业执行成功后,系统会统计作业所消耗的计算时。系统将在第二天对所有Mars作业的计费信息进行一次性汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • 作业排队时间不计费。

  • 相同作业会因为指定资源的大小不同而产生费用波动。

  • 如果您购买了MaxCompute包年包月服务,可以在购买的服务范围内免费执行Mars作业,不需要额外支付费用。

  • 如果您对Mars作业计费存在疑问,请通过申请链接或搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群联系MaxCompute技术支持咨询。

  • 华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、西南1(成都)和中国(香港)区域已开通Mars作业按量付费服务,其他区域将陆续开放。

Mars作业计费规则如下。

计费公式

类型

价格

说明

示例

Mars作业当日计算费用=当日总计算时×单价

标准Mars作业

(指使用按量付费标准版计算配额的Mars作业)

一般情况下,计费单价如下:

  • 公共云:0.66元/计算时

  • 金融云:1.254元/计算时

自2020年9月1日起,MaxCompute正式对Mars作业按量付费,详情请参见数据科学(Mars)

Mars作业的计算时详情如下:

  • 计算消耗的CPU Core及内存数量。

  • 1计算时包含1 CPU Core和4 GB内存。

  • 计算方法为MAX(CPU×时长, 向上取整(内存×时长/4))

执行Mars作业使用2 CPU Core和5 GB内存,运行1小时。则计算时为MAX(2×1, 向上取整(5×1/4))=2

Mars作业计算费用在公有云上为2×0.66=1.32元,在金融云上为2×1.254=2.508元

Spot Mars作业

(指计算配额为使用按量付费闲时版计算配额的Mars作业)

一般情况下,计费单价如下:

  • 公共云:0.22元/计算时

  • 金融云:0.418元/计算时

执行SpotMars作业使用2 CPU Core和5 GB内存,运行1小时。则计算时为MAX(2×1, 向上取整(5×1/4))=2

SpotMars作业计算费用在公有云上为2×0.22=0.44元,在金融云上为2×0.418=0.836元

Lightning(交互式分析)按量付费(已下线)

每执行一次Lightning查询作业,MaxCompute将根据作业的输入数据量进行计费。系统将在第二天对所有查询作业的计费信息进行一次性汇总计费,并在06:00前汇总在账号账单中,自动从账号余额中扣除费用。

说明
  • Lightning服务使用单独的计算资源。即使您购买了MaxCompute包年包月服务,使用Lightning时也会按照查询作业扫描的数据量计费。

  • Lightning按照每条查询作业扫描的数据量(每条查询至少10 MB)计费。对于取消的查询作业,按实际扫描的数据量计费。

  • 不查询不产生任何费用。

  • MaxCompute默认对数据进行列式存储和数据压缩。MaxCompute按照压缩后的数据量计算数据扫描量。

  • 查询分区表时,您可以应用分区过滤条件,减少数据扫描量并提升查询性能。

  • 华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)区域已开通Lightning服务。中国(香港)和新加坡区域开放Lightning服务公测。

Lightning查询作业计费规则如下。

计费公式

价格

说明

一次Lightning查询作业费用=查询输入数据量×单价

一般情况下,计费单价如下:

  • 公共云:0.03元/GB

  • 金融云:0.057元/GB

自2019年2月1日起,MaxCompute的Lightning服务正式开始按量付费,详情请参见Lightning服务

  • 本页导读 (1)
文档反馈