1、orc列式存储概念
a)列式存储:orc并不是纯粹的列式存储,也是先基于行对数据表进行分组(行组),然后对行组进行列式存储。
b)查询数据的时候不需要扫描全部数据(磁盘IO),只需查询指定列即可。
c)orc对每一列提供了常规统计信息(min 、 max 、 sum等),加速查询。例如过滤条件f>10,如果当前分片的max小于10,则直接过滤掉这个分片。
d)每一列的数据都是同构的,因此压缩效率更高。
e)读写orc文件需要压缩、解压,需要消耗额外的cpu资源。
以上是orc文件格式的优劣点。
2、orc文件格式
a)orc文件分层:orc -> stripe -> row group
b)orc索引分级:file level -> stripe level -> row group level
orc reader 根据 search arguments 判断是否可以跳过某些数据。
3、orc文件读写
orc append
参考: