2026阿里云国际版MaxCompute实战教程:按扫描量计费怎么算、订阅CU怎么选与成本测算

📅 · 阿里云国际版实战教程 - ChengziCloud

一句话结论

Meta Description: 面向海外数据团队,完整拆解阿里云国际版 MaxCompute(原 ODPS)大数据计算服务。

本文要点
  • 先划边界:MaxCompute 和站内其他数据产品谁管谁
  • MaxCompute 到底是什么:一个「看不见服务器」的 Serverless 数仓
  • 三层计费:计算、存储、下载,各算各的
  • 实操第一步:开通 MaxCompute 并创建第一个项目
  • 实操第二步:odpscmd 客户端从安装到跑通第一条 SQL
  • 价格与方案对比表
  • 地域怎么选:国际站 13 个可用地域,MaxFrame 有两个坑
  • 六个省钱动作 + 七个必避的坑

Meta Description: 面向海外数据团队,完整拆解阿里云国际版 MaxCompute(原 ODPS)大数据计算服务。计算、存储、下载三类计费项的真实美元单价,按量 SQL 扫描量计费与订阅 CU 的盈亏平衡点,开通建项目、odpscmd 客户端建表导入查询的完整实操,附六个省钱动作与九条 FAQ。

关键词:阿里云国际版MaxCompute、MaxCompute教程、MaxCompute价格、MaxCompute计费、大数据计算服务、ODPS、订阅CU、SQL扫描量计费、数据仓库、成本测算

一句话答案:阿里云国际版 MaxCompute 是「按实际扫描的数据量」和「按作业类型的小时单价」计费的 Serverless 数仓——标准 SQL 每 GB 扫描 0.0438 美元、Spark 每小时 0.1041 美元、存储每天每 GB 0.0006 美元起、公网下载每 GB 0.1166 美元;想省钱的核心不是砍单价,而是砍「扫描量」和「下载量」。 它和你熟悉的 ECS 完全不同:没有实例、没有关机、也不用为闲置资源付费,账单里只有「计算、存储、下载」三行。

对使用阿里云国际版(alibabacloud.com)的海外数据团队来说,MaxCompute 是最容易「心里没底」的产品之一:它叫「大数据计算服务」,但你在控制台看不到任何一台机器;它的账单按作业逐条累计,跑完一条 SQL 才知道花了多少钱;它同时面向按量付费和订阅两种模式,而订阅的计费单位是一个你可能从没见过的词——CU(Compute Unit)。看不懂这三件事,账单就一定会失控。

本文面向海外开发者与数据团队,把 MaxCompute 讲透四件事:它管什么 → 三层计费怎么算 → 从开通到跑通第一条 SQL 的实操 → 怎么省。文中单价全部取自阿里云官方文档的美元口径,价格可能变动,请以购买页与控制台结算页为准;国际站不同地域的实际单价与官方「标准地域」可能不同,正文会逐处标注。

一、先划边界:MaxCompute 和站内其他数据产品谁管谁

MaxCompute 最容易劝退新手的地方,是它和阿里云已有的一堆产品看起来都在「存数据、算数据」。先把边界划清楚,后面才不会买错。

你想做的事该用哪个产品为什么是它
PB 级离线批处理、数仓分层建模、日志/行为数据的大规模 ETLMaxCompute(本文)面向离线与近实时的海量计算,按扫描量计费,不占用常驻实例
实时大屏、亚秒级多维 OLAP、Ad-hoc 交互查询Hologres面向实时数仓与在线分析,按 CU 计费,亚秒响应
宽表、时序、搜索多模数据混合存取Lindorm面向 IoT/时序/搜索等多模场景
在线交易(订单、用户、账务)的 OLTPRDS / PolarDB行存关系库,强事务与低延迟点查
存原始文件、把冷数据当便宜仓库OSS对象存储,配合 MaxCompute 外表查询可省 10 倍计算费
采集与检索日志、投递到数仓SLS日志服务,官方提供一键 Ship To MaxCompute

