(译)优化ORC和Parquet文件,提升大SQL读取性能
本文编译自IBM开发者社区,主要介绍了 HDFS 中小的 ORC 和 Parquet 文件的问题,以及这些小文件如何影响 Big SQL 的读取性能,并探索了为了提高读取性能,使用现有工具将小文件压缩为大文件的可能解决方案。 简介 众所周知,多个 Hadoop 小文件(定义为明显小于 HDFS 块大小的文件,默认情况下为 64MB )是 Hadoop 分布式文件系统( HDFS )中的一个大问题。 HDFS 旨在存储大量数据,理想情况下以大文件的形式存储。在 HDFS 中存储大量小文件,而不是存储较少的大文件,这在管理文件的目录树时给 NameNode 增加了额外的开销。此外, MapReduce 和其他读取 HDFS 文件的作业也会受到负面影响,因为它将涉及与 HDFS 的更多通信以获取文件信息。 小文件读取性能问题对于存储格式更为严重,在存储格式中,元数据被嵌入文件中以描述所存储的复杂内容。 IBM Db2 Big SQL 使用的两种常见文件存储格式是 ORC 和 Parquet ,这些文件格式以列格式存储数据,以优化读取和过滤列的子集。 ORC 和 Parquet 格式将有关列和行组的信息编码到文件本身中,因此,在对文件中的数据进行解压缩、反序列化和读取之前,需要处理元数据。由于这种开销,处理以逻辑方式捆绑在一起的这些格式的多个小型文件(例如,属于 Big SQL