Merge Tree数据存储与数据标记
2023-09-02 10:19:27 16 举报
Merge Tree数据存储与数据标记
作者其他创作
大纲/内容
64KB~1M之间一对一压缩文件的偏移量会将前面的偏移量加起来然后+头文件大小压缩块的偏移量是不变的
64KB~1M之间
.bin文件
8192
permary.key文件
为了衔接一级索引和数据的桥梁数据索引和数据标记是一一对应数据标记文件 .mrk 与数据文件 .bin一一对应一行数据使用元组表示元组内包含两个整型数值的偏移量信息
.mrk文件
未压缩大小65536655366553665536655366553665536
压缩缺陷减少数据大小 降低存储空间 加快传输效率 但解压和压缩动作 额外的性能消耗读取数据之前 先将数据加载到内存 解压才能操作 但是缩小查询范围 精度更细
列式存储MergeTree中 数据按列存储 具体到字段每个字段都有一个.bin文件 存储在.bin文件之前会先将数据压缩节省空间数据被压缩成一块一块的放在.bin文件中
压缩文件中偏移量00012016261606051666516
头文件 1
标记0123456
由9位字节表示前四位压缩算法中间五位压缩后大小后五位压缩前大小
将数据以块的形式存放在文件最终块大小由实际情况而定
数据块
大于1M一对多压缩文件的偏移量会将前面的偏移量加起来然后+头文件大小解压缩中的偏移量也不变
头文件 0
压缩前的数据字节大小,都被严格控制在64KB~1MB
大于1M
范围0600012000span style=\
0x821 12000 65536
索引标记0123456
数据存储
小于64KB多对一压缩文件的偏移量不会走 解压缩块中的偏移量会一直增加因为在不断放数据进来
压缩后数据
数据压缩默认LZ4算法压缩减少数据存储的空间
小于64KB
解压缩块中的偏移量08192163840000
MarkRange
写入过程
压缩前的数据
继续加数据直到大于64KB
压缩大小1200014000345601000456782345012345
数据标记
每一行标记数据都表示一个segment的数据(8192行)在.bin压缩文件中的读取位置信息标记数据与一级索引数据不同 不能常驻于内存 使用LRU缓存策略加快其取用速度
压缩大小081921238424576327684096049152
块0123456
按照1M切分
MarkRange与索引编号对应
数据的大小
索引标记与数据标记一一对应
0 条评论
下一页