一句话记住分工:MaxCompute 解决「大批量数据怎么算得又快又便宜」,Hologres 解决「结果怎么查得够快」,OSS 解决「冷数据放哪儿最便宜」。 三者不是互斥的——生产环境里最常见的就是「OSS 存原始数据 → MaxCompute 离线加工 → 结果导入 Hologres 供在线查询」。本文只讲 MaxCompute,其他几篇请见文末延伸阅读。

二、MaxCompute 到底是什么:一个「看不见服务器」的 Serverless 数仓

官方对 MaxCompute(前身 ODPS)的定义是:云原生大数据计算服务,企业级 SaaS 智能云数据仓库。翻译成人话有三层含义:

  1. 全托管、Serverless。 你不需要购买、启动或维护任何一台机器。存储层与计算层完全分离,两者都能独立弹性伸缩——没有「按量配置实例」这一步,也就没有「忘记关机被扣钱」这回事。
  2. 按作业计费。 每条 SQL、每个 MapReduce/Spark 作业跑完(成功)才结算,账单按天聚合,次日 06:00 前从账户余额扣除。没有跑作业的时间段,计算费就是 0。
  3. 多引擎 + 数据湖仓一体。 同一个引擎支持 SQL、MapReduce、Spark、Graph 等多种计算模型;数据湖仓 2.0(OpenLake)让 MaxCompute、Hologres、Spark 等多个引擎访问同一份开放格式数据。官方口径:MaxQA(MCQA 2.0)查询加速可做到 28 亿行数据秒级返回,服务可用性承诺最高 99.9%。

它同时提供三件对留学生/海外团队很有用的企业能力:存储加密(项目级,底层走 KMS,算法支持 AES256/AESCTR/RC4)、动态数据脱敏(读取那一刻即时脱敏,查询/下载/Join/UDF 全程生效)、IP 白名单(开启后只有白名单内的设备能访问项目,AccessKey 正确也会被拒)。

两层订阅形态:按量与订阅的「名字」很容易被绕晕

MaxCompute 把版本与计费方式做了组合,市面上常见的说法有四种:按量标准版(Pay-as-you-go Standard Edition)、按量 Spot 版、订阅标准版(Subscription Standard Edition)。要点只有两条:

  • 新用户首次开通,默认就是「按量标准版」——只按实际消耗计费,适合先跑起来看看量级。
  • 订阅标准版是「预购 CU 资源池」:买多少 CU 就独占多少算力,不做资源争抢;最低购买 50 CU。注意订阅只覆盖计算,存储与下载依然按量计费。

三、三层计费:计算、存储、下载,各算各的

MaxCompute 的基础资源分三类,计费口径完全不同,看不懂这三行账单就永远对不上:

资源类别计费口径是否随订阅变化
计算资源按作业类型 + 实际用量(扫描量或计费小时)订阅额度内的作业不再另收费
存储资源按压缩后单副本的日均存储量 × 日单价始终按量,订阅不覆盖
数据传输上传免费;仅公网下载收费,内网下载免费始终按量,订阅不覆盖

这里有一个必须记住的反常识点:MaxCompute 默认对数据做三副本冗余存储,但只按「一份副本的压缩后大小」计费。官方标注列式压缩比典型约 5:1——也就是说,你上传 500 GB 原始数据,账单上的存储量可能在 100 GB 左右,而不是 1500 GB。

3.1 计算计费:先分清「按扫描量」还是「按计费小时」

这是全篇最值钱的一张表。同样跑一条作业,不同作业类型的计费依据和单价都不一样。

