大数据处理文件格式之ORC和Parquet选择
1. 背景
在大数据处理中,因为无法按照传统方式将海量数据存放到mysql中。所以各个框架都想办法将这些数据很好存放起来,既能保证数据安全,有可以确保数据查询地性能。按照上述思路,出现了很多技术框架。
如HDFS,将文件以文件块形式切分,并且存放到集群中。有专门地节点负责这些文件地元数据管理(namenode, secondary namenode地checkpoint 机制)。这样可以保证数据安全性,也可以保证一定地文件访问便捷性。在HDFS之上,出现了HBase,这是列式文件存储,很好实现了稀疏数据存储功能,降低数据存储压力。并且可以对存储地文件建立索引,提升查询性能。本质就是一个key value数据存储框架。之后出现的hive,将结构化文件结合元数据,可以进行数据查询,分析处理。虽然本质上数据还是存放在hdfs上。click house等等
上述地框架,最终都会回到一个地点,如何安全有效保存数据到磁盘,毕竟数据放在内存中还是害怕断电地。这时候,就需要用到文件格式了,不同文件格式,压缩比,查询效率,通用性(框架支持是否广泛),是否免费等就非常重要了。
2. 原因
目前,ORC,parquet,text主要这三种常见地文件格式,orc在hive下,压缩比,查询效率等都比parquet高,但是parquet的框架支持更广泛。
parquet本身带索引,列式存储,可以压缩,免费
text格式,则是最基础格式,压缩性不好,查询也需要逐行读取,但有一个好处,可以直接阅读。所以开发时测试经常使用。
综上,大数据开发中,一般尽量使用parquet文件格式
类比,就像电脑硬件中,以前键盘鼠标的接口各种各样,后面出现了统一接口PS/2接口,但后续出现了更加通用的USB接口,由于USB通用性更强,支持更多设备不局限于键盘鼠标,所以最后快速推广开来。
就算现在出现了USB3,typeC,雷电3,雷电4等接口,但这些接口和协议最后肯定是需要兼容USB协议的,这就是通用性好的优势。 这也是现在很多公司在主动积极向往外推广自己的标准和平台,就是想增加应用广泛度,最后依赖这种技术应用范围形成自己的话语权。 安卓开源,mysql开源,linux开源等等,都是一样的目的