MaxCompute 中,需要计费的操作如下所示:
存储计费:按照存储在 MaxCompute 的数据的容量大小进行阶梯计费。
计算计费:MaxCompute 分按量后付费和按 CU 预付费两种计算计费方式。
按量后付费:按量后付费方式针对 SQL 任务和 MapReduce 任务进行计费。
SQL 任务按量后付费:即 SQL 任务按 I/O 后付费。
MapReduce 按量后付费:即 MapReduce 任务按量进行计费。
按 CU 预付费:此方式仅在阿里云大数据平台提供。
- 下载计费: MaxCompute 将按照下载的数据大小进行计费。
结算说明:账单以 Project 为单位统计,结算周期为天。
报价速算器:
MaxCompute 报价速算器下载。
存储计费
存储到 MaxCompute 的数据,包括表(Table)和资源(Resource)等,会按照其数据容量的大小进行阶梯计费,计费周期为
天。
MaxCompute 以小时级别采集您每个项目空间下当前的存储使用情况,并以项目空间为基本单位,计算您当天的存储平均值再乘以单价。
项目的数据实际存储量大于 0 小于等于 512MB 时:
MaxCompute 将收取这个项目 0.01 元的费用。示例如下:
如果您在 MaxCompute 上,某个项目的存储的数据为 100MB,MaxCompute 会直接收取您 0.01 元/天的费用。
如果您有多个项目,且每个项目实际存储量小于 512MB,MaxCompute 会对每个项目收取 0.01 元。
项目的数据实际存储量大于等于 512MB 时:
例如:您某个项目的存储为 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)计算任务已经收费,MapReduce 任务在
2017年8月16日 启动收费,其他类型暂无收费计划。
注意:
有关 UDF,Graph 及
机器学习 的收费请关注阿里云相关公告。
按量后付费
按量后付费方式是针对 SQL 任务和 MapReduce 任务进行计费。
SQL 任务按量后付费
即所谓 SQL
按 I/O 后付费:您每执行一条 SQL 作业,MaxCompute 将根据该作业的
输入数据 及该 SQL 的
复杂度 进行计费。该费用在 SQL 执行完成后产生,并在下一天做一次性的计费结算。
MaxCompute SQL 任务的
按 I/O 后付费 会针对每个作业产生一次计量。当天的所有计量信息将在第二天做一次性汇总收费。
SQL 计算任务的计费公式为:
- 一次 SQL 计算费用 = 计算输入数据量 * SQL 复杂度 * SQL 价格
价格如下:
计算输入数据量:指一条 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×1024
3=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:
如果您是新用户,建议您先采用按 I/O 后付费的方式进行结算。您初期使用 MaxCompute 时,消耗的资源较少,采购 CU 预留资源会出现资源闲置。相对而言,按 I/O 后付费方式成本会更低。
下载计费
对于公网或者跨 Region 的数据下载,MaxCompute 将按照下载的数据大小进行计费。计费公式为:
- 一次下载费用 = 下载数据量 * 下载价格
其中,具体价格如下:
注意:
MaxCompute 会按次推送您的下载计量信息,并在第二天给出您的下载费用消耗。
下载数据量:指一次下载请求的 HTTP body 的大小。承载数据的 HTTP body 使用 protobuffer 编码,因此一般比数据原始容量要小,但是比压缩后存储在 MaxCompute 上的数据量要大。
您通过不同的网络环境,例如:公网、阿里云经典网络、VPC 网络,或在不同的 Region 下,访问 MaxCompute 将有不同的计费行为。有关 MaxCompute 服务连接的详情请参见 服务连接。
如果该文档无法解决您在购买 MaxCompute 时对计量计费的困惑,欢迎加入 购买咨询钉钉群。