作业类型计费依据单价(USD,标准地域)
标准 SQL扫描输入数据量(GB) × SQL 复杂度0.0438 / GB
查询外表的 SQL输入逻辑数据量(GB) × SQL 复杂度0.0044 / GB
MapReduce计费小时(核数 × 运行时长)0.0690 / 计费小时
Spark计费小时 = MAX(核×时长, ⌈内存GB×时长÷4⌉)0.1041 / 计费小时
Mars同 Spark0.1041 / 计费小时
MaxFrameCU-小时0.0541 / 计费小时
MCQA(查询加速)扫描输入数据量(GB) × SQL 复杂度0.0438 / GB

以上为标准地域单价;沙特(利雅得)合作地域单价约为标准地域的 1.2 倍(标准 SQL 0.05256/GB、MapReduce 0.0828/计费小时、Spark 0.12492/计费小时、MaxFrame 0.06496/计费小时),选地域前先看清楚。

SQL 复杂度是一个乘数,不是可忽略的细节。 官方按语句里的关键字数量分四档:

SQL 关键字数量复杂度系数
≤ 31
4 – 61.5
7 – 192
≥ 204

关键字计法为:JOIN 数 + GROUP BY 数 + ORDER BY 数 + DISTINCT 数 + 窗口函数数 + MAX(INSERT|UPDATE|DELETE 数 − 1, 1)。也就是说,一条堆了 20 个以上关键字的「大宽 SQL」,单位成本是简单查询的 4 倍。官方提供了预估命令:在客户端里执行 COST SQL <你的语句>; 即可在跑之前看到扫描量与复杂度。

3.2 哪些情况根本不计费(跑失败也有用)

场景说明
失败的作业SQL / MapReduce / Spark / Mars 作业失败不收费
排队时间等待资源的时间不计费
被取消的 MCQA取消的查询加速作业不收费
空闲时间没有作业运行时不产生计算费
Graph 与机器学习作业免费
只跑 UDF 的 SQL不收费
订阅额度内的作业MapReduce / Spark / Mars / MaxFrame 在已购额度内不另收费

这条表里藏着一条对生产很有用的结论:MaxCompute 的「失败」是免费的。 与那些「提交即计费、失败照收」的服务相反,重试一条写错的 SQL 不会额外花钱——这让你可以放心地先 COST SQL 估一遍、再实际跑。

3.3 订阅计费:1 CU = 4 GB 内存 + 1 核,22 美元/月

如果你确定负载长期稳定且量级较高,可以选订阅。订阅的计费单位是 CU(Compute Unit),官方定义极其明确:

资源内存CPU价格
1 CU4 GB1 核USD 22.0 / 月

三条必须知道的规则:

  1. 最低购买 50 CU,即最低门槛约 1,100 USD/月(50 × 22)。低于这个量级,订阅几乎不可能比按量划算。
  2. 买多少是多少,用不完也不退。 官方原文:买的 100 CU 就是一个「恰好 100 CU 的池子」——作业用得少,空闲的 CU 就闲置;作业需要超过 100 CU,也只能在 100 CU 以内跑,结果是执行时间变长而不是加钱。
  3. 订阅只覆盖计算,不覆盖存储与下载。 而且订阅资源池是按地域、按账号独立的,同一地域可以买多份「一级 Quota」,但多个一级 Quota 之间资源互相独立、不能共享。

在订阅之上还有两种叠加包,都不能独立使用,必须先有订阅:

  • 弹性预留 CU(Elastically reserved CUs):你自己控制何时扩、何时缩,用于可预期的峰值。
  • 自动弹性 CU(Auto-scaling CUs):系统自动探测负载波动并伸缩,只用多少付多少,用于不可预期的尖峰。

3.4 存储计费:按「压缩后单副本的日均量」算

存储分「单可用区」与「多可用区」两大类,每类又有标准、低频(IA)、长期(Long-term)三档:

类型存储费(USD/GB/天)数据访问费(USD/GB)
单可用区 · 标准0.0006(首 1 GB 免费)—
单可用区 · 低频 IA0.0004120.006191
单可用区 · 长期0.000170.080793
多可用区 · 标准0.00078—
多可用区 · 低频 IA0.0005360.006191
多可用区 · 长期0.0002210.080793
备份存储0.0006—(保留 ≤ 1 天免费)

