MaxCompute中,需要计费的操作如下所示:
  • 存储计费:按照存储在MaxCompute的数据的容量大小进行阶梯计费。
  • 计算计费:MaxCompute分按量后付费和按CU预付费两种计算计费方式。
    • 按量后付费:按量后付费方式针对SQL任务和MapReduce任务进行计费。
      • SQL任务按量后付费:即SQL任务按I/O后付费。
      • MapReduce按量后付费:即MapReduce任务按量进行计费。
    • 按CU预付费:此方式仅在阿里云大数据计算服务提供。
  • 下载计费: 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预付费方式仅阿里云大数据计算服务提供。
目前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.3元/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 into个数-1, 1)。
    • SQL复杂度计算:
      • SQL关键字个数小于等于3,复杂度为1。
      • SQL关键字个数小于等于6,且大于等于4,复杂度为1.5。
      • SQL关键字个数小于等于19,且大于等于7,复杂度为2。
      • SQL关键字个数大于等于20,复杂度为4。
复杂度计量命令格式:
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;
Complexity:1.5
示例中SQL关键字的个数是4(该语句中有DISTINCT、COUNT、GROUP BY和ORDER),而SQL复杂度是1.5。如果表in1的数据量为1.7GB(对应账单为1.7GB×10243=1825361100.8Byte),则实际消费为 1.7*1.5*0.3=0.76元
说明
  • 账单出账时间在第二天06:00前,在计算任务成功结束后,系统会统计该计算任务读取的数据量和SQL复杂度,账单生成后会自动从您的账户余额中扣除费用以结算账单。没有成功的计算任务不扣费。
  • 与存储类似,SQL计算也以压缩后的数据大小计费。
  • 账单和下载的使用记录中,输入数据量的单位是Byte,要计算费用,数据量需要先除以10243换算成GB。

MapReduce按量后付费

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

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

如果一个MR任务一次执行成功是调用了100core并花费0.5小时,那么本次执行计算时为0.5小时×100core=50个计算时。

MR计算任务成功结束后,系统会统计该计算任务所消耗的计算时,当天所有计量信息将在第二天做一次性汇总收费,生成账单,直接体现在账号账单中,并自动从账号余额中扣除费用以结算账单。
说明
  • 没有执行成功的计算任务不扣费。
  • 任务排队时间不计入计量计时。
  • 如果您购买了MaxCompute包年包月服务,则在您购买的服务范围内您可以免费使用MR计算任务,不会额外支付费用。

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

按CU预付费

按CU预付费的方式仅阿里云大数据计算服务提供。您可以预先购买一部分资源,MaxCompute会为您预留您所购买的资源。我们将此种资源的基本单位定义为CU(Compute Unit),1CU包含的计算资源为4GB内存加上1核CPU。

资源定义 内存 CPU 售价
1CU 4GB 1CPU 150元/月
如果您是新用户,建议您先采用按I/O后付费的方式进行结算。您初期使用MaxCompute时,消耗的资源较少,采购CU预留资源会出现资源闲置。相对而言,按I/O后付费方式成本会更低。
说明
当预付费购买60CU或以上,可以通过MaxCompute预付费资源监控工具-CU管家进行资源监控管理,目前该工具仅支持华北2、华东2、华南1和华东1四个Region,详情请参见MaxCompute预付费资源监控工具-CU管家

下载计费

对于公网或者跨Region的数据下载,MaxCompute将按照下载的数据大小进行计费。计费公式为:
一次下载费用=下载数据量*下载价格

其中,具体价格如下:

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

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