阿里云国际版 ClickHouse 实战:海外真实单价、单副本 vs 双副本、冷热分层与三个账单算例(2026)

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

一句话结论

阿里云国际版 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 才上 PL1PL1 每 GB 月价是 PL0 的 2.7~3 倍

一句提醒:这五个答案里,只有第 4 条是纯数学,其余四条都取决于你的查询形态。所以下面先讲边界,再讲钱。

二、ClickHouse 在阿里云国际站的位置:和 Hologres、AnalyticDB 怎么分工

同一家云上做实时分析的产品至少四个,销售页都说"实时、列存、PB 级",实际分工差异很大。按本站已经写过的选型文章,可以直接给一张边界表(价格不放在这张表里,因为三者计费单位完全不同,横向比单价没有意义):

维度ClickHouse 社区兼容版HologresAnalyticDB for MySQLMaxCompute
定位单表宽表极速聚合、日志/埋点实时数仓、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 —— 两者的差别不是快慢,而是"检索文档"与"聚合宽表"。

三条实战判据,来自实际迁移案例的共性:

  1. 查询里 GROUP BY 的维度基数超过 10 万、且每次扫描行数过千万 → ClickHouse 优势最大,压缩后扫描成本极低。
  2. 查询以"按主键取一行"为主 → 不要选 ClickHouse,Hologres 或 Tablestore 更合适,ClickHouse 的点查要靠主键索引硬撑,并发一高就排队。
  3. 需要频繁按主键更新状态(订单状态、任务状态) → 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 GB470.196479.34433.49411.82344.43456.21
8 核 32 GB890.784904.79819.36778.41646.13861.84
16 核 64 GB1464.481484.671345.441278.201059.721414.80
32 核 128 GB2714.882749.632492.672368.101953.732620.80
64 核 256 GB5100.9285365.505100.934846.024008.705115.71
104 核 384 GB8781.0248781.0248058.857656.136307.288472.21

四个从表里直接读出来的结论:

  1. 吉隆坡最便宜的海外地域,比香港便宜 12.6%(8 核 32 GB:778.41 vs 890.784)。如果你的用户主要在东南亚且不在新加坡落地,吉隆坡是这张表里性价比最高的一档。差距最大出现在 104 核:7656.13 vs 8781.024,差 12.8%。
  2. 香港比新加坡贵 8.7%,但比日本便宜 1.6%。香港到中国大陆的链路优势是它溢价的理由,纯海外业务没有理由为它多付这 8.7%。
  3. 硅谷/伦敦/弗吉尼亚三地同价,是海外最低档(8 核 32 GB 646.13),比香港便宜 27.5%。上一行和第 2 条并不矛盾:价格梯度是"美国 < 欧洲 < 东南亚 < 日韩/香港",这是国际站长期的价格结构。
  4. 104 核不是线性加价:香港从 64 核到 104 核,核数涨 62.5%,月价涨 72.1%(每核溢价 5.9%),每 vCPU 单价反而从 79.70 涨到 84.43 —— 见下一节。

单副本是同一张表的"半价版",而且严格半价(六档全部是 2.0000 倍,误差 0.0001 以内,属于四舍五入):

规格(核 / 内存)香港单副本香港双副本倍数
4 核 16 GB235.10470.1962.0000
8 核 32 GB445.39890.7842.0000
16 核 64 GB732.241464.482.0000
32 核 128 GB1357.402714.882.0001
64 核 256 GB2550.505100.9282.0000
104 核 384 GB4390.508781.0242.0000

这张表解释了为什么"双副本单价 = 2 × 单副本单价"是精确的:双副本不是给一个节点加一份副本,而是集群里的节点数直接翻倍。反过来说,如果你按"双副本大概贵 50%"做预算,最后的总账单会比预算高约 11%(计算费翻倍、存储费不变,总成本是单副本的 1.665 倍,详见第七节)。

五、每 vCPU 与每 GB 内存的成本:规格越大越便宜,但 104 核反弹