计费公式为:存储费 = 平均日存储量 × 单价,其中平均日存储量 =(每小时存储快照之和) ÷ 24——注意是「每天 24 次快照的平均」,不是某个时点的峰值量。另有三点容易踩坑:

  • 低频/长期存储「改回标准」会按整表整分区收一次数据访问费(0.080793 USD/GB 的长期访问费并不便宜,来回横跳反而更贵)。
  • 部分地域单独定价。 韩国(首尔)标准存储 0.000787、多可用区标准 0.001054;墨西哥(克雷塔罗)0.00087 / 0.001129;沙特(利雅得)0.00072 / 0.000936。都比标准地域更贵。
  • 多可用区比单可用区标准存储贵约 30%(0.00078 vs 0.0006),换来的是「可用区级故障时读写不中断(RPO=0)」。

3.5 数据传输:上传免费,只有公网下载收费

项目单价
上传到 MaxCompute免费
内网下载免费
公网下载USD 0.1166 / GB(沙特 0.13992 / GB)

公网下载按「下载请求 HTTP body 大小」计费,且 body 经 Protocol Buffers 编码,通常小于原始数据、但大于 MaxCompute 里压缩存储的数据。这带来一个重要的省钱直觉:下载费往往比计算费更容易失控——把 1 TB 结果全量下载到本地要 1000 × 0.1166 ≈ 116.6 美元,而同样这 1 TB 若只是被 SQL 扫描一次(复杂度 1)才 43.8 美元。能在控制台/ SQL 里聚合完再下载,就绝不要下载明细。

四、实操第一步:开通 MaxCompute 并创建第一个项目

4.1 开通服务(两条路径)

路径一:从产品页开通。 进入 MaxCompute 产品首页,点击 Buy Now,在购买页选择 Product Type(计费方式)、Region(地域)、Specifications Type(规格),然后 Buy Now。

路径二:从控制台开通。 登录 MaxCompute 控制台(maxcompute.console.alibabacloud.com),在左上角选地域,在 Overview 页的 Quick Start 区点击 Activate Now;若该地域已开通,点 Activate。

📝 小提示:首次开通默认启用「按量标准版」,只按实际消耗付费。新手不要一上来就买 50 CU 订阅——先用按量跑一个月拿到真实用量,再决定要不要转订阅。此步骤只要你已有一个阿里云国际版账号(可用支付宝或国内双币信用卡完成验证)即可完成,注册前请确认当地法规合规性。

4.2 创建项目(Project)

项目是 MaxCompute 里承载数据、跑作业、管权限的基础工作区,所有作业都必须在项目内执行。推荐在 MaxCompute 控制台创建:

  1. 登录 MaxCompute 控制台,左上角选好地域。
  2. 左侧导航选择 Manage Configurations > Projects。
  3. 点击 Create Project,填写参数后 Confirm。

关键参数速查表:

参数是否必填要点
Project Name必填全局唯一且创建后不可改;以字母开头,仅字母/数字/下划线,3–28 字符
Billing Method必填订阅(长期稳定)或按量(短期/测试)
Default Quota必填未指定 Quota 的作业都走它
Max Resources Consumed by An SQL选填单条 SQL 的成本上限,按量模式下强烈建议设一个
Data Type Edition必填1.0 / 2.0(推荐) / Hive 兼容版
Storage Type必填多可用区(容灾)或单可用区
AutoMV必填自动物化视图,可提升效率、减少重复计算
Storage Encryption必填是否加密;默认 KMS 默认密钥,算法 AESCTR/AES256/RC4

