Clickhouse从入门到入坑(25)

184 阅读3分钟

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

生命不息,学习不止

题外话

又到周一了,感谢北京的朝阳消费券,周日吃到了心心念念的铁板烧,饮品很不错,就是人有点多,很挤,还要排队,有机会再来~

image.png

睡到翻白眼

废话不多说,上货

在这里插入图片描述

clickhouse数据压缩

ClickHouse 中的数据压缩采用了列式存储的方式,也就是将同一列的数据放在一起存储,这种存储方式使得数据在压缩时更加高效。

ClickHouse 支持多种压缩算法,包括 LZ4、ZSTD、Brotli、Gzip 等,每种算法的压缩率和压缩速度都有所不同,具体使用哪种算法需要根据实际情况进行选择。

  1. LZ4

LZ4是一种快速压缩算法,基于Lempel-Ziv算法和哈希表技术。LZ4将待压缩数据分割成多个小块,每个小块都独立压缩。它还使用哈希表来查找重复数据块,以便快速进行数据压缩和解压缩。LZ4算法的主要特点是速度快,适合于实时数据压缩和解压缩。

  1. ZSTD

Zstd是一种高效的压缩算法,基于熵编码技术和字典学习技术。它使用字典来学习并存储原始数据中的模式,从而提高压缩率和解压速度。Zstd还使用熵编码技术来压缩数据,这种技术通过预测数据中的模式来减少数据的冗余信息。Zstd算法的主要特点是高压缩率和高解压速度。

  1. Brotli

Brotli 是一种由 Google 开发的通用压缩算法,能够提供高压缩比和快速压缩/解压缩速度的平衡。在 ClickHouse 中,Brotli 压缩算法相对于 ZSTD 算法,能够提供更高的压缩率,但会对查询和写入性能产生更大的影响。

  1. Gzip

Gzip是一种广泛使用的压缩算法,基于Lempel-Ziv算法和哈夫曼编码技术。它将待压缩的数据分割成多个小块,并使用Lempel-Ziv算法来查找重复的数据块。然后,Gzip使用哈夫曼编码来进一步压缩数据,以减少数据的冗余信息。Gzip算法的主要特点是压缩率高,但压缩和解压速度相对较慢。

总之,ClickHouse 支持的多种压缩算法各有优缺点,需要根据实际情况进行选择。通常情况下,LZ4 压缩算法是最常用的一种算法,能够提供高效的压缩和解压缩速度,同时对查询和写入性能的影响较小。

压缩功能影响

在使用压缩功能的同时,会对数据的查询性能、写入性能和存储空间等方面产生一定的影响。在压缩的情况下,查询时需要先解压缩才能进行查询,这会增加查询的响应时间,但同时可以减少磁盘的 I/O 操作。而在写入数据时,由于需要进行解压缩和压缩操作,因此会降低写入的速度。另外,压缩会占用一定的 CPU 资源,因此在进行压缩时需要根据实际情况进行权衡。

你以为结束了

下一篇我们继续挖坑

在这里插入图片描述

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