MaxCompute中,需要计费的操作如下所示:
  • 存储计费:按照存储在MaxCompute的数据的容量大小进行阶梯计费。
  • 计算计费:MaxCompute分按量后付费和按CU预付费两种计算计费方式。
    • 按量后付费:按量后付费方式针对SQL任务和MapReduce任务进行计费。
      • SQL任务按量后付费:即SQL任务按I/O后付费。
      • MapReduce按量后付费:即MapReduce任务按量进行计费。
    • 按CU预付费:此方式仅在阿里云大数据计算服务提供。
      说明 CU使用量和性能估算:如果您使用160CU,处理1TB的数据可获得分钟级的处理性能。
  • 下载计费: MaxCompute将按照下载的数据大小进行计费。
  • 数据导入MaxCompute不计费。

结算说明:账单以Project为单位统计,结算周期为天。

报价速算器:MaxCompute报价速算器下载

存储计费

存储到MaxCompute的数据,包括表(Table)和资源(Resource)等,会按照其数据容量的大小进行阶梯计费,计费周期为

MaxCompute以小时级别采集您每个项目空间下当前的存储使用情况,并以项目空间为基本单位,计算您当天的存储平均值再乘以单价。

  • 项目的数据实际存储量大于0小于等于512MB时
    MaxCompute将收取这个项目0.01元的费用。示例如下:
    • 如果您在MaxCompute上,某个项目的存储的数据为100MB,MaxCompute会直接收取您0.01元/天的费用。
    • 如果您有多个项目,且每个项目实际存储量小于512MB,MaxCompute会对每个项目收取0.01元。
  • 项目的数据实际存储量大于等于512MB时
    基础价格 大于100GB部分 大于1TB部分 大于10TB部分 大于100TB部分 1PB以上部分
    0.0192元/GB/天 0.0096元/GB/天 0.0084元/GB/天 0.0072元/GB/天 0.006元/GB/天 请通过工单联系我们
    您的某个项目的存储为50TB,则每天收取的费用如下:
    100GB*0.0192 元/GB/天 
    +(1024-100)GB*0.0096 元/GB/天 
    +(10240-1024)GB*0.0084 元/GB/天 
    +(50*1024-10240)GB*0.0072 元/GB/天 
    =383.12 元/天
    说明
    • 由于MaxCompute会对您的数据进行压缩存储,计费依据的容量大小是压缩后的数据,因此多数情况下,它与上传数据之前您自己统计的数据文件大小不同,压缩比一般在5倍左右。
    • 账单出账时间通常在当前计费周期结束后三小时内,最长不超过六个小时。例如前一天的账单一般会在第二天06:00以前生成,具体以系统出账时间为准, 账单生成后会自动从您的账户余额中扣除费用以结算账单。
    • 若对账单有疑虑,可以进入费用中心查看消费明细。

计算计费

MaxCompute分为以下两种计算计费方式。

  • 按量后付费方式:即以作业的消耗作为计量指标,在作业执行后收取费用。
  • 按CU预付费方式:即您提前预定一部分资源,按CU预付费方式仅阿里云大数据计算服务提供。
    说明 CU使用量和性能估算:如果您使用160CU,处理1TB的数据可获得分钟级的处理性能。
目前MaxCompute开放的计算任务类型有SQL、UDF、MapReduce、Graph及机器学习作业。其中SQL(不包括UDF)计算任务已经收费,New SQL(MaxCompute2.0)任务在 2018年5月底启动收费。计费说明请参见计量计费说明。他类型暂无收费计划。
说明 有关UDF、Graph及机器学习的收费请关注阿里云相关公告。

按量后付费

按量后付费方式是针对SQL任务和MapReduce任务进行计费。

SQL任务按量后付费

SQL任务按量后付费即按I/O后付费:您每执行一条SQL作业,MaxCompute将根据该作业的输入数据及该SQL的复杂度进行计费。该费用在SQL执行完成后产生,并在下一天做一次性的计费结算。

MaxCompute SQL任务的按I/O后付费会针对每个作业产生一次计量。当天的所有计量信息将在第二天做一次性汇总收费。

SQL计算任务的计费公式为:
一次SQL计算费用 = 计算输入数据量 * SQL复杂度 * SQL价格
价格如下:
计费项 价格
SQL价格 0.03元/GB
  • 计算输入数据量:指一条SQL语句实际扫描的数据量,大部分的SQL语句有分区过滤和列裁剪,所以一般情况下这个值会远小于源表数据大小。
    • 列裁剪:例如您提交的SQL是select f1,f2,f3 from t1;,只计算t1表中f1,f2,f3三列的数据量,其他列不会参与计费。
    • 分区过滤:例如SQL语句中含有where ds > 20130101,ds是分区列,则计费的数据量只会包括实际读取的分区,不会包括其他分区的数据。
  • SQL复杂度:先统计SQL语句中的关键字,再折算为SQL复杂度,具体如下:
    • SQL关键字个数=Join个数+Group By个数+Order By个数+Distinct个数+窗口函数个数+max(insert个数-1, 1)。
    • SQL复杂度计算:
      • SQL关键字个数小于等于3,复杂度为1。
      • SQL关键字个数小于等于6,且大于等于4,复杂度为1.5。
      • SQL关键字个数小于等于19,且大于等于7,复杂度为2。
      • SQL关键字个数大于等于20,复杂度为4。
    说明 如果SQ关键字个数远高于20,可能会造成解析执行计划消耗大量时间,任务长期处于Job Queueing的状态,建议您优化SQL,尽量控制SQL关键字个数。