一个新手最容易撞上的坑:项目名是全球唯一的——如果你起的名字被别人用了,创建会失败,报「项目名已存在」但你在自己账号下找不到同名项目。此时只能换名字。更麻烦的是:你自己删除的项目还在「删除宽限期」内时,同名仍然占位;大型项目彻底释放可达 7–30 天。所以命名时直接带上团队/环境后缀(如 team_prod_v2),别用 test 这种全球撞车率极高的名字。

五、实操第二步:odpscmd 客户端从安装到跑通第一条 SQL

跑 MaxCompute 最轻量的方式是官方命令行客户端 odpscmd(它运行在你的本地电脑上,用来执行命令和管理服务)。整个链路是五步:装客户端 → 配连接 → 建表 → 导入数据 → 查询与导出。

5.1 安装与配置 odpscmd

前置条件:本地必须装 Java 8 或更高版本。 版本兼容性上,v0.28.0 起支持 JDK 1.9,早于 v0.28.0 的版本只支持 JDK 1.8。官方另外提醒:不要解析客户端的输出,其格式不保证向后兼容。

安装步骤:

  1. 从 GitHub 的 aliyun/aliyun-odps-console releases 页下载最新的 odpscmd_public.zip(下载链接随版本更新,不要写死版本号)。若 GitHub 不可达,可用官方 OSS 镜像:

https://maxcompute-repo.oss-cn-hangzhou.aliyuncs.com/odpscmd/latest/odpscmd_public.zip
  1. 解压后得到 bin、conf、lib、plugins 四个目录。
  2. 打开 conf/odps_config.ini,填写连接参数:

project_name=doc_test_dev
access_id=<你的 AccessKey ID>
access_key=<你的 AccessKey Secret>
end_point=https://service.ap-southeast-1.maxcompute.aliyun.com/api
log_view_host=https://logview.odps.aliyun.com
https_check=true
data_size_confirm=100

四个必须理解的参数:

参数说明
project_name要访问的项目名;标准模式下要区分生产与 _dev 开发项目
access_id / access_key账号或 RAM 用户的 AccessKey(在 RAM 控制台的 AccessKey 管理页获取)
end_point必须是 MaxCompute 的服务 endpoint,不是 Tunnel endpoint——填错一定连不上
log_view_hostLogView 地址,建议填;不填作业失败时无法快速定位

各国际地域的 endpoint 速查(部分):

地域服务 endpoint
中国香港service.cn-hongkong.maxcompute.aliyun.com/api
新加坡service.ap-southeast-1.maxcompute.aliyun.com/api
日本(东京)service.ap-northeast-1.maxcompute.aliyun.com/api
韩国(首尔)service.ap-northeast-2.maxcompute.aliyun.com/api
德国(法兰克福)service.eu-central-1.maxcompute.aliyun.com/api
美国(硅谷)service.us-west-1.maxcompute.aliyun.com/api
美国(弗吉尼亚)service.us-east-1.maxcompute.aliyun.com/api

启动客户端:进入 bin 目录后,Windows 双击 odpscmd.bat,macOS 双击 odpscmd;命令行方式下 Linux/macOS 用 sh odpscmd,Ubuntu 必须用 ./odpscmd(在 Ubuntu 上跑 sh odpscmd 会报错)。看到连接成功的提示,就说明已经连上项目了。

5.2 建表、导入、查询、导出

导入数据(Tunnel Upload,把本地 CSV/TXT 传进已有表):


tunnel upload banking.txt bank_data;
tunnel upload banking_yescreditcard.csv bank_data_pt/credit="yes";

导入完成的标志是输出 OK。注意上传是免费的,随便传不心疼。

跑 SQL 并写入结果表(insert overwrite 会覆盖目标表):


insert overwrite table result_table1
select education, count(marital) as num
from bank_data
where housing = 'yes' and marital = 'single'
group by education;

select * from result_table1;

导出结果(Tunnel Download,只在公网下载时收费):


tunnel download result_table1 result_table1.txt;

跑之前先估价(这一条比什么都省钱):


