DoubleCloud 即将结束。在有限时间内免费迁移服务,迁移到 ClickHouse。立即联系我们 ->->

博客 / 工程

部署 ClickHouse:来自支持服务的示例

author avatar
Tony Bonuccelli
2023 年 5 月 2 日

Architecture.1S_2R_ReplicatedMergeTree_5-nodes.3.CH.Keeper.nodes.2.CH.nodes.png

介绍

在 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 上的社区 联系。我们期待您的来信!

分享这篇文章

订阅我们的时事通讯

随时了解功能发布、产品路线图、支持和云服务!
正在加载表单...
关注我们
Twitter imageSlack imageGitHub image
Telegram imageMeetup imageRss image