介绍
这些部署示例基于 ClickHouse 支持和服务组织向 ClickHouse 用户提供的建议。 这些都是有效的示例,我们建议您尝试它们,然后根据您的需求进行调整。 您可能会在这里找到完全符合您要求的示例。 或者,如果您有一个需求是数据复制三次而不是两次,您应该能够按照这里呈现的模式添加另一个副本。
术语
副本
数据的副本。 ClickHouse 始终至少保留一份您的数据副本,因此最低的 replicas 数量为一。这是一个重要的细节,您可能不习惯将数据的原始副本视为副本,但这就是 ClickHouse 代码和文档中使用的术语。添加第二个数据副本可以提供容错能力。
分片
数据的子集。 ClickHouse 始终至少为您的数据保留一个分片,因此如果您不将数据划分到多个服务器上,您的数据将存储在一个分片中。在多个服务器上分片数据可以用于分担负载,如果您超出了单个服务器的容量。目标服务器由 sharding key 决定,并在您创建分布式表时定义。分片键可以是随机的或作为 哈希函数 的输出。涉及分片的部署示例将使用 rand()
作为分片键,并将提供关于何时以及如何选择不同分片键的进一步信息。
分布式协调
ClickHouse Keeper 提供了数据复制和分布式 DDL 查询执行的协调系统。 ClickHouse Keeper 与 Apache ZooKeeper 兼容。
示例
基本
-
横向扩展 示例展示了如何在两个节点之间分片数据,并使用分布式表。 这将导致在两个 ClickHouse 节点上存储数据。 这两个 ClickHouse 节点还运行 ClickHouse Keeper 提供分布式同步。 第三个节点独立运行 ClickHouse Keeper 以完成 ClickHouse Keeper 的法定人数。
-
故障容错的复制 示例展示了如何在两个节点之间复制数据,并使用 ReplicatedMergeTree 表。 这将导致在两个 ClickHouse 节点上存储数据。 除了这两个 ClickHouse 服务器节点外,还有三个独立的 ClickHouse Keeper 节点来管理复制。
中级
- 敬请期待
高级
- 敬请期待