本文列舉了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複雜度,詳情如下:
- 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服務串連的詳細介紹請參見訪問網域名稱和資料中心。