trevni总结。设计,优点,代码实现。

本文介绍了列存储格式Trevni,包括其设计目标、设计细节和数据类型支持。Trevni旨在减少磁盘访问次数,支持随机访问,减少文件数量并保证数据完整性,通过优化row group的大小和列存储方式提高查询性能。
摘要由CSDN通过智能技术生成

学习过程中碰到了trevni,trevni的资料不多,学习起来比较吃力。我总结了自己学习的一些知识,肯定不完善,先写下来,以后再补充。

普通的数据集一般都设计成很多行和很多列,每条记录就是一行,每个字段作为一列。写入记录时,就是把一行又一行写入文件,就像hadoop的sequence file。在一些情况下,列存储的性能比行存储会高很多。trevni就是一种列存储格式。数据集被分成多个row groups,每个row group包含很多行。具体的跟块大小有关。每个row group以列格式组织,所有的row groups组成整个数据集。

treni设计目标:

1.尽量增大row group的size。访问磁盘很消耗时间,所以减少访问磁盘的次数是很好的。

2.允许随即访问任意一个row group。某些查询会先查询一列,找到满足条件的列,再查询其他列。

3.尽量减少数据集分成的file数目。每个数据集会分成很多row groups。每个row group就是一个file。hadoop的master节点会管理所有file的信息,因此file的数目越少越好。

4.支持多个row groups之间的列合作。row group是在操作数据集的元单位。

5.保证数据完整。

6.保持高扩展性。

设计:

1.每个row group是一个单独的文件。文件中的列的所有值都是连续写入的。这最大化了row group的size,当查询少量列时,能优化性能。

2.一个file占单独一个hdfs的block。

3.文件的中每列被写成连续的64KB的压缩块。

4.元数据信息会被加到文件,列和block层。

5.每个bolck会加入checkSum。以保证数据完整。

trevni支持的数据类型:

  • null, requires zero bytes. Sometimes used in array columns.
  • boolean, one bit, packed into bytes, little-endian;
  • int<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值