单价表不能直接比"哪档划算",因为核数不同。用脚本把包月价除以核数(官方价目表全部是 1:4 配比,所以每 vCPU 和每 GB 内存的排序完全一致,这里只列每 vCPU):

规格香港每 vCPU 月成本(USD)相对 4 核档
4 核 16 GB117.55100%
8 核 32 GB111.3594.7%
16 核 64 GB91.5377.9%
32 核 128 GB84.8472.2%
64 核 256 GB79.7067.8%
104 核 384 GB84.4371.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 PL00.16720.15200.15200.13680.1520 / 0.12660.1506
ESSD PL10.44800.44800.51800.35500.44800.4800
ESSD PL20.89600.89601.03600.42500.89600.9600
ESSD PL31.79201.79202.07200.85101.79201.9200
Ultra Disk0.10200.10200.10401.70200.10200.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%。

价目表里有两处明显异常,值得单独拎出来(这不是猜测,是同一张表内自相矛盾):

  1. 吉隆坡 Ultra Disk 包月价 1.7020,而香港、新加坡、东京、法兰克福、硅谷全部是 0.102~0.104,单副本侧吉隆坡同样是 0.8510 对其他地域 0.0510 —— 相差 16.7 倍,几乎确定是把某种按量价错填进了包月列。在吉隆坡开 Ultra Disk 前务必先看控制台实价。
  2. 吉隆坡 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)2890.784 × 2 = 1781.568896.002677.568
2 分片 × 2 副本(每节点 500 GB)4890.784 × 4 = 3563.136896.004459.136
差额+2+1781.5680+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 GB470.1961.0027468.9+55.7%
香港 8 核 32 GB890.7841.8972469.5+55.5%
香港 16 核 64 GB1464.483.1170469.8+55.4%
香港 32 核 128 GB2714.885.7764470.0+55.3%
香港 64 核 256 GB5100.92810.7940472.6+54.5%
香港 104 核 384 GB8781.02418.6788470.1+55.3%
新加坡 8 核 32 GB819.361.7244475.2+53.6%
东京 8 核 32 GB904.791.7928504.7+44.6%
弗吉尼亚 8 核 32 GB646.131.3932463.8+57.4%
法兰克福 8 核 32 GB861.841.6776513.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 × 43563.136
存储0.448 × 500 × 4896.00
合计—4459.136

年化 = 4459.136 × 12 = 53,509.63 美元。

算例 B:新加坡,1 分片 × 2 副本,16 核 64 GB,共 1000 GB

项目计算过程金额(USD/月)
计算节点1345.44 × 22690.88
存储0.448 × 500 × 2448.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 × 45857.92
存储0.448 × 500 × 4896.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.4484480.00100%
10 TB 全部 PL0 热盘10000 × 0.16721672.0037.3%
2 TB 热(PL1)+ 8 TB 冷2000 × 0.448 + 8000 × 0.000028 × 7301059.5223.6%
2 TB 热(PL0)+ 8 TB 冷2000 × 0.1672 + 8000 × 0.000028 × 730497.9211.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 美元,可以忽略。

分层能省的另一个隐藏项是备份:备份免费额度等于热存储容量,冷数据不计入热存储,所以冷数据越多,"备份计费基数"越小。

但分层不是免费的午餐,三个前提必须成立:

  1. 按分区(PARTITION BY)下沉,而不是按行。冷热分层的最小单位是分区,所以分区键必须能表达"时间"——toYYYYMM(event_time) 这类按月分区是最常见的做法,分区的粒度决定了你能把"多老的数据"挪走。
  2. 查询必须带时间条件,否则会扫描到冷盘,延迟从毫秒级劣化到百毫秒级,用户体验的落差比省下的钱更贵。
  3. 冷盘不支持包年包月,所以冷盘的账单是浮动的,做预算时按"冷数据量 × 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 提供,点击访问首页了解更多