ORC文件结构
2023-10-09 09:20:25 0 举报
AI智能生成
ORC文件结构解析
作者其他创作
大纲/内容
footerLength :footer数据长度
compression:数据压缩类型
metadataLength:元数据长度
stripeStatisticsLength :加密后的stripe statistics长度
postScript
headerLength 头部长度
contentLength:文件内容长度
对应的java类:StripeInformationImpl
offset:stripe在该文件中偏移量
Stripe index
indexLength:索引长度
Stripe data
dataLength:数据长度
Stripe Footer
footerLength:数据长度
numberOfRows: 数据量
encryptStripeId:加密信息的位置???
encryptedLocalKeys:加密数据的Key,每个列都有一个
组成
stripes:存储文件stripe元信息
Type types :记录文件schema信息
UserMetadataItem metadata :用户信息
numberOfRows:文件数据行数
ColumnStatistics statistics :文件中每列的统计
rowIndexStride:index Stream 中group的行数
writer:写入者是谁,C++、JAVA或Presto 、trino
bytes encryptedKey
Stream stripeStatistics
bytes fileStatistics
EncryptionVariant variants 集合
DataMask
keyName_
algorithm_
bitField0_
EncryptionKey key
KeyProviderKind :KeyProvider的类型,文件中不存储Keyprovider信息
KeyProvider keyProvider
name
version
algorithm
List<ReaderEncryptionVariant> roots
ReaderEncryptionKey[] keys
String[] parameters
List<TypeDescription> columns
MaskDescriptionImpl[] masks
KeyProvider provider
ReaderEncryptionKey key
byte[] encryptedKey
Key decryptedKey
LocalKey[] localKeys
LocalKey footerKey
List<OrcProto.Stream> stripeStats
ReaderEncryptionVariant[] variants
ReaderEncryptionVariant[] columnVariants
映射的JAVA类:ReaderEncryption
Encryption encryption :文件的加密信息
footer
metadata:Stripe级别粒度的列统计信息
Tail
Index DATA
Row DATA
Kind Stream的类型
column 列ID
length:Stream的数据长度
Stream:各列的数据内容以Stream的形式按列存储
每个index Stream包含多个RowGoup
每个原始列的Index Stream都有RowIndexEntry与之对应
一个row group会给出Data Stream的位置以及该row group的统计信息
默认情况下index Stream不需要被读取,使用谓词下推或orc reader寻找特定行时才会读这部分
Row Group Index
index Stream 元数据
Bloom Filter Stream与Row Group Index Stream是在每个Stripe头上交错存储的
每个 Filter Stream 包含多个row group
Bloom Filter Index
row data Stream 元数据
streams列表
streams:本Stripe包含的所有Stream,一个集合
ColumnEncoding columns:列编码信息,一个集合
列的所有 streams
encoding
StripeEncryptionVariant encryption :一个集合
List<StreamInformation> indexStreams
List<StreamInformation> dataStreams
streams
OrcProto.ColumnEncoding[] encodings
ReaderEncryption encryption 这个对象与ReaderImpl的encriyption是同一个对象
对应的java类:StripePlanner
Footer
stripes
数据,由一个个Stream组成
body
魔数
head
rowIndexStride 具体什么含义
stripeStatisticsLength用来做什么的
encryptStripeId:加密信息的位置??? 是用来做什么的
问题
自由主题
orc文件结构
0 条评论
回复 删除
下一页