Clickhouse从入门到入坑(27)

92 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 28 天,点击查看活动详情

生命不息,学习不止

题外话

又到周三了,老规矩,国王日了,望广大掘友给我个面子,我家猫今天要吃狠霸堡,绝对不是我想吃,所以v我50,不然就让猫吃土

image.png

废话不多说,上货

在这里插入图片描述

clickhouse分布式数据分片

ClickHouse的分布式主要是基于数据分片和节点间的数据交互实现的,今天就来说说这个数据分片

ClickHouse的数据分片是指将数据分散地存储在多个节点上,以提高数据处理和查询的性能。它采用了基于分片的存储方式,即将整个表按照一定的规则分成若干个数据分片,每个数据分片独立存储在一个节点上。

数据分片的规则由系统默认或手动配置。默认情况下,ClickHouse会按照表的主键进行分片,即将具有相同主键的行分配到同一数据分片中。这样可以确保具有相同主键的数据在同一节点上进行存储和处理,避免了数据跨节点查询的开销。

在实际应用中,ClickHouse的数据分片还可以通过手动配置进行更精细的控制。例如,可以根据表的特性和数据分布情况,将数据分散到不同类型的节点上,以充分利用硬件资源,提高整个系统的性能。

总的来说,ClickHouse的数据分片机制可以有效提高数据处理和查询的性能,同时支持自定义规则进行更细粒度的控制,是ClickHouse分布式架构的重要组成部分。

举个例子

假设有一张包含100条数据的表,需要将其拆分成5个数据分片,每个分片包含20条数据。可以按照主键的哈希值对数据进行分片,如下所示:

数据分片11, 6, 11, 16, 21, 26, 31, 36, 41, 46
数据分片22, 7, 12, 17, 22, 27, 32, 37, 42, 47
数据分片33, 8, 13, 18, 23, 28, 33, 38, 43, 48
数据分片44, 9, 14, 19, 24, 29, 34, 39, 44, 49
数据分片55, 10, 15, 20, 25, 30, 35, 40, 45, 50

这样,每个数据分片包含了表的不同部分数据,可以分别存储在不同的服务器上,实现数据的分布式存储和查询。在查询时,可以通过哈希算法计算数据所在的分片,然后将查询请求发送到对应的服务器上,最终将多个分片的查询结果合并返回给客户端。

分布式的数据分片配置可参考官方手册

你以为结束了

下一篇我们继续挖坑

在这里插入图片描述

大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划! 在这里插入图片描述