各位,
建议在hadoop处理的不同阶段使用什么文件格式。
处理:我一直在hive中使用text-format/json-serde进行处理。对于我执行etl(转换)操作的暂存表来说,这是一种好的格式吗?有没有更好的格式我应该使用?我知道parquet/orc/avro是专门的格式,但它是否适合etl(转换)操作。另外,如果我使用压缩技术,比如snappyforzlib,那会是一种推荐的方法吗(我不想因为压缩而导致额外的cpu使用而降低性能,如果压缩会有更好的性能,请纠正我)
报告:根据我的查询需要
聚合:使用列式存储似乎是一个合乎逻辑的解决方案。使用snappy压缩的Parquet地板是否合适(假设我的hadoop发行版是cloudera)。
如果我的查询模式需要一行中的所有列,那么选择一个列式存储是明智的决定吗?或者我应该选择avro文件格式
归档:对于归档数据,我计划使用avro,因为它可以很好地压缩模式演变。
1条答案
按热度按时间5us2dqdw1#
选择文件格式取决于用例。您正在处理配置单元中的数据,因此下面是建议。
处理:使用orc进行处理,就像使用聚合和其他列级操作一样。它将有助于将性能提高许多倍。
压缩:根据具体情况明智地使用它将有助于通过减少昂贵的io操作时间来提高性能。
如果用例是基于行的操作,那么建议使用avro。
希望这有助于做出决定。