阿里云国际版 ClickHouse 实战:海外真实单价、单副本 vs 双副本、冷热分层与三个账单算例(2026)
阿里云国际版 ClickHouse 社区兼容版在海外并不是"便宜的大数据玩具":香港地域 8 核 32 GB 双副本单节点包月 890.
- 先给结论:ClickHouse 国际版的五个决策点
- ClickHouse 在阿里云国际站的位置:和 Hologres、AnalyticDB 怎么分工
- 计费结构:两个版本、七个计费项
- 节点单价全表:海外六个地域 × 六个规格
- 每 vCPU 与每 GB 内存的成本:规格越大越便宜,但 104 核反弹
- 存储单价:ESSD 四级、Ultra Disk 与冷盘
- 单副本 vs 双副本:什么时候可以省掉这一半
- 按量 vs 包年包月:470 小时是分界线
阿里云国际版 ClickHouse 社区兼容版在海外并不是"便宜的大数据玩具":香港地域 8 核 32 GB 双副本单节点包月 890.784 美元,一个「2 分片 × 2 副本 + 2 TB PL1 存储」的集群月账单 4,459.14 美元、年账单 53,509.63 美元;而官方产品页上那个 4,299.91 美元/年的"起售价",购买链接锁定的其实是张家口地域的单副本 2 节点,同样的 8 核 32 GB 双节点配置放到香港是 10,689.36 美元/年,差 2.49 倍。真正能省钱的地方只有三处:按量转包月的 470 小时分界线(按量跑满 730 小时比包月贵 42%~57%)、把冷数据挪到冷盘(10 TB 数据省 76.4%)、以及不要误以为"双副本只多花 50%"——官方价目表上双副本恰好是单副本的 2.0000 倍,因为副本是加节点,不是加配置。这篇把国际站 ClickHouse 的计费项、海外六个地域的节点与 ESSD 单价、三个可复算的账单算例、以及建集群时的分片/副本/排序键选择一次讲透,所有派生数字都用脚本复算过。
Meta Description: 2026 阿里云国际版 ClickHouse 海外真实单价:香港新加坡东京节点与 ESSD 存储价目、单副本 vs 双副本 2 倍成本、按量 470 小时分界、冷热分层省 76%,附三个可复算账单。
关键词:阿里云国际版 ClickHouse、ApsaraDB for ClickHouse 价格、ClickHouse 单副本双副本、ClickHouse 冷热分层、ClickHouse 计费
一、先给结论:ClickHouse 国际版的五个决策点
很多人搜"阿里云 ClickHouse 多少钱",真正要回答的其实是五个问题,顺序错了就会买错规格。下面这套顺序是本篇的骨架,后文逐条给数据和算例:
| 顺序 | 决策 | 默认答案 | 判断依据 |
|---|---|---|---|
| 1 | 要不要用托管 ClickHouse | 日志/行为分析、单表过亿行、需要亚秒聚合时用 | 事务型点查、强一致更新场景不要用 |
| 2 | 社区兼容版还是企业版 | 绝大多数自建迁移场景选社区兼容版 | 企业版只按 CCU 按量计费,备份仍在公测免费期 |
| 3 | 单副本还是双副本 | 生产双副本,开发/压测单副本 | 双副本单价正好是 2.0000 倍 |
| 4 | 包年包月还是按量 | 月运行超过 470 小时就包月 | 六个海外规格的平衡点都在 464~514 小时 |
| 5 | 热存储用 PL0 还是 PL1 | 中小集群 PL0,追 IOPS 才上 PL1 | PL1 每 GB 月价是 PL0 的 2.7~3 倍 |
一句提醒:这五个答案里,只有第 4 条是纯数学,其余四条都取决于你的查询形态。所以下面先讲边界,再讲钱。
二、ClickHouse 在阿里云国际站的位置:和 Hologres、AnalyticDB 怎么分工
同一家云上做实时分析的产品至少四个,销售页都说"实时、列存、PB 级",实际分工差异很大。按本站已经写过的选型文章,可以直接给一张边界表(价格不放在这张表里,因为三者计费单位完全不同,横向比单价没有意义):
| 维度 | ClickHouse 社区兼容版 | Hologres | AnalyticDB for MySQL | MaxCompute |
|---|---|---|---|---|
| 定位 | 单表宽表极速聚合、日志/埋点 | 实时数仓、HSAP 点查+分析一体 | MySQL 协议的实时数仓 | 离线批量计算 |
| 写入方式 | 批量 INSERT / Kafka 导入 | 实时写入(Binlog/Holo Hub) | 实时写入 + 离线导入 | Tunnel 批量上传 |
| 强项 | 单表扫描吞吐、压缩率、物化视图 | 高并发点查与写入即查 | 生态兼容(BI 工具零改造) | 超大规模离线 ETL |
| 弱项 | 高频 UPDATE/DELETE 代价高、Join 能力弱 | 超大宽表扫描不如 ClickHouse | 复杂大表扫描不如 ClickHouse | 不适合交互式秒级 |
| 计费单位 | 节点(核/内存)+ 存储 GB | 计算单元 CU + 存储 | 节点规格 + 存储 | 计算单元 CU + 存储 |
| 适合谁 | 日志分析、用户行为、可观测数据 | 实时报表 + 点查混合负载 | 已有 MySQL 生态的 BI | 离线数仓、T+1 报表 |
配套阅读:站内《阿里云国际版 Hologres 实时数仓指南》讲的是写入即查那一侧,《AnalyticDB 数据仓库指南》讲的是 MySQL 协议兼容那一侧;如果你的原始诉求是"把 ELK 的检索层换掉",应该先看《Elasticsearch 容量与分片规划》,再决定要不要换成 ClickHouse —— 两者的差别不是快慢,而是"检索文档"与"聚合宽表"。
三条实战判据,来自实际迁移案例的共性:
- 查询里
GROUP BY的维度基数超过 10 万、且每次扫描行数过千万 → ClickHouse 优势最大,压缩后扫描成本极低。 - 查询以"按主键取一行"为主 → 不要选 ClickHouse,Hologres 或 Tablestore 更合适,ClickHouse 的点查要靠主键索引硬撑,并发一高就排队。
- 需要频繁按主键更新状态(订单状态、任务状态) → ClickHouse 的
ALTER TABLE ... UPDATE是异步 mutation,写入放大明显;这类表留在 RDS 或 Lindorm,ClickHouse 只存快照与聚合结果。
三、计费结构:两个版本、七个计费项
国际站 ClickHouse 的计费文档把版本拆成"社区兼容版"和"企业版",两套计费项完全不一样,混着看是最常见的误解来源。
社区兼容版(Community-compatible Edition) 按节点卖,四项费用:
| 计费项 | 计费方式 | 官方公式 | 关键细节 |
|---|---|---|---|
| 计算节点 | 包年包月 / 按量 | 单价 × 节点数 × 时长 | 单价按"地域 × 规格 × 副本类型"三张表 |
| 存储空间 | 包年包月 / 按量 | 单价 × 存储空间 × 节点数 × 时长 | 按购买容量计费,不按实际用量 |
| 冷存储空间 | 仅按量 | 单价 × 已用冷数据量 × 时长 | 需先在集群上开启分层存储 |
| 备份空间 | 仅按量 | (已用备份空间 − 免费额度)× 单价 × 时长 | 免费额度 = 集群存储容量,超出才收 |
企业版(Enterprise Edition) 按用量卖,三项费用:计算资源按 CCU(Compute Capacity Unit)/小时、存储按 GB/小时、备份存储公测期免费。企业版没有包年包月选项,也没有"节点"概念——它的计费口径和社区兼容版不可直接换算,所以本篇后面所有单价表都只针对社区兼容版。
三个最容易踩的计费口径,先记住:
- 存储买多少算多少。官方原文:选 100 GB、实际只用 20 GB,仍然按 100 GB 收费。因此建集群时存储不要"先给大一点",后期扩存储是可在线操作的。
- 备份有免费额度,额度等于集群存储容量。一个 500 GB 的集群,备份在 500 GB 以内不计费,这和 RDS 的备份计费口径不同,别拿 RDS 的经验套。
- 冷盘只能按量,不能包年包月。所以"冷热分层"这件事的成本里,冷盘永远按小时计。
四、节点单价全表:海外六个地域 × 六个规格
下面这张表是社区兼容版双副本的单节点包月价(USD/节点/月),数据取自国际站帮助中心《Community-compatible Edition compute pricing》,页面更新时间 2026 年。规格全部是 1:4 的核内存比,没有其他配比可选——这一点很重要,后面算"每 vCPU 成本"时不会出现本站 AWS 文章里那种"配比不一致导致单价差一倍"的陷阱。
| 规格(核 / 内存) | 香港 | 东京 | 新加坡·雅加达 | 吉隆坡 | 硅谷·伦敦·弗吉尼亚 | 法兰克福 |
|---|---|---|---|---|---|---|
| 4 核 16 GB | 470.196 | 479.34 | 433.49 | 411.82 | 344.43 | 456.21 |
| 8 核 32 GB | 890.784 | 904.79 | 819.36 | 778.41 | 646.13 | 861.84 |
| 16 核 64 GB | 1464.48 | 1484.67 | 1345.44 | 1278.20 | 1059.72 | 1414.80 |
| 32 核 128 GB | 2714.88 | 2749.63 | 2492.67 | 2368.10 | 1953.73 | 2620.80 |
| 64 核 256 GB | 5100.928 | 5365.50 | 5100.93 | 4846.02 | 4008.70 | 5115.71 |
| 104 核 384 GB | 8781.024 | 8781.024 | 8058.85 | 7656.13 | 6307.28 | 8472.21 |
四个从表里直接读出来的结论:
- 吉隆坡最便宜的海外地域,比香港便宜 12.6%(8 核 32 GB:778.41 vs 890.784)。如果你的用户主要在东南亚且不在新加坡落地,吉隆坡是这张表里性价比最高的一档。差距最大出现在 104 核:7656.13 vs 8781.024,差 12.8%。
- 香港比新加坡贵 8.7%,但比日本便宜 1.6%。香港到中国大陆的链路优势是它溢价的理由,纯海外业务没有理由为它多付这 8.7%。
- 硅谷/伦敦/弗吉尼亚三地同价,是海外最低档(8 核 32 GB 646.13),比香港便宜 27.5%。上一行和第 2 条并不矛盾:价格梯度是"美国 < 欧洲 < 东南亚 < 日韩/香港",这是国际站长期的价格结构。
- 104 核不是线性加价:香港从 64 核到 104 核,核数涨 62.5%,月价涨 72.1%(每核溢价 5.9%),每 vCPU 单价反而从 79.70 涨到 84.43 —— 见下一节。
单副本是同一张表的"半价版",而且严格半价(六档全部是 2.0000 倍,误差 0.0001 以内,属于四舍五入):
| 规格(核 / 内存) | 香港单副本 | 香港双副本 | 倍数 |
|---|---|---|---|
| 4 核 16 GB | 235.10 | 470.196 | 2.0000 |
| 8 核 32 GB | 445.39 | 890.784 | 2.0000 |
| 16 核 64 GB | 732.24 | 1464.48 | 2.0000 |
| 32 核 128 GB | 1357.40 | 2714.88 | 2.0001 |
| 64 核 256 GB | 2550.50 | 5100.928 | 2.0000 |
| 104 核 384 GB | 4390.50 | 8781.024 | 2.0000 |
这张表解释了为什么"双副本单价 = 2 × 单副本单价"是精确的:双副本不是给一个节点加一份副本,而是集群里的节点数直接翻倍。反过来说,如果你按"双副本大概贵 50%"做预算,最后的总账单会比预算高约 11%(计算费翻倍、存储费不变,总成本是单副本的 1.665 倍,详见第七节)。
五、每 vCPU 与每 GB 内存的成本:规格越大越便宜,但 104 核反弹
单价表不能直接比"哪档划算",因为核数不同。用脚本把包月价除以核数(官方价目表全部是 1:4 配比,所以每 vCPU 和每 GB 内存的排序完全一致,这里只列每 vCPU):
| 规格 | 香港每 vCPU 月成本(USD) | 相对 4 核档 |
|---|---|---|
| 4 核 16 GB | 117.55 | 100% |
| 8 核 32 GB | 111.35 | 94.7% |
| 16 核 64 GB | 91.53 | 77.9% |
| 32 核 128 GB | 84.84 | 72.2% |
| 64 核 256 GB | 79.70 | 67.8% |
| 104 核 384 GB | 84.43 | 71.8% |
两个反直觉的点,都会直接影响选型:
- 16 核是第一个"价格台阶":从 8 核升到 16 核,每 vCPU 便宜 17.8%,而总价只涨 64%。如果你的负载能压进一台 16 核,比开两台 8 核划算得多(2 × 890.784 = 1781.568 对比 1464.48,一台 16 核便宜 17.8%)。
- 104 核是"规格墙",不是性价比档:每 vCPU 84.43 比 64 核的 79.70 贵 5.9%。所以单集群单节点超过 64 核之后,正确的做法不是继续加核,而是加节点(分片),让每个分片落在 16~64 核区间。
另有一处官方表格的自相矛盾必须提醒:中国大陆地域 64 核的按量小时价(12.712)竟然高于 104 核(11.2952)。按 730 小时折算,64 核按量月成本 9279.76,是它包月价(3664.05)的 2.53 倍;而 104 核的按量/包月比是 1.52 倍,与其他所有地域、所有规格的 1.5~1.6 倍规律一致。这几乎可以确定是价目表录入错误。实操建议:在中国大陆地域准备长跑按量集群时,先按控制台实价核一遍,别拿这张表的 64 核按量数字做容量成本模型。海外六地域没有这个异常。
六、存储单价:ESSD 四级、Ultra Disk 与冷盘
存储是第二个容易被低估的账单项,因为它的计费基数是"购买容量 × 节点数"。也就是说,4 个节点、每节点 500 GB 的集群,账单上是 2000 GB,而不是 500 GB。下面是双副本在海外主要地域的包月单价(USD/GB/月):
| 存储类型 | 香港 | 新加坡·雅加达 | 东京 | 吉隆坡 | 硅谷·弗吉尼亚 | 法兰克福 |
|---|---|---|---|---|---|---|
| ESSD PL0 | 0.1672 | 0.1520 | 0.1520 | 0.1368 | 0.1520 / 0.1266 | 0.1506 |
| ESSD PL1 | 0.4480 | 0.4480 | 0.5180 | 0.3550 | 0.4480 | 0.4800 |
| ESSD PL2 | 0.8960 | 0.8960 | 1.0360 | 0.4250 | 0.8960 | 0.9600 |
| ESSD PL3 | 1.7920 | 1.7920 | 2.0720 | 0.8510 | 1.7920 | 1.9200 |
| Ultra Disk | 0.1020 | 0.1020 | 0.1040 | 1.7020 | 0.1020 | 0.1020 |
| 冷盘(仅按量) | 0.000028/GB/小时 | 0.000028/GB/小时 | 0.000029/GB/小时 | 0.000026/GB/小时 | 0.000026/GB/小时 | 0.000028/GB/小时 |
单副本的存储单价同样是双副本的一半(香港 PL0 0.0836、PL1 0.2240、PL2 0.4480、PL3 0.8960、Ultra 0.0510),逻辑和节点一样:存储挂在节点上,节点翻倍,存储基数翻倍。
三个必须知道的细节:
- ESSD 的性能级不是"更快的同一块盘",而是有最小容量门槛的:PL0 最小 1 GiB、PL1 最小 20 GiB、PL2 最小 461 GiB、PL3 最小 1261 GiB。所以小集群想上 PL2/PL3 会被容量门槛卡住——一个 200 GB 的集群根本买不到 PL2。
- PL 越高,按量相对包月的溢价越狠:以香港为例,PL0 按量小时价 0.000278 折月 0.20294,比包月 0.1672 贵 21.4%;而 PL1 按量 0.001 折月 0.73,比包月 0.448 贵 63.0%。原因是 ESSD 的按量单价随性能级按 2 倍递增(0.000278 → 0.001 → 0.002 → 0.004),而包月单价只按 2.14 倍递增(0.1672 → 0.448 → 0.896 → 1.792),两条曲线不平行。
- Ultra Disk 在多数地域是"最便宜的盘",但性能介于 PL0 与 PL1 之间,适合日志类顺序写、对 IOPS 不敏感的冷热混合表。它的按量小时价 0.00020、包月 0.102,只有 PL1 的 22.8%。
价目表里有两处明显异常,值得单独拎出来(这不是猜测,是同一张表内自相矛盾):
- 吉隆坡 Ultra Disk 包月价 1.7020,而香港、新加坡、东京、法兰克福、硅谷全部是 0.102~0.104,单副本侧吉隆坡同样是 0.8510 对其他地域 0.0510 —— 相差 16.7 倍,几乎确定是把某种按量价错填进了包月列。在吉隆坡开 Ultra Disk 前务必先看控制台实价。
- 吉隆坡 PL2 包月 0.4250,只比自己的 PL1(0.3550)贵 19.7%,而其他地域 PL2/PL1 都是 2.0 倍。这条对用户是"利好异常",但既然是异常,就不要把它写进长期成本模型。
七、单副本 vs 双副本:什么时候可以省掉这一半
双副本的机制是:每个分片有 2 个节点,任意一个节点故障,查询自动切到另一个。因此双副本的节点单价精确等于同规格单副本的 2 倍(第 4 节已用六档数据验证),而不是很多人以为的"多 50%"。
用香港 8 核 32 GB 做一个 2 分片的集群,在"同一份逻辑数据(2000 GB)"的前提下直接对比(单副本时每节点容量翻倍,购买总容量相同,所以存储费一样):
| 部署形态 | 节点数 | 计算月费 | 存储(共 2000 GB PL1) | 合计月费 |
|---|---|---|---|---|
| 2 分片 × 1 副本(每节点 1000 GB) | 2 | 890.784 × 2 = 1781.568 | 896.00 | 2677.568 |
| 2 分片 × 2 副本(每节点 500 GB) | 4 | 890.784 × 4 = 3563.136 | 896.00 | 4459.136 |
| 差额 | +2 | +1781.568 | 0 | +1781.568 |
结论比"贵一倍"更精细:计算费精确翻倍,存储费一分不差,总成本是单副本的 1.665 倍(4459.136 ÷ 2677.568)。多付的 1781.57 美元/月买到的能力是"节点级故障自动切换"——注意是节点级,不是机房级,跨可用区容灾仍要额外的多集群方案。
所以单副本不是"省钱技巧",而是一个明确的风险交换,只在下列场景成立:
- 开发、预发、压测环境:数据可以从上游重放,挂了重跑即可。
- 纯批处理、可断点续跑的任务:例如每天凌晨跑一次的报表聚合,失败重试成本低于 1782 美元/月。
- 只读副本用作 A/B 对比实验:不影响线上主链路。
不适合单副本的场景同样明确:任何对外承诺可用性的查询接口。ClickHouse 单副本时,节点重启(配置变更、内核升级、宿主机迁移)期间查询直接报错,没有自动切换——这种情况下"省下的 40%"会变成一次事故。
官方 SLA 的具体百分比以国际站服务等级协议页面为准,本篇不给推测值;但从架构上看,单副本与双副本的差异不是"多几个 9",而是"有没有 9"。
八、按量 vs 包年包月:470 小时是分界线
把包月价除以按量小时价,得到每个规格的盈亏平衡小时数(脚本计算,保留一位小数):
| 规格 / 地域 | 包月价(USD) | 按量小时价(USD) | 平衡点(小时/月) | 跑满 730 小时的按量溢价 |
|---|---|---|---|---|
| 香港 4 核 16 GB | 470.196 | 1.0027 | 468.9 | +55.7% |
| 香港 8 核 32 GB | 890.784 | 1.8972 | 469.5 | +55.5% |
| 香港 16 核 64 GB | 1464.48 | 3.1170 | 469.8 | +55.4% |
| 香港 32 核 128 GB | 2714.88 | 5.7764 | 470.0 | +55.3% |
| 香港 64 核 256 GB | 5100.928 | 10.7940 | 472.6 | +54.5% |
| 香港 104 核 384 GB | 8781.024 | 18.6788 | 470.1 | +55.3% |
| 新加坡 8 核 32 GB | 819.36 | 1.7244 | 475.2 | +53.6% |
| 东京 8 核 32 GB | 904.79 | 1.7928 | 504.7 | +44.6% |
| 弗吉尼亚 8 核 32 GB | 646.13 | 1.3932 | 463.8 | +57.4% |
| 法兰克福 8 核 32 GB | 861.84 | 1.6776 | 513.7 | +42.1% |
结论非常干净:海外六个地域、六种规格,平衡点全部落在 464~514 小时区间,也就是 19~21 天。换算成日常口径:
- 每天运行 16 小时以上 → 包月一定更便宜(16 × 30 = 480 小时,已过线)。
- 只在工作日白天跑(每天 10 小时、每月 22 天 = 220 小时)→ 按量省一半以上。
- 一次性迁移验证、压测、上线前回归 → 按量,别包月。
东京(504.7)和法兰克福(513.7)的平衡点偏高,是因为这两个地域的按量单价相对包月更"便宜"一点(东京 44.6% 溢价、法兰克福 42.1%),而弗吉尼亚反过来对包月最友好(57.4% 溢价)。如果你的集群是"每月跑 480~500 小时"这种模糊地带,先算一下自己落在哪个地域,再决定。
存储侧的平衡点更早:香港 PL1 包月 0.448、按量 0.001/小时,平衡点是 448 小时,比计算节点的 470 小时更靠前。也就是说存在一个"计算按量、存储包月"的错配窗口(448~470 小时之间),这个窗口里最优解是存储包月 + 计算按量。
九、三个可复算的账单算例
下面三个例子都是社区兼容版、双副本、包年包月,存储全部用 ESSD PL1,按官方公式「单价 × 容量 × 节点数」计算。
算例 A:香港,2 分片 × 2 副本,8 核 32 GB,每节点 500 GB
| 项目 | 计算过程 | 金额(USD/月) |
|---|---|---|
| 计算节点 | 890.784 × 4 | 3563.136 |
| 存储 | 0.448 × 500 × 4 | 896.00 |
| 合计 | — | 4459.136 |
年化 = 4459.136 × 12 = 53,509.63 美元。
算例 B:新加坡,1 分片 × 2 副本,16 核 64 GB,共 1000 GB
| 项目 | 计算过程 | 金额(USD/月) |
|---|---|---|
| 计算节点 | 1345.44 × 2 | 2690.88 |
| 存储 | 0.448 × 500 × 2 | 448.00 |
| 合计 | — | 3138.88 |
如果把同样配置换成单副本(1 分片 × 1 副本,1 节点):计算 1345.44 × 1 = 1345.44,存储 0.448 × 1000 = 448.00,合计 1793.44 美元/月,正好是双副本的 57.1%——少的不是 50%,因为存储基数随节点数变化,而"总容量不变"时单副本的每节点容量翻倍。
算例 C:香港,2 分片 × 2 副本,16 核 64 GB,共 2 TB
| 项目 | 计算过程 | 金额(USD/月) |
|---|---|---|
| 计算节点 | 1464.48 × 4 | 5857.92 |
| 存储 | 0.448 × 500 × 4 | 896.00 |
| 合计 | — | 6753.92 |
这三个算例放在一起,能看出一个规律:规格翻倍(8 核→16 核)时,总成本只涨 51.4%(4459.14 → 6753.92),而算力翻倍。所以"用大规格少节点"在 ClickHouse 上通常比"小规格多节点"划算,直到触及第 5 节说的 64 核台阶。
备份费用单独说:社区兼容版的备份有等于集群存储容量的免费额度,算例 A 的免费额度是 2000 GB,一般日报级备份根本用不到,账单上这项是 0。超出部分的单价在《Fees for backup space》页给出,本篇不做推算——因为该页未在已核实的页面中出现具体数字,控制台实价才是准的。
十、冷热分层:10 TB 数据省 76.4% 的算法
ClickHouse 的分层存储能把"不常查的历史分区"下沉到冷盘,冷盘只能按量计费,但单价低到可以忽略。以香港为例,冷盘 0.000028 USD/GB/小时,折月 0.02044 USD/GB/月,是 PL0 的 12.2%、PL1 的 4.6%。
一个 10 TB(按 10,000 GB 计)的分析集群,三种存法的月成本:
| 存储方案 | 计算过程 | 月成本(USD) | 相对全热 PL1 |
|---|---|---|---|
| 10 TB 全部 PL1 热盘 | 10000 × 0.448 | 4480.00 | 100% |
| 10 TB 全部 PL0 热盘 | 10000 × 0.1672 | 1672.00 | 37.3% |
| 2 TB 热(PL1)+ 8 TB 冷 | 2000 × 0.448 + 8000 × 0.000028 × 730 | 1059.52 | 23.6% |
| 2 TB 热(PL0)+ 8 TB 冷 | 2000 × 0.1672 + 8000 × 0.000028 × 730 | 497.92 | 11.1% |
从全热 PL1 切到"2 TB PL1 + 8 TB 冷",省 76.4%;从全热 PL0 切到"2 TB PL0 + 8 TB 冷",省 70.2%。东京的冷盘是 0.000029,折算 0.02117/GB/月,10 TB 方案里 8 TB 冷数据从 163.52 涨到 169.36,影响不到 6 美元,可以忽略。
分层能省的另一个隐藏项是备份:备份免费额度等于热存储容量,冷数据不计入热存储,所以冷数据越多,"备份计费基数"越小。
但分层不是免费的午餐,三个前提必须成立:
- 按分区(PARTITION BY)下沉,而不是按行。冷热分层的最小单位是分区,所以分区键必须能表达"时间"——
toYYYYMM(event_time)这类按月分区是最常见的做法,分区的粒度决定了你能把"多老的数据"挪走。 - 查询必须带时间条件,否则会扫描到冷盘,延迟从毫秒级劣化到百毫秒级,用户体验的落差比省下的钱更贵。
- 冷盘不支持包年包月,所以冷盘的账单是浮动的,做预算时按"冷数据量 × 0.02044 × 12"估年成本,别按包月价估。
十一、建集群实操:分片、副本、排序键与分区键
购买页上真正需要你决定的只有六项,其余都是默认值。下表是保守配置,适合"日志/行为分析、日增 50~200 GB"这个最常见的起点:
| 参数 | 建议值 | 为什么 |
|---|---|---|
| 地域 | 用户所在区域,或吉隆坡/硅谷 | 同一规格吉隆坡比香港便宜 12.6%,硅谷便宜 27.5% |
| 版本 | 社区兼容版 | 企业版只有 CCU 按量,没有包月折扣 |
| 分片数 | 2 起步,单分片日增 > 100 GB 再加 | 分片是水平切分,加副本不解决写入瓶颈 |
| 副本类型 | 双副本(生产)/ 单副本(测试) | 计算费恰好 2 倍,见第七节 |
| 节点规格 | 16 核 64 GB 起 | 每 vCPU 91.53,比 8 核的 111.35 便宜 17.8% |
| 存储 | ESSD PL0 + 每节点 500 GB 起 | 按购买容量计费,PL1 单价是 PL0 的 2.68 倍 |
建表这一步,90% 的性能问题在写 DDL 时就已经决定。下面这段是可直接套用的模板(ON CLUSTER 会把语句分发到所有节点,{shard}/{replica} 是集群配置里的宏):
-- 本地表:每个分片一份,ReplicatedMergeTree 保证副本间同步
CREATE TABLE analytics.events_local ON CLUSTER 'ck_cluster'
(
tenant_id UInt32,
event_time DateTime,
event_type LowCardinality(String),
user_id UInt64,
cost Decimal(18, 4),
payload String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/events_local', '{replica}')
PARTITION BY toYYYYMM(event_time)
ORDER BY (tenant_id, event_type, event_time)
TTL event_time + INTERVAL 90 DAY TO VOLUME 'cold',
event_time + INTERVAL 365 DAY DELETE
SETTINGS index_granularity = 8192;
-- 分布式表:查询入口,本身不存数据
CREATE TABLE analytics.events_all ON CLUSTER 'ck_cluster'
AS analytics.events_local
ENGINE = Distributed('ck_cluster', 'analytics', 'events_local', rand());
四个键的选择原则,逐条解释:
ORDER BY (tenant_id, event_type, event_time):排序键就是稀疏主键,决定"哪些数据能跳过"。规则是低基数的等值过滤列放前面,时间放最后。反过来写(event_time, tenant_id)会让时间范围扫描变快、但租户过滤几乎失效——如果你是多租户 SaaS,一定是租户在前。PARTITION BY toYYYYMM(event_time):按月分区。分区是 TTL 与冷热分层的最小单位,也是"删历史数据"的最小单位。不要按天分区——日增千万行的表按天分区,一年就是 365 个分区,跨分区查询的元数据开销会吃掉一半性能。TTL ... TO VOLUME 'cold':90 天后下沉冷盘,365 天删除。前提是集群的存储策略里已经定义了名为cold的 volume,否则建表直接报错。LowCardinality(String):基数小于 1 万的字符串列(事件类型、渠道、国家)必须包这一层,通常能省 30%~50% 的该列存储,查询也更快。
index_granularity = 8192 是默认值,只有在做极窄表(少于 5 列)且过滤条件离散时才需要调小;调小会让索引文件变大,得不偿失。
十二、七个最常见的坑:报错原文与修复
下面每一条都是"能搜到报错、但搜不到原因"的类型。第一列是你在客户端看到的原文(节选),第三列是可以直接照做的动作。
| 报错原文(节选) | 根因 | 修复动作 |
|---|---|---|
Too many parts (300). Merges are processing significantly slower than inserts | 每秒一次、每次几千行的小批量插入 | 合并批次到单批 ≥ 10 万行或 ≤ 1 次/秒;或改用 Kafka 表引擎攒批 |
Too many partitions for single INSERT block (more than 100) | 一次 INSERT 跨了 100 个以上分区,通常是按天分区 + 乱序时间戳 | 改按月分区;写入前按时间排序;单批数据控制在 1 个月内 |
Memory limit (for query) exceeded: would use 9.31 GiB | 单查询超了节点内存上限(默认约为物理内存的一部分) | 加 SETTINGS max_memory_usage;或把大 JOIN 改成 GLOBAL JOIN/字典表;或加节点分摊 |
Table is in readonly mode | 副本与集群元数据服务失联,进入只读保护 | 先修复节点间连通与元数据服务,再 SYSTEM RESTART REPLICA db.table |
Mutation ... is not finished 长时间不消失 | ALTER TABLE ... UPDATE/DELETE 是异步重写分区,大范围 mutation 会拖慢合并 | 别用它改历史全量;改为"建新分区表 + ALTER TABLE ... REPLACE PARTITION" |
Timeout exceeded while reading from socket(Distributed 查询) | 单个分片慢查询拖垮整个分布式查询,默认超时到点即断 | 先在各分片单独跑同一条 SQL 定位慢分片;给分布式查询加 SETTINGS max_execution_time,避免无限等待 |
| 查询返回的行数比预期少,且无报错 | 分布式表用 rand() 分片键时,IN/JOIN 的子查询没有走 GLOBAL,只在本地分片执行 | 子查询加 GLOBAL IN / GLOBAL JOIN,或把维度表改成字典 |
一个关于 mutation 的补充:很多人习惯用 ALTER TABLE ... UPDATE 修单个用户的脏数据,这在 ClickHouse 上等于"重写整个分区"。月度分区、单分区 50 GB 的情况下,一次 mutation 可能跑 10 分钟以上,期间该表写入限流。小范围修补正确做法是:把要改的行重新插一遍(用 ReplacingMergeTree 或 -If 聚合),而不是 UPDATE。
十三、扩容、变更与迁移:三条扩容路径的成本
ClickHouse 的扩容不是"点一下加 CPU",三条路径的代价完全不同:
| 扩容方式 | 操作 | 是否中断 | 成本变化 | 适用 |
|---|---|---|---|---|
| 纵向升配(加核/加内存) | 控制台变更配置,节点重启 | 分钟级中断(单副本即全程不可用) | 按新规格单价重算,差价按剩余周期补 | 单分片压力大、数据量不大 |
| 加副本 | 增加节点,副本自动同步 | 不中断 | +1 个节点单价 + 存储 | 提升读取并发与可用性 |
| 加分片 | 增加分片,需重分布数据 | 不中断,但迁移期双写/双读 | +节点数,且迁移期临时双份存储 | 数据量或写入量超出单机 |
一个容易被忽略的账:纵向升配时的差价按剩余周期补,但降配不退。所以"先买小的、再升配"在包年包月下是不划算的,反而"先买大的、再降配"也不退钱。规格要在下单时按 6~12 个月的峰值估准,宁可加副本,不要反复改规格。
加分片的数据重分布,实操上不是"改个分片数":ClickHouse 的分片是逻辑切分,加分片后老数据不会自动搬到新分片。标准做法是新建一套分片(或临时集群),用 remoteSecure() 表函数把历史数据按新规则拉过去,再切流量。这个过程必然产生一份临时双份存储,规模大时临时成本会比迁移本身更贵——所以分片数在第一次建集群时就该按 12 个月后的量估。
如果源库是 MySQL/RDS,走数据同步比"导出 CSV 再导入"可靠得多,同步能力的边界见站内《DTS 数据迁移指南》;注意 DTS 支持的源/目标库组合以文档实时列表为准,用前先确认 ClickHouse 是否在列。
十四、省钱清单:八条能立刻落地的动作
把前面各节的结论汇总成一张可执行清单。"预计节省"都是相对"默认配置"(香港、双副本、包月 PL1、全热存储、按量跑满月)算的,前提条件不成立时不要套用:
| 措施 | 预计节省 | 前提 |
|---|---|---|
| 按量改包年包月 | 计算费降 35.7%(1 − 1/1.5547) | 每月运行 > 470 小时 |
| 开发/压测环境改单副本 | 总成本降 39.9%(1 − 1/1.665) | 数据可重放、不对外承诺 |
| 冷热分层(2 TB 热 + 8 TB 冷) | 存储费降 76.4% | 分区键含时间、查询带时间条件 |
| 存储 PL1 改 PL0 | 存储费降 62.7%(1 − 0.1672/0.448) | 单盘 IOPS 需求 ≤ 10,000、吞吐 ≤ 180 MB/s |
| 存储 PL1 改 Ultra Disk | 存储费降 77.2%(1 − 0.102/0.448) | 顺序写为主、对 IOPS 不敏感 |
| 地域从香港迁吉隆坡 | 计算费降 12.6% | 用户主要在东南亚、可接受延迟变化 |
| 地域从香港迁硅谷/弗吉尼亚 | 计算费降 27.5% | 用户主要在美洲 |
| 规格控制在 64 核以内 | 避免每核 5.9% 溢价 | 单分片数据量可通过加分片消化 |
一条反向提醒:别为了省钱把存储一次性买大。存储按购买容量计费,且可以在线扩容,"先买 4 TB 用 1 TB"等于每月白送 3 TB 的钱(香港 PL1 是 0.448 × 3072 = 1376.26 美元/月)。反过来,备份的免费额度是"等于集群存储容量",所以扩存储同时会扩备份免费额度,这两件事要一起算。
如果还需要把整条链路补齐(对象存储放原始日志、日志服务做采集、ClickHouse 做聚合层),可以按需读站内《OSS 对象存储指南》和《SLS 日志服务指南》,这两篇的计费结构与本篇的节点制完全不同,不要混着做成本模型。
常见问题 FAQ
- Q: 阿里云国际版 ClickHouse 有公开价目表吗?
A: 有,而且比大多数产品透明:社区兼容版的节点单价与存储单价都在帮助中心公开,按"地域 × 规格 × 副本类型"三张表列出,本文的表格就是从这里来的。但要注意页面上那句"价格仅供参考,以控制台为准"——价目表会滞后于调价,下单前用控制台核一遍。
- Q: 产品页写的"4,299.91 美元/年"是真的吗?
A: 是真价,但不是海外价。该价格对应的购买链接锁定在张家口地域、单副本、2 节点、8 核,属于中国大陆地域的促销价。同样 8 核 32 GB、2 节点、单副本放到香港是 10,689.36 美元/年,是它的 2.49 倍。国际站用户看"起价"时,一定要点进购买页看地域参数。
- Q: 双副本是不是只贵 50%?
A: 不是。节点单价精确是 2 倍(六档规格全部是 2.0000 倍),因为副本 = 加节点。但总成本不是 2 倍,而是 1.665 倍——因为存储按购买容量计费,同一份逻辑数据在单副本下每节点容量翻倍,购买总容量不变,存储费一分不差。
- Q: 为什么 104 核比 64 核"每核更贵"?
A: 香港 64 核每 vCPU 79.70 美元、104 核 84.43 美元,贵 5.9%。这不是笔误,而是大规格的定价策略:单机超过 64 核后,边际成本上升(单机故障影响面更大),官方用单价抑制"超大单节点"的用法。正确做法是加节点而不是加核。
- Q: 按量跑一个月到底贵多少?
A: 按 730 小时算,海外各规格的按量溢价在 42.1%(法兰克福 8 核)到 57.4%(弗吉尼亚 8 核)之间,香港六档全部在 54.5%~55.7%。平衡点是 464~514 小时,每天跑 16 小时以上就该包月。
- Q: 冷盘能不能包年包月?
A: 不能。官方明确"冷数据盘不支持包年包月,仅按量",折算价香港 0.02044 美元/GB/月,是 PL0 的 12.2%。做预算时按"冷数据量 × 0.02044 × 12"估年成本。
- Q: 存储买多了能退吗?
A: 不能缩容。存储按购买容量计费,且只支持扩容不支持缩容,所以下单时按 3 个月的实际增量估,别按 3 年的预估买。备份免费额度等于存储容量,扩容时这两件事要一起算。
- Q: 单副本集群能临时改成双副本吗?
A: 可以通过增加节点的方式转成双副本,属于"加副本"操作,不中断写入,但副本同步期间会占用带宽与 IO。已有的单副本数据不会丢,但同步完成前该分片仍不具备故障切换能力。
价格与时效说明
本文所有单价取自阿里云国际站帮助中心《Community-compatible Edition compute pricing》《Community-compatible Edition storage pricing》《Billable items》三页,页面标注的更新时间为 2026 年;计费公式、免费额度规则同样来自这三页。所有百分比、平衡点、账单合计均由脚本按上述单价复算(每月按 730 小时),可以按文中公式自行验算。低价促销(如产品页的年度套餐)、地域调价与新规格上线会随时改变结论,实际扣费以控制台下单页为准。
另外提醒两处官方价目表内的自相矛盾:中国大陆地域 64 核按量小时价高于 104 核;吉隆坡 Ultra Disk 包月价 1.7020 是其他地域的 16.7 倍。这两处几乎可以确定是录入错误,本文已在对应章节标注,不要把它们写进长期成本模型。
⚠️ 免责声明:本文中提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。
本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多