本文列舉了MaxCompute的各項計費說明,請您根據您購買的MaxCompute項目做出預算。

關於MaxCompute計量計費:

  • 計費單元:項目(Project)
  • 計費模組:儲存、計算、資料下載
  • 計費周期:天

儲存計費

儲存到MaxCompute的資料,包括表(Table)和資源(Resource)等,會按照其資料容量的大小進行階梯計費,計費周期為

MaxCompute以小時層級採集您的每個項目空間下當前的儲存使用方式,並以項目空間為基本單位,計算當天的儲存平均值再乘以單價。

每日MaxCompute的使用費用是基於下表中的日儲存量進行階梯計費的。1 GB(包含)以內的儲存是免費的,而下一個99 GB的儲存每千MB將花費0.0028美元,以此類推,超過1PB以上的儲存的花費將需要您通過工單聯絡我們。

1GB以內(包括)USD/GB/Day 1GB到100GB之間USD/GB/Day 100GB到1TB之間USD/GB/Day 1TB到10TB之間USD/GB/Day 10TB到100TB之間USD/GB/Day 100TB到1PB之間USD/GB/Day 1PB以上部分USD/GB/Day
Free 0.0028 0.0014 0.0013 0.0011 0.0009 請通過工單聯絡我們

例如您的某個項目的儲存為50TB,則每天收取的費用如下:

(100GB-1)* 0.0028 USD/GB/day
+(1024-100)GB* 0.0014 USD/GB/day
+(10240-1024)GB* 0.0013 USD/GB/day
+(50*1024-10240)GB * 0.0011 USD/GB/day
=58.61 USD/day
说明
  • 由於MaxCompute會對您的資料進行壓縮儲存,計費依據的容量大小是壓縮後的資料,因此多數情況下與上傳資料之前您自己統計的資料檔案大小不同,壓縮比一般在5倍左右。
  • 賬單出賬時間通常在當前計費周期結束後三小時內,最長不超過六個小時。例如前一天的賬單一般會在第二天06:00以前產生,具體以系統出賬時間為準,賬單產生後會自動從您綁定的信用卡中扣除費用以結算賬單。
  • 若您對賬單存在疑慮,可以進入費用中心查看消費明細。

計算計費

MaxCompute有以下兩種計算計費方式。

  • 按量後付費方式。即以作業的消耗作為計量指標,在作業執行後收取費用。
  • 按CU預付費方式。即您提前預定一部分資源,按CU預付費方式僅在阿里雲大資料平台上提供。

目前MaxCompute開放的計算任務類型有SQL、UDF、MapReduce、Graph及機器學習作業。其中SQL(不包括UDF)計算任務已經收費,MapReduce任務在2017年12月19日啟動收費。他類型暫無收費計劃。

按量後付費

按量後付費方式是針對SQL任務和MapReduce任務進行計費。

SQL任務按量後付費,即SQL按I/O後付費:

您每執行一條SQL作業,MaxCompute將根據該作業的輸入資料量及該SQL的複雜度進行計費。該費用在SQL執行完成後產生,並在第二天做一次性的計費結算。

MaxCompute SQL任務的按I/O後付費會針對每個作業產生一次計量。當天的所有計量資訊將在第二天做一次性匯總收費。

SQL計算任務的計費公式如下所示:

一次SQL計算費用 = 計算輸入資料量 * SQL複雜度 * SQL價格

價格如下:

計費項目 價格
SQL價格 0.0438 USD/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;
Intput:1825361100.8 Bytes
Complexity:1.5

樣本中SQL關鍵字個數是4(該語句中有一個DISTINCT,一個COUNT,一個GROUP BY,一個ORDER),而SQL複雜度是1.5,資料量約為1.7GB,則實際消費如下:

1.7 * 1.5 * 0.0438 = 0.11 USD
说明
  • 賬單出賬時間在第二天06:00前。在計算任務成功結束後,系統會統計該計算任務讀取的資料量和SQL複雜度,賬單產生後會自動從您綁定的信用卡中扣除費用以結算賬單。沒有成功的計算任務不計費。
  • 與儲存類似,SQL計算也以壓縮後的資料大小計費。

從2019年03月開始,MaxCompute SQL外部表格功能開始計費。採用的計費標準為:

一次SQL計算費用=計算輸入資料量*SQL價格
計費項目 價格
SQL價格 0.0044 USD/GB

SQL價格是0.0044 USD/GB/複雜度 ,複雜度係數為1。當天的所有計量資訊在第二天做一次性匯總收費,並直接體現在您的賬戶賬單中。

说明 當您需要內外表混合作業的時候,會分別計費。

MapReduce按量後付費

2017年12月19日MaxCompute開始對MapReduce任務進行計費。MaxCompute MapReduce採用的計費標準如下所示:

MR任務當日計算費用=當日總計算時*單價(USD)

價格如下:

計費項目 價格
MR價格 0.0690 USD/Hour/Task

一個MR任務一次執行成功的計算時 = 任務已耗用時間(小時)* 任務調用的core數量。

如果一個MR任務一次執行成功是調用了100core並花費0.5小時,那麼本次執行計算時為:0.5小時 * 100core = 50個計算時。

MR計算任務成功結束後,系統會統計該計算任務所消耗的計算時,當天所有計量資訊將在第二天做一次性匯總收費,產生賬單,直接體現在帳號賬單中,並自動從您綁定的信用卡中扣除費用以結算賬單。

说明
  • 沒有執行成功的計算任務不計費。
  • 任務排隊時間不計入計量計時。
  • 如果您購買了MaxCompute訂用帳戶服務,則在您購買的服務涵蓋範圍內您可以免費使用MR計算任務,不會額外支付費用。

按CU預付費

此種方式僅在阿里雲大資料平台上提供。您可以預先購買一部分資源,MaxCompute會預留您所購買的資源。此種資源的基本單位定義為CU(Compute Unit)。1CU包含的計算資源為4GB記憶體加上1核CPU:

資源定義 記憶體 CPU 售價USD/month
1 CU 4GB 1 CPU 22.0

建議新使用者先採用按I/O後付費方式進行結算。使用者初期使用 MaxCompute 時,消耗的資源較少,採購CU預留資源會出現資源閑置。相對而言,按I/O後付費方式成本會更低。

下載計費

對於公網或者跨Region的資料下載,MaxCompute將按照下載的資料大小進行計費。計費公式如下所示:

一次下載費用 = 下載資料量 * 下載價格

具體價格如下所示:

計費項目 價格USD/GB
外網下載價格 0.1166
说明
  • MaxCompute會按次推送您的下載計量資訊,並在第二天給出您的下載費用消耗。
  • 下載資料量:指一次下載請求的HTTP body的大小。承載資料的HTTP body使用protobuffer編碼,因此一般比資料原始容量要小,但是比壓縮後儲存在MaxCompute上的資料量要大。
  • 您通過不同的網路環境,例如公網、阿里雲傳統網路、VPC網路,或在不同的Region下,訪問MaxCompute將有不同的計費行為。有關MaxCompute服務串連的詳細介紹請參見訪問網域名稱和資料中心