复杂度计量命令格式:
cost sql <SQL Sentence>;
示例如下:
odps@ $odps_project >cost sql SELECT DISTINCT total1 FROM
(SELECT id1, COUNT(f1) AS total1 FROM in1 GROUP BY id1) tmp1
ORDER BY total1 DESC LIMIT 100;
Intput:1825361100.8 Bytes
Complexity:1.5
示例中SQL关键字的个数是4(该语句中有DISTINCT、COUNT、GROUP BY和ORDER),而SQL复杂度是1.5,数据量约为1.7GB(对应账单为1.7GB*1024³=1825361100.8Byte),则实际消费为 1.7*1.5*0.3=0.76元
说明
  • 账单出账时间在第二天06:00前,在计算任务成功结束后,系统会统计该计算任务读取的数据量和SQL复杂度,账单生成后会自动从您的账户余额中扣除费用以结算账单。没有成功的计算任务不扣费。
  • 与存储类似,SQL计算也以压缩后的数据大小计费。
  • 账单和下载的使用记录中,输入数据量的单位是Byte,要计算费用,数据量需要先除以1024³换算成GB。

从2018年10月31日开始,MaxCompute SQL外表功能开始计费。采用的计费标准为:

一次SQL计算费用=计算输入数据量*SQL复杂度*SQL价格
计费项 价格
SQL价格 0.03元/GB

SQL价格是0.03元/GB/复杂度 ,复杂度系数为1。当天的所有计量信息在第二天做一次性汇总收费,并直接体现在您的账户账单中。

说明

如果在MaxCompute下创建和OTS表存储关联的表格,在MaxCompute下使用SQL查询时,无论通过外网还是经典/VPC网络访问OTS(除非使用STS方式访问),OTS都会收取费用,详情可参考计量项和计费说明。如果是访问OSS,则对于外网访问收取流量费用,经典/VPC不收取流量费用,此外如果调用OSS API,可能会额外产生费用,详情请参考计量项和计费项

当您需要内外表混合作业的时候,会分别计费。

MapReduce按量后付费

2017年8月16日,MaxCompute开始对MapReduce任务进行计费。MaxCompute MapReduce采用的计费标准如下:
MR任务当日计算费用=当日总计算时*0.46元(人民币)

一个MR任务一次执行成功的计算时=任务运行时间(小时)*任务调用的核数量。

如果一个MR任务一次执行成功是调用了100核并花费0.5小时,那么本次执行计算时为0.5小时*100核=50个计算时。默认情况下,一个Map或一个Reduce task占用2 core(同时占用3G内存),例如一个Map Task运行了30min,消耗的资源即为2core*30min=60core*min,即1计算时。

MR计算任务成功结束后,系统会统计该计算任务所消耗的计算时,当天所有计量信息将在第二天做一次性汇总收费,生成账单,直接体现在账号账单中,并自动从账号余额中扣除费用以结算账单。
说明
  • 没有执行成功的计算任务不扣费。
  • 任务排队时间不计入计量计时。
  • 相同作业会受集群负载环境的影响而产生较小的费用波动。
  • 资源的基本单位定义为CU(Compute Unit),1CU包含的计算资源为4GB内存加上1核CPU。为避免内存乱用的现象发生,当任务消耗的Memory大于4倍1核CPU时,取Memory除4倍作为CU计算时。
  • 如果您购买了MaxCompute包年包月服务,则在您购买的服务范围内您可以免费使用MR计算任务,不会额外支付费用。

如果您对MapReduce计算任务收费有疑惑,可工单咨询或者到钉钉群咨询(群号11782374)。

按CU预付费

按CU预付费的方式仅阿里云大数据计算服务提供。您可以预先购买一部分资源,MaxCompute会为您预留您所购买的资源。

资源定义 内存 CPU 售价
1CU 4GB 1CPU 150元/月

如果您是新用户,建议您先采用按I/O后付费的方式进行结算。您初期使用MaxCompute时,消耗的资源较少,采购CU预留资源会出现资源闲置。相对而言,按I/O后付费方式成本会更低。

如果您的任务量较大,您可以考虑对于消耗资源较少的任务采取预付费,资源较大的任务采取按I/O后付费,这样可以保证任务运行时一直有CU资源。预付费可以考虑最少购买50CU,以充分发挥MaxCompute集群性能。
说明 当预付费购买60CU或以上,可以通过 MaxCompute预付费资源监控工具-CU管家进行资源监控管理,详情请参见MaxCompute预付费资源监控工具-CU管家

下载计费

对于公网或者跨Region的数据下载,MaxCompute将按照下载的数据大小进行计费。计费公式为:
一次下载费用=下载数据量*下载价格
其中,具体价格如下:
计费项 价格
外网下载价格 0.8元/GB
说明
  • MaxCompute会按次推送您的下载计量信息,并在第二天给出您的下载费用消耗。
  • 下载数据量:指一次下载请求的HTTP body的大小。承载数据的HTTP body使用protobuffer编码,因此一般比数据原始容量要小,但是比压缩后存储在MaxCompute上的数据量要大。
  • 您通过不同的网络环境,例如公网、阿里云经典网络、VPC网络,或在不同的Region下,访问MaxCompute将有不同的计费行为。例如,对于混合云用户而言,IDC部分业务通过专线接入阿里云VPC网络,下载时不收取费用。有关MaxCompute服务连接的详情请参见访问域名和数据中心

如果该文档无法解决您在购买MaxCompute时对计量计费的困惑,欢迎加入购买咨询钉钉群