Facebook数据仓库揭秘说到,
RCFile(Record Columnar File)存储结构遵循的是“先水平划分,再垂直划分”的设计理念,它结合了行存储和列存储的优点:首先,RCFile保证同一行的数据位于同一节点,因此元组重构的开销很低;其次,像列存储一样,RCFile能够利用列维度的数据压缩,并且能跳过不必要的列读取
RCfile是HIVE的列式存储,压缩通常会非常高效,公司这边,可以达到12倍的压缩比,字段特别多的非常适用。
hive的代码提供了源码
cd $HIVE_HOME
$ find . -name "RCFile*"
./src/cli/src/java/org/apache/hadoop/hive/cli/RCFileCat.java
hive提供了一个rcfilecat工具来展示RCFile文件内容:
hive --service rcfilecat /xxxxxxxxxxxxxxxxxxxxxxxxxxx/000000_0