2026阿里云国际版MaxCompute实战教程:按扫描量计费怎么算、订阅CU怎么选与成本测算
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 级离线批处理、数仓分层建模、日志/行为数据的大规模 ETL | MaxCompute(本文) | 面向离线与近实时的海量计算,按扫描量计费,不占用常驻实例 |
| 实时大屏、亚秒级多维 OLAP、Ad-hoc 交互查询 | Hologres | 面向实时数仓与在线分析,按 CU 计费,亚秒响应 |
| 宽表、时序、搜索多模数据混合存取 | Lindorm | 面向 IoT/时序/搜索等多模场景 |
| 在线交易(订单、用户、账务)的 OLTP | RDS / PolarDB | 行存关系库,强事务与低延迟点查 |
| 存原始文件、把冷数据当便宜仓库 | OSS | 对象存储,配合 MaxCompute 外表查询可省 10 倍计算费 |
| 采集与检索日志、投递到数仓 | SLS | 日志服务,官方提供一键 Ship To MaxCompute |
一句话记住分工:MaxCompute 解决「大批量数据怎么算得又快又便宜」,Hologres 解决「结果怎么查得够快」,OSS 解决「冷数据放哪儿最便宜」。 三者不是互斥的——生产环境里最常见的就是「OSS 存原始数据 → MaxCompute 离线加工 → 结果导入 Hologres 供在线查询」。本文只讲 MaxCompute,其他几篇请见文末延伸阅读。
二、MaxCompute 到底是什么:一个「看不见服务器」的 Serverless 数仓
官方对 MaxCompute(前身 ODPS)的定义是:云原生大数据计算服务,企业级 SaaS 智能云数据仓库。翻译成人话有三层含义:
- 全托管、Serverless。 你不需要购买、启动或维护任何一台机器。存储层与计算层完全分离,两者都能独立弹性伸缩——没有「按量配置实例」这一步,也就没有「忘记关机被扣钱」这回事。
- 按作业计费。 每条 SQL、每个 MapReduce/Spark 作业跑完(成功)才结算,账单按天聚合,次日 06:00 前从账户余额扣除。没有跑作业的时间段,计算费就是 0。
- 多引擎 + 数据湖仓一体。 同一个引擎支持 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 | 同 Spark | 0.1041 / 计费小时 |
| MaxFrame | CU-小时 | 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 关键字数量 | 复杂度系数 |
|---|---|
| ≤ 3 | 1 |
| 4 – 6 | 1.5 |
| 7 – 19 | 2 |
| ≥ 20 | 4 |
关键字计法为: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 CU | 4 GB | 1 核 | USD 22.0 / 月 |
三条必须知道的规则:
- 最低购买 50 CU,即最低门槛约 1,100 USD/月(50 × 22)。低于这个量级,订阅几乎不可能比按量划算。
- 买多少是多少,用不完也不退。 官方原文:买的 100 CU 就是一个「恰好 100 CU 的池子」——作业用得少,空闲的 CU 就闲置;作业需要超过 100 CU,也只能在 100 CU 以内跑,结果是执行时间变长而不是加钱。
- 订阅只覆盖计算,不覆盖存储与下载。 而且订阅资源池是按地域、按账号独立的,同一地域可以买多份「一级 Quota」,但多个一级 Quota 之间资源互相独立、不能共享。
在订阅之上还有两种叠加包,都不能独立使用,必须先有订阅:
- 弹性预留 CU(Elastically reserved CUs):你自己控制何时扩、何时缩,用于可预期的峰值。
- 自动弹性 CU(Auto-scaling CUs):系统自动探测负载波动并伸缩,只用多少付多少,用于不可预期的尖峰。
3.4 存储计费:按「压缩后单副本的日均量」算
存储分「单可用区」与「多可用区」两大类,每类又有标准、低频(IA)、长期(Long-term)三档:
| 类型 | 存储费(USD/GB/天) | 数据访问费(USD/GB) |
|---|---|---|
| 单可用区 · 标准 | 0.0006(首 1 GB 免费) | — |
| 单可用区 · 低频 IA | 0.000412 | 0.006191 |
| 单可用区 · 长期 | 0.00017 | 0.080793 |
| 多可用区 · 标准 | 0.00078 | — |
| 多可用区 · 低频 IA | 0.000536 | 0.006191 |
| 多可用区 · 长期 | 0.000221 | 0.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 控制台创建:
- 登录 MaxCompute 控制台,左上角选好地域。
- 左侧导航选择 Manage Configurations > Projects。
- 点击 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。官方另外提醒:不要解析客户端的输出,其格式不保证向后兼容。
安装步骤:
- 从 GitHub 的
aliyun/aliyun-odps-consolereleases 页下载最新的odpscmd_public.zip(下载链接随版本更新,不要写死版本号)。若 GitHub 不可达,可用官方 OSS 镜像:
https://maxcompute-repo.oss-cn-hangzhou.aliyuncs.com/odpscmd/latest/odpscmd_public.zip
- 解压后得到
bin、conf、lib、plugins四个目录。 - 打开
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_host | LogView 地址,建议填;不填作业失败时无法快速定位 |
各国际地域的 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 CU | CU / 月 | 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 的内部表 SQL | 1024 × 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 GB | 500 × 0.1166 | ≈ 58 USD |
这张表最值钱的一行是第二行:同一份数据、同一个查询,从内部表换成外表,计算费直接砍掉约 90%。 这也是为什么生产数仓普遍采用「热数据放内部表、冷数据放 OSS 外表」的分层策略。
6.3 MaxCompute vs 站内其他数据产品
| 产品 | 定位 | 主要计费单位 | 参考单价 | 典型场景 |
|---|---|---|---|---|
| MaxCompute | 离线/近实时大数据计算 | 扫描量 / 计费小时 / CU | SQL 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 在部分地域不支持:
| 地域 | SQL | MapReduce | Spark | PyODPS | MaxFrame |
|---|---|---|---|---|---|
| 中国香港 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 新加坡 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 日本(东京) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 韩国(首尔) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 德国(法兰克福) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 美国(硅谷/弗吉尼亚) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 马来西亚(吉隆坡) | ✅ | ✅ | ✅ | ✅ | ❌ |
| 英国(伦敦) | ✅ | ✅ | ✅ | ✅ | ❌ |
| 印尼(雅加达)/ 泰国(曼谷)/ 墨西哥 / 阿联酋(迪拜) | ✅ | ✅ | ✅ | ✅ | ✅ |
选地域的三条实用建议:
- 看数据在哪。 MaxCompute 与 OSS/ECS 同地域时内网互通、内网下载免费;跨地域取数会产生额外的公网流量费。
- 看你要不要用 MaxFrame。 如果你计划用 MaxFrame 跑 Python/Pandas 分布式计算,别选吉隆坡或伦敦。
- 看单价。 标准地域单价一致,但沙特的合作地域整体贵约 20%,韩国/墨西哥/沙特的部分存储档也更贵。
八、六个省钱动作 + 七个必避的坑
八个省钱动作(按性价比排序)
- 跑之前先
COST SQL估价。 免费的官方命令,能在跑之前看到扫描量与复杂度。 - 做分区裁剪 + 列裁剪。 官方算例:一张 20 列、40 GB 的表,全表扫描要
40 × 1 × 0.0438 = 1.75 USD;只读 3 列(约 6 GB)降到6 × 1 × 0.0438 = 0.26 USD——省 85%。 - 压 SQL 复杂度。 关键字 ≥20 个时系数是 4 倍,把一条巨型 SQL 拆成几条、避免 DISTINCT+ORDER BY+窗口函数无限堆叠。
- 冷数据放 OSS,用外表查。 外表单价 0.0044/GB,是内部表 0.0438/GB 的 1/10。
- 聚合完再下载。 公网下载 0.1166/GB 是隐形大头;上传免费、内网免费,能不下就不下。
- 订阅只买「稳定用满」的量。 利用率不到约 29% 就别买订阅;峰值交给弹性预留/自动弹性 CU。
- 不用的表和项目及时删。 存储按天累计,留着不用也在计费。
- 利用「失败免费」。 失败作业与排队时间不计费——写错的 SQL 放心重跑。
七个必避的坑
- SQL 复杂度是乘数,不是装饰。 同样扫描 1 TB,复杂度 1 与 4 之间差 4 倍账单。
- 内部表 Join 外表时,两部分分别按各自单价计费(0.0438 与 0.0044 各算各的),别以为整条 SQL 都按便宜的那档算。
- 订阅是「预留」不是「用完」。 买 100 CU 用 30 CU,剩下 70 CU 照样白付;最低门槛 50 CU ≈ 1,100 USD/月。
- 低频/长期存储「改回标准」会按整表/整分区收一次数据访问费(长期访问费 0.080793/GB 并不便宜),来回横跳反而更贵。
- 公网下载是隐形大头。 1 TB 结果全量下载 ≈ 116.6 USD,比扫一遍还贵。
- 项目名全球唯一且不可改。 删除后「删除宽限期」内名字仍占位,大项目可达 7–30 天。
- 国际地域单价不一样。 沙特约贵 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 的产品,价值与复杂度同样鲜明——它没有一台机器让你调,账单里只有「计算、存储、下载」三行,但也正因为看不见硬件,不理解计费口径就一定失控。本文的核心就三句话:
- 计费看扫描量与作业类型:SQL 0.0438 USD/GB(外表 0.0044)、Spark 0.1041 USD/计费小时、存储 0.0006 USD/GB/天起、公网下载 0.1166 USD/GB;上传与内网下载免费。
- 省钱先砍量、再谈价:分区裁剪 + 列裁剪 + 降复杂度 + 冷数据走 OSS 外表,能把同一条查询的成本砍到十分之一;跑之前先
COST SQL。 - 订阅要算利用率:1 CU = 4 GB + 1 核 = 22 USD/月、最低 50 CU;利用率低于约 29% 时,按量反而更便宜,所以先按量、后订阅。
如果你是第一次在阿里云国际版上做大数据,请务必先用按量标准版跑通一个项目,把 COST SQL、Tunnel 上传下载、Shard/分区这套流程摸熟,再根据真实账单决定要不要上订阅。
延伸阅读(本站相关文章):
- 阿里云国际版注册教程:免实名、支付宝与国内信用卡支付
- 阿里云国际版 Hologres 实时数仓实战教程
- 阿里云国际版 Lindorm 多模数据库实战教程
- 阿里云国际版日志服务 SLS 实战教程
- 阿里云国际版人工智能平台 PAI 实战教程
- 阿里云国际版节省计划与预留实例省钱攻略
⚠️ 免责声明:本文中提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。
本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多