美文网首页
CarbonData 文件结构笔记

CarbonData 文件结构笔记

作者: 天之見證 | 来源:发表于2020-07-22 13:33 被阅读0次

1. 表存储结构

LOAD DATA INPATH '/local-path/sample.csv' INTO TABLE test_table;
insert into table test_table select '1', 'name1', 'city1', 1;

对表做了初始化,并且插入了一条数据, 形成如下的文件结构:

default/test_table/
├── Fact
│   └── Part0
│       ├── Segment_0
│       │   ├── 0_1595387884655.carbonindexmerge
│       │   └── part-0-0_batchno0-0-0-1595387882386.snappy.carbondata
│       └── Segment_1
│           ├── 1_1595388024054.carbonindexmerge
│           └── part-0-0_batchno0-0-1-1595388023733.snappy.carbondata
├── LockFiles
│   ├── Segment_0.lock
│   ├── Segment_1.lock
│   ├── compaction.lock
│   ├── meta.lock
│   └── tablestatus.lock
└── Metadata
    ├── schema
    ├── segments
    │   ├── 0_1595387882386.segment
    │   └── 1_1595388023733.segment
    └── tablestatus

2. 数据文件结构

carbon_data_file_structure_new.png
├── Blocket 1
│   ├── Column 1 Page group [ColumnChunk]
│   │   ├── Page 1
│   │   ├── Page 2
│   │   ├── Page Group Meta
│   │   └── Page N
│   └── Column N Page group
├── Blocket N
├── File Footer
└── File Header

2.1 Blocklet 3个版本的比较

版本 组成元素 特点 示意图
V1 各种类型的Page 列数据分散在各个Page里面,并且,根据Page的类型做了分组 blocklet_v1.png
V2 ColumnChunk 列数据根据列做了分组,每列维护自己头信息 blocklet_v2.png
V3 ColumnChunk 有多个DataChunk, 多组Page, 但还是按照列做了分区 blocklet_v3.png

3种Page类型:

类型 作用
Data Page 包含列的编码数据
Row ID Page 包含行 ID 的映射信息,当数据页面被存储为倒排索引时使用
RLE Page 当数据页面使用 RLE 编码时使用

3. Footer结构

carbon_footer.png
部分 作用
BlockletInfo3 单个blocklet下的所有ColumnChunk3的长度和offset
SegmentInfo 单个数据文件(多个blocklet)下的列的个数和每列的大小
BlockletIndex 包含BlockletMinMaxIndex和BlockletBTreeIndex
  1. BlockletBTreeIndex: 记录单个blocklet下的startKey和endKey
  2. BlockletMinMaxIndex: 记录单个blocklet下每列的最大值和最小值

4. 索引结构

当每个task在写数据的时候, 一般会有多个的数据文件和1个索引文件, 这个索引文件记录的是这些数据文件种的blocklet的信息

字段 含义
num_rows 某个数据文件的条数
file_name 数据文件的名称(因为会有多个)
offset footer offset
block_index BlockletIndex

ref:

  1. http://carbondata.apache.org/file-structure-of-carbondata.html
  2. http://carbondata.iteblog.com/file-structure-of-carbondata.html

相关文章

  • CarbonData 文件结构笔记

    1. 表存储结构 对表做了初始化,并且插入了一条数据, 形成如下的文件结构: 2. 数据文件结构 2.1 Bloc...

  • Carbondata 存储结构

    数据文件结构如下: 索引文件结构相对比效简单,没有直接画出, 可以直接查看原码(AbstractFactDataW...

  • CarbonData 编译打包

    背景 CarbonData是什么?官网说明:Apache CarbonData is an indexed col...

  • carbondata测试报告

    carbondata测试报告 此文档是测试carbondata(1.4)与parquet(1.10)在spark ...

  • (HDP2.6.2)Carbondata1.3.1+Spark2

    一、Carbondata下载编译 1、下载Carbondata代码包 https://github.com/apa...

  • 学习thinkPHP的笔记

    学习thinkPHP的笔记 thinkPHP的文件结构的介绍 thinkPHP核心文件的介绍├─ThinkPHP....

  • vue

    笔记 脚手架文件结构 ├── node_modules ├── public │ ├── favicon.ico...

  • 让CarbonData使用更简单

    CarbonData 是什么 引用官方的说法: Apache CarbonData是一种新的高性能数据存储格式,针...

  • Hive读取CarbonData文件问题调试

    1. 参考文档 https://github.com/apache/carbondata/blob/master/...

  • 类文件结构-笔记

    前言 介绍本章之前总结了下一些和.class文件相关的其他知识点。 class文件相关介绍 我们都知道,我们在本地...

网友评论

      本文标题:CarbonData 文件结构笔记

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