COST SQL SELECT DISTINCT total1 FROM
(SELECT id1, COUNT(f1) AS total1 FROM in1 GROUP BY id1) tmp1
ORDER BY total1 DESC LIMIT 100;

官方给的这条估计算例特别有教育意义:该语句含 4 个关键字(1 个 DISTINCT + 1 个 GROUP BY + 1 个 ORDER BY + MAX(0−1,1)=1),复杂度系数 1.5;输入约 1.7 GB,于是成本 = 1.7 × 1.5 × 0.0438 = USD 0.11。

📝 小提示:客户端默认使用 UTF-8 编码。如果你的本地环境是别的编码,查询结果或上传文件里的中文可能显示为乱码——这是编码问题,不是数据坏了。

5.3 表建完了,别忘了删

官方在「跑完 SQL」的文档末尾专门留了一句提醒:如果不再需要示例数据或项目,记得删除,避免产生不必要的费用。删除数据或项目的入口在 Delete a table or a MaxCompute project 文档。存储是按天计的,留着不用也在烧钱。

六、价格与方案对比表

6.1 按量 vs 订阅:先算清「利用率临界点」

模式门槛计价单位单价适合场景
按量标准版无扫描量 / 计费小时SQL 0.0438/GB、Spark 0.1041/计费小时波动大、测试、低量
按量 Spot 版无同按量更低,但不保证时效不敏感的大批量低价值数据
订阅标准版最低 50 CUCU / 月22 USD/CU/月负载稳定且高量

回本测算(本文原创): 把订阅的 CU 折算成小时价——22 ÷ 730 ≈ 0.0301 USD/CU·小时;而 Spark 按量是 0.1041 USD/计费小时,在标准配置下 1 CU·小时 ≈ 1 计费小时。于是 0.0301 ÷ 0.1041 ≈ 29%。结论:只要你的计算负载能稳定用满订阅池的约 29%,订阅就比按量便宜;用不满 29%,订阅就是白付钱。 所以正确顺序永远是:先用按量跑一个月拿到真实用量,再按「可以长期稳定占用的量」买订阅,峰值用弹性预留 CU / 自动弹性 CU 兜底。

6.2 成本测算三例(标准地域,按量)

场景计算月成本
每天扫描 1 TB、复杂度 1.5 的内部表 SQL1024 × 1.5 × 0.0438 × 30≈ 2,018 USD
同样的查询改走 OSS 外表(0.0044/GB)1024 × 1.5 × 0.0044 × 30≈ 203 USD
10 TB 标准单可用区存储10240 × 0.0006 × 30≈ 184 USD
公网下载 500 GB500 × 0.1166≈ 58 USD

这张表最值钱的一行是第二行:同一份数据、同一个查询,从内部表换成外表,计算费直接砍掉约 90%。 这也是为什么生产数仓普遍采用「热数据放内部表、冷数据放 OSS 外表」的分层策略。

6.3 MaxCompute vs 站内其他数据产品

产品定位主要计费单位参考单价典型场景
MaxCompute离线/近实时大数据计算扫描量 / 计费小时 / CUSQL 0.0438/GB、Spark 0.1041/计费小时、订阅 22 USD/CU/月PB 级 ETL、数仓建模、日志分析
Hologres实时数仓CU/小时弹性约 0.0566–0.0735 USD/CU·小时(国际八地域参考区间)亚秒级 OLAP、实时大屏
Lindorm多模数据库节点 + 存储官方参考月价 185.76 / 312.63 USD(2 节点配置算例)宽表 / 时序 / 搜索
OSS对象存储GB/月归档/低频档更低存原始冷数据,配外部表查询

声明:以上单价采集于 2026 年 10 月,均为阿里云官方文档公开的美元口径参考值,价格可能变动,请以购买页与控制台结算页为准。Hologres 与 Lindorm 的数字为对应产品文档的参考单价 / 算例月价,仅作量级参照。

七、地域怎么选:国际站 13 个可用地域,MaxFrame 有两个坑

