- Shared
- PostgreSQL
- MySQL
- DataLakeCatalog
架构与元数据存储
- 所有副本的状态保持一致
- 计算节点为无状态
- 快速且可靠的副本引导
SharedMergeTree) 的数据库。这些表引擎不会将持久状态写入磁盘,并且适用于动态计算环境。
Shared 数据库引擎在 Replicated 数据库引擎的基础上进一步改进了其行为,同时提供了额外保障和运维优势。
关键优势
- 原子性的 CREATE TABLE … AS SELECT 表创建和数据插入以原子方式执行——要么整个操作全部完成,要么根本不会创建该表。
-
跨数据库的 RENAME TABLE
支持在数据库之间以原子方式移动表:
-
使用 UNDROP TABLE 自动恢复表
已删除的表默认会保留 8 小时,并可在此期间恢复:
保留时长可通过服务器设置进行配置。
- 改进的 Compute-compute separation 与 Replicated 数据库引擎 不同,后者要求所有副本都在线才能处理 DROP 查询,而 Shared Catalog 采用集中式元数据删除。因此,即使某些副本离线,操作也能成功完成。
- 自动元数据复制 Shared Catalog 可确保数据库定义在启动时自动复制到所有服务器。运维人员无需在新实例上手动配置或同步元数据。
- 集中式、带版本的元数据状态 Shared Catalog 在 ZooKeeper 中存储唯一可信的元数据来源。副本启动时,会拉取最新状态并应用差异以达到一致性。在查询执行期间,系统还可以等待其他副本至少达到所需的元数据版本,以确保正确性。
在 ClickHouse Cloud 中的使用方式
总结
- 为无状态引擎提供可靠且自动的元数据复制
- 无状态计算,且不在本地持久化元数据
- 支持复杂 DDL 的原子操作
- 更好地支持弹性、临时或部分离线的计算环境
- ClickHouse Cloud 用户可无缝使用