美文网首页
es存储文件分析

es存储文件分析

作者: caster | 来源:发表于2021-08-20 17:28 被阅读0次

    观察es数据目录内会发现大量文件如下图所示:


    一个shards内的文件

    其中重要的有如下几个,存储三大头:

    文件后缀 文件含义
    .fdt Source文档存储的字段值
    .fdx Source文档索引指针,需载入内存
    .fnm 存储fields信息
    .dvd docValues值,列式存储
    .dvm docValues原信息,索引
    .doc 包含每个term词频的docs列表即倒排表
    .pos index中term出现的位置信息
    .tim term词典,存储term信息(block)
    .tip term词典的索引,需载入内存(FST)
    .dim 数值类型索引,即BKD树
    .dii .dim的索引
    segment_2c 记录提交点信息
    write.lock 防止多个IndexWriters写同一个文件

    source源文档相关:
    fnm,fdx,fdt 为行存储文件索引和value;
    列式存储相关(sort/agg):
    dvm,dvd为列式存储即docValue;
    倒排索引相关:
    tip,tim,pos,doc为倒排索引及词典索引相关内容。

    kdd,kdi,kdm与BKD数相关:
    BKD Tree,叶子节点存储一组值集合。当 es 做 ranger 查询的时候(适用于数值,日期,字符串类型),内存里的 B-tree 可以帮助快速定位到满足查询条件的叶子结点块在磁盘上的位置,之后对叶子结点块的读取几乎都是顺序的,即索引和数据分离。

    存储文件压缩如下图(from tx 毕杰山)
    tx大佬针对底层不同种类文件设计了一套压缩算法选择方案

    lucene文件压缩算法

    相关文章

      网友评论

          本文标题:es存储文件分析

          本文链接:https://www.haomeiwen.com/subject/jzvtiltx.html