MaxCompute 的计算引擎在各地域的可用性并不完全一致。SQL、MapReduce、Spark、PyODPS 几乎全覆盖,但 MaxFrame 在部分地域不支持:

地域SQLMapReduceSparkPyODPSMaxFrame
中国香港✅✅✅✅✅
新加坡✅✅✅✅✅
日本(东京)✅✅✅✅✅
韩国(首尔)✅✅✅✅✅
德国(法兰克福)✅✅✅✅✅
美国(硅谷/弗吉尼亚)✅✅✅✅✅
马来西亚(吉隆坡)✅✅✅✅❌
英国(伦敦)✅✅✅✅❌
印尼(雅加达)/ 泰国(曼谷)/ 墨西哥 / 阿联酋(迪拜)✅✅✅✅✅

选地域的三条实用建议:

  1. 看数据在哪。 MaxCompute 与 OSS/ECS 同地域时内网互通、内网下载免费;跨地域取数会产生额外的公网流量费。
  2. 看你要不要用 MaxFrame。 如果你计划用 MaxFrame 跑 Python/Pandas 分布式计算,别选吉隆坡或伦敦。
  3. 看单价。 标准地域单价一致,但沙特的合作地域整体贵约 20%,韩国/墨西哥/沙特的部分存储档也更贵。

八、六个省钱动作 + 七个必避的坑

八个省钱动作(按性价比排序)

  1. 跑之前先 COST SQL 估价。 免费的官方命令,能在跑之前看到扫描量与复杂度。
  2. 做分区裁剪 + 列裁剪。 官方算例:一张 20 列、40 GB 的表,全表扫描要 40 × 1 × 0.0438 = 1.75 USD;只读 3 列(约 6 GB)降到 6 × 1 × 0.0438 = 0.26 USD——省 85%。
  3. 压 SQL 复杂度。 关键字 ≥20 个时系数是 4 倍,把一条巨型 SQL 拆成几条、避免 DISTINCT+ORDER BY+窗口函数无限堆叠。
  4. 冷数据放 OSS,用外表查。 外表单价 0.0044/GB,是内部表 0.0438/GB 的 1/10。
  5. 聚合完再下载。 公网下载 0.1166/GB 是隐形大头;上传免费、内网免费,能不下就不下。
  6. 订阅只买「稳定用满」的量。 利用率不到约 29% 就别买订阅;峰值交给弹性预留/自动弹性 CU。
  7. 不用的表和项目及时删。 存储按天累计,留着不用也在计费。
  8. 利用「失败免费」。 失败作业与排队时间不计费——写错的 SQL 放心重跑。

七个必避的坑

  1. SQL 复杂度是乘数,不是装饰。 同样扫描 1 TB,复杂度 1 与 4 之间差 4 倍账单。
  2. 内部表 Join 外表时,两部分分别按各自单价计费(0.0438 与 0.0044 各算各的),别以为整条 SQL 都按便宜的那档算。
  3. 订阅是「预留」不是「用完」。 买 100 CU 用 30 CU,剩下 70 CU 照样白付;最低门槛 50 CU ≈ 1,100 USD/月。
  4. 低频/长期存储「改回标准」会按整表/整分区收一次数据访问费(长期访问费 0.080793/GB 并不便宜),来回横跳反而更贵。
  5. 公网下载是隐形大头。 1 TB 结果全量下载 ≈ 116.6 USD,比扫一遍还贵。
  6. 项目名全球唯一且不可改。 删除后「删除宽限期」内名字仍占位,大项目可达 7–30 天。
  7. 国际地域单价不一样。 沙特约贵 1.2 倍;订阅按地域独立,多个一级 Quota 之间资源不共享。

九、常见问题 FAQ

  • Q: MaxCompute 有免费额度吗?

