介绍
在 ClickHouse 支持部门,我们每天都面临着各种各样的技术挑战,从查询性能评估到对 ClickHouse 支持的所有配置组合进行故障排除。
虽然 ClickHouse Cloud 消除了管理这些复杂配置的烦恼,让您专注于分析数据集的乐趣,但我们仍然理解,出于多种原因,在本地运行 ClickHouse 是必要的,这通常取决于您在 ClickHouse 旅程中的哪个阶段。
作为支持工程师,我们必须跟上所有功能,才能为用户提供世界一流的支持。为了帮助我们做到这一点,我们使用 Docker Compose 文件来快速复制特定的架构和配置。今天,本着开源精神,我们提供了这些 Docker Compose 文件,为用户提供一个良好的开端,并让您确信您正在使用经过测试的架构。
注意:如果您是初学者,仍然可以使用一条命令下载 ClickHouse 二进制文件。有关更多详细信息,请参阅 快速入门。
这里介绍的示例适用于 ClickHouse 的生产部署,而不仅仅是简单的单服务器安装。如果您正在寻找用于多服务器部署的 Docker Compose 文件,或希望超越快速入门,例如,将计算和存储分离,或跨两个数据中心复制数据以实现容错,请继续阅读。
术语
术语详细信息在文档中,但这里简要介绍一下。
**副本**:副本是数据的副本。您始终至少有一个副本。创建表时,该表数据的初始实例就是第一个副本。为了在服务器丢失、网络中断或其他问题时幸存下来,您可能需要在第二台服务器上创建第二个副本。
**分片**:分片是表数据的的一部分。您始终至少有一个分片。我们建议仅使用一个分片,直到您的服务器无法跟上查询负载,并且无法进行垂直扩展。
**1S_2R**:如果您查看这篇文章顶部的图表,您会发现集群名为 **cluster_1S_2R**。这意味着该集群有一个分片和两个副本。**1S_2R** 是 ClickHouse 社区中常用的缩写。
部署注意事项
如果您正在设置 ClickHouse 服务器来导入数据以供分析,但权威记录是 OLTP 数据库或一组数据文件,那么您可能只需要一个分片和一个副本(因此只需要一台 ClickHouse 服务器)。
如果您的数据仅存在于 ClickHouse 中,并且数据无法重新创建或重新生成,那么您可能需要一个分片和两个副本(因此需要两台 ClickHouse 服务器)。
常见问题是:“我需要多少个分片?”。我们的答案是:“一个,直到您超出当前硬件的容量,无法进行垂直扩展。”
详细信息
具有两个副本的单个分片,以及具有一个副本的两个分片的文档位于 https://clickhouse.ac.cn/docs/en/architecture/introduction
要将存储和计算分离,请参阅 使用 S3 对象存储 和 使用 GCS 的相同方法。
更多示例位于 ClickHouse/examples GitHub 存储库中,其中包含所有配置和 Docker Compose 文件。例如
- 将 S3/MinIO 对象存储与 ClickHouse 一起使用
- ClickHouse 和 Grafana
- ClickHouse 和 Vector
- ClickHouse 代理
- 复制
- 分片
更多示例
我们始终希望了解社区的体验;如果您创建了令人兴奋的部署设计,请考虑在 ClickHouse 文档存储库 中提交拉取请求。如果您不喜欢拉取请求,或者有其他问题,请 提交问题 或与 Slack 上的社区 联系。我们期待您的来信!