部门网站集约化建设方案,中国科技成就作文800字,wordpress 站长统计插件,做公司官网找谁前言
列式存储和数据压缩#xff0c;对于一款高性能数据库来说是必不可少的特性。一个非常流行的观点认为#xff0c;如果你想让查询变得更快#xff0c;最简单且有效的方法是减少数据扫描范围和数据传输时的大小#xff0c;而列式存储和数据压缩就可以帮助我们实现上述两…前言
列式存储和数据压缩对于一款高性能数据库来说是必不可少的特性。一个非常流行的观点认为如果你想让查询变得更快最简单且有效的方法是减少数据扫描范围和数据传输时的大小而列式存储和数据压缩就可以帮助我们实现上述两点。列式存储和数据压缩通常是伴生的因为一般来说列式存储是数据压缩的前提。 按列存储与按行存储相比前者可以有效减少查询时所需扫描的数据量这一点可以用一个示例简单说明。假设一张数据表A拥有50个字段A1A50以及100行数据。现在需要查询前5个字段并进行数据分析则可以用如下SQL实现
SELECT A1A2A3A4A5 FROM A如果数据按行存储数据库首先会逐行扫描并获取每行数据的所有50个字段再从每一行数据中返回A1A5这5个字段。不难发现尽管只需要前面的5个字段但由于数据是按行进行组织的实际上还是扫描了所有的字段。如果数据按列存储就不会发生这样的问题。由于数据按列组织数据库可以直接获取A1A5这5列的数据从而避免了多余的数据扫描。 按列存储相比按行存储的另一个优势是对数据压缩的友好性。 数据中的重复项越多则压缩率越高压缩率越高则数据体量越小而数据体量越小则数据在网络中的传输越快对网络带宽和磁盘IO的压力也就越小。既然如此那怎样的数据最可能具备重复的特性呢答案是属于同一个列字段的数据因为它们拥有相同的数据类型和现实语义重复项的可能性自然就更高。
列式存储
对于 OLAP 技术来说一般都是这对大量行少量列做聚合分析所以列式存储技术基本可以说是 OLAP 必用的技术方案。列式存储相比于行式存储列式存储在分析场景下有着许多优良的特性。 1、分析场景中往往需要读大量行但是少数几个列。在行存模式下数据按行连续存储所有列的数据都存储在一个block中不参与计算的列在IO时也要全部读出读取操作被严重放大。而列存模式下只需要读取参与计算的列即可极大的减低了IO cost加速了查询。 2、同一列中的数据属于同一类型压缩效果显著压缩比高。列存往往有着高达十倍甚至更高的压缩比节省了大量的存储空间降低了存储成本。 3、更高的压缩比意味着更小的data size从磁盘中读取相应数据耗时更短。 4、自由的压缩算法选择。不同列的数据具有不同的数据类型适用的压缩算法也就不尽相同。可以针对不同列类型选择最合适的压缩算法。 5、高压缩比意味着同等大小的内存能够存放更多数据系统cache效果更好。 6、列式存储除了降低IO和存储的压力之外还为向量化执行做好了铺垫。 下面这张图很形象地展现了列存优势 下面来讲讲压缩算法以ClickHouse为例
数据压缩
ClickHouse 的数据存储文件 column.bin 中存储是一列的数据由于一列是相同类型的数据所以方便高效压缩。在进行压缩的时候请 注意一个压缩数据块由头信息和压缩数据两部分组成头信息固定使用 9 位字节表示具体由 1 个 UInt81字节整型和 2 个 UInt324字节整型组成分别代表使用的压缩算法类型、压缩后的数据大小和压缩前的数据大小。每个压缩数据块的体积按照其压缩前的数据字节大小都被严格控制在64KB1MB其上下限分别由 min_compress_block_size默认6553664KB与 max_compress_block_size默认10485761M参数指定。具体压缩规则 原理的说法每 8192 条记录其实就是一条一级索引 一个索引区间 压缩成一个数据块。 1、单个批次数据 size 64KB如果单个批次数据小于 64KB则继续获取下一批数据直至累积到size 64KB时生成下一个压缩数据块。如果平均每条记录小于8byte多个数据批次压缩成一个数据块 2、单个批次数据 64KB size 1MB如果单个批次数据大小恰好在 64KB 与 1MB 之间则直接生成下一个压缩数据块。 3、单个批次数据 size 1MB如果单个批次数据直接超过 1MB则首先按照 1MB 大小截断并生成下一个压缩数据块。剩余数据继续依照上述规则执行。此时会出现一个批次数据生成多个压缩数据块的情况。如果平均每条记录的大小超过 128byte,则会把当前这一个批次的数据压缩成多个数据块。 总结在一个 xxx.bin 字段存储文件中并不是一个压缩块对应到一条一级索引而是每 8192 条数据构建一条一级索引。 总结一个 [Column].bin 其实是由一个个的压缩数据块组成的。每个压缩块的大小在64kb - 1M 之间。
参考
1、ClickHouse到底是什么凭啥这么牛逼 2、奈学pdf