A: 存储层面首 1 GB 免费,备份保留 ≤ 1 天也免费;计算层面,Graph 与机器学习作业免费、纯 UDF 的 SQL 免费、失败作业与排队时间不计费。除此之外没有按月长期赠送的计算额度——它本质是「按用量付费」的服务,新用户先用按量跑小量最稳妥。

  • Q: 我只跑 SQL,不碰 Spark,会不会更省钱?

A: 通常会。标准 SQL 与 MCQA 都按 0.0438 USD/GB 的扫描量计费,而 Spark/Mars 按 0.1041 USD/计费小时计费。只要你能用分区/列裁剪把扫描量压下来,纯 SQL 路线的账单更容易预测。

  • Q: 按量和订阅到底怎么选?

A: 一句话:先按量、后订阅。 用按量跑满一个月拿到真实用量;若你能长期稳定用满订阅池的约 29% 以上,再转订阅;否则继续按量,峰值交给弹性预留/自动弹性 CU。

  • Q: 为什么我扫了 40 GB 的表,账单却只按 6 GB 算?

A: 因为计费依据是实际读取的压缩数据量,不是表的物理大小。官方算例里那张 40 GB 的 20 列表,只读 3 列时计费约 6 GB——列裁剪直接生效。同理,WHERE ds > ... 命中分区键时只对匹配分区计费。

  • Q: 作业失败了会重复扣钱吗?

A: 不会。官方明确 失败作业不收费,排队等待时间也不计费。这也是为什么可以在正式跑之前放心地反复 COST SQL 估算、试跑。

  • Q: 把结果下载到本地贵吗?

A: 上传免费、内网下载免费,只有公网下载收费 0.1166 USD/GB。量大的话建议只在 MaxCompute 里聚合出结果集再下载,或让下游服务同地域走内网读取。

  • Q: 项目建好后能改名字或换地域吗?

A: 都不能。 项目名全局唯一且创建后不可更改,地域创建时选定、后续无法变更。命名时带上团队/环境后缀,地域按「数据在哪」来选。

  • Q: 存储为什么不是按我上传的原始大小算?

A: 因为 MaxCompute 对数据做列式压缩(典型压缩比约 5:1),且只按单副本的压缩后大小计费(虽然物理上是三副本)。所以账单上的存储量通常远小于原始数据量。

  • Q: MaxCompute 和 Hologres 到底该选哪个?

A: 看你的查询形态:离线大批量加工、数仓分层建模 → MaxCompute;亚秒级交互分析、实时大屏 → Hologres;内存中的热数据点查 → Redis/Tair。生产上常见的是「MaxCompute 加工 → 结果导入 Hologres 供在线查询」,两者配合而非二选一。

十、总结

MaxCompute 是阿里云国际版上唯一把「PB 级离线计算」做成完全 Serverless 的产品,价值与复杂度同样鲜明——它没有一台机器让你调,账单里只有「计算、存储、下载」三行,但也正因为看不见硬件,不理解计费口径就一定失控。本文的核心就三句话:

  1. 计费看扫描量与作业类型:SQL 0.0438 USD/GB(外表 0.0044)、Spark 0.1041 USD/计费小时、存储 0.0006 USD/GB/天起、公网下载 0.1166 USD/GB;上传与内网下载免费。
  2. 省钱先砍量、再谈价:分区裁剪 + 列裁剪 + 降复杂度 + 冷数据走 OSS 外表,能把同一条查询的成本砍到十分之一;跑之前先 COST SQL。
  3. 订阅要算利用率:1 CU = 4 GB + 1 核 = 22 USD/月、最低 50 CU;利用率低于约 29% 时,按量反而更便宜,所以先按量、后订阅。

如果你是第一次在阿里云国际版上做大数据,请务必先用按量标准版跑通一个项目,把 COST SQL、Tunnel 上传下载、Shard/分区这套流程摸熟,再根据真实账单决定要不要上订阅。

延伸阅读(本站相关文章):

⚠️ 免责声明:本文中提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。

本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多