|NO.Z.00010|——————————|BigDataEnd|——|Hadoop&OLAP_ClickHouse.V07|——|ClickHouse.v07|表引擎|MergeTree|数据标记|分区/索引/标记|压缩协同|
一、数据标记
### --- 数据标记
~~~ .mrk文件
~~~ 将以及索引primary.idx和数据文件.bin建立映射关系
### --- 通用用hits_v1表说明:
~~~ 数据标记和索引区间是对齐的,根据索引区间的下标编号,
~~~ 就能找到数据标记---索引编号和数据标记数值相同
~~~ 每一个[Column].bin都有一个[Column].mrk与之对应---.
~~~ mrk文件记录数据在.bin文件中的偏移量拿JavaEnable字段说明:1 b * 8192 = 8192b 8192b * 8 = 64k


二、 .mrk文件内容的生成规则
### --- .mrk文件内容的生成规则
~~~ 数据标记和区间是对齐的。均按照index_granularity粒度间隔。
~~~ 可以通过索引区间的下标编号找到对应的数据标记。
~~~ 每一个列字段的.bin文件都有一个.mrk数据标记文件,用于记录数据在.bin文件中的偏移量信息。
~~~ 标记数据采用LRU缓存策略加快其取用速度
三、mrk文件的工作方式:分区、索引、标记和压缩协同
### --- 写入过程
~~~ 生成分区目录
~~~ 合并分区目录
~~~ 生成primary.idx索引文件、每一列的.bin和.mrk文件

四、查询过程
### --- 查询过程
~~~ 根据分区索引缩小查询范围
~~~ 根据数据标记,缩小查询范围
~~~ 解压压缩块

五、数据标记与压缩数据块的对应关系
### --- 数据标记与压缩数据块的对应关系
~~~ 多对一:
~~~ 一对一:
~~~ 一对多:



Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通