简介
在 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/zh/architecture/introduction
要分离存储和计算,请参阅 使用 S3 对象存储 和 同样使用 GCS。
更多示例位于 ClickHouse/examples GitHub 仓库中,其中包含所有配置和 Docker compose 文件。 例如
- 将 S3/MinIO 对象存储与 ClickHouse 结合使用
- ClickHouse 和 Grafana
- ClickHouse 和 Vector
- ClickHouse 代理
- 复制
- 分片
更多示例
我们一直希望听到社区的体验;如果您创建了一个令人兴奋的部署设计,请考虑在 ClickHouse 文档仓库中打开一个拉取请求。 如果拉取请求不是您喜欢的方式,或者您有疑问,请打开一个 issue 或在 Slack 上与社区交流。 我们期待着您的来信!