雅典娜(Hive/普雷斯托)Parquet与兽人在计数查询

sczxawaw  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(317)

我正在测试雅典娜的一个大数据集(1.5tb,5.5b记录),包括Parquet和兽人两种格式。我的第一个测试是一个简单的,count查询-

SELECT COUNT(*) FROM events_orc
SELECT COUNT(*) FROM events_parquet

parquet文件需要一半时间才能作为orc文件运行此查询。但我注意到的一点是,在对Parquet文件进行计数时,它会返回 0kb 当字节被扫描时,orc返回到哪里 78gb . 这对于Parquet地板是有意义的,因为计数在meta中,不需要扫描字节。兽人也有一个带有计数的meta,但是它似乎没有使用这个meta来确定这些文件的计数。
为什么雅典娜不使用orc文件中的元数据来确定计数,而这显然与Parquet地板文件有关?

zpjtge22

zpjtge221#

答案是,正如你所说,雅典娜阅读Parquet元数据,而不是兽人。除此之外,雅典娜使用的普雷斯托和/或兽人塞德版本中没有其他原因。
我也注意到雅典娜在使用兽人时读取了太多的数据,它没有跳过它应该跳过的列,等等。我认为雅典娜兽人serde只是旧的,没有你所期望的所有优化。雅典娜毕竟是基于一个非常古老的普雷斯托版本。

相关问题