gpt4 book ai didi

hadoop - Orc 不比 Hive 中的 csv 快?

转载 作者:可可西里 更新时间:2023-11-01 14:22:43 26 4
gpt4 key购买 nike

我对在生产中使用 Hadoop 还很陌生。我使用 scoop 将一个大表从数据库导入到 Hive 中。 Scoop 创建了一个逗号分隔的文本文件,并在 Hive 中创建了相应的表。

然后我执行了一个create table new_table_orc stored as orc as select * from old_table_csv

由于文本文件与 ORC(二进制数据、脂肪表的列式数据存储、压缩等)相比效率低下,我预计会有一个巨大的数量级改进,但查询执行时间好像一点都没变!

我在两个版本(文本、ORC 甚至 Parquet )上使用了相同的简单查询,并且在连接中使用其中几个表时做了同样的细化。

附加信息:我正在测试的主表有大约 4.3 亿行和大约 50 列。

我正在运行几个查询:从 my_table 中选择总和(col1); <= 40 秒

从 my_table_orc 中选择总和(col1); <= 31 秒

从 my_table 中选择不同的 col2,其中 col3 = someval; <= 53 秒

从 my_table_orc 中选择不同的 col2,其中 col3 = someval; <= 35 秒

我还启用了矢量化,正如@sahil desai 所建议的那样,但似乎确实产生了巨大的不同(它确实减少了几秒钟的时间)。

这是怎么回事,为什么我没有看到数量级的加速?您还需要什么详细信息?

最佳答案

根据我的经验,ORC 更快。为每个 HIVE 表使用 ORC 文件应该非常有利于获得对 HIVE 查询的快速响应时间。我认为您必须启用矢量化,矢量化查询执行可以提高扫描、聚合、过滤和连接等操作的性能,方法是一次批量执行 1024 行,而不是每次执行一行。

set hive.vectorized.execution.enabled = true;    
set hive.vectorized.execution.reduce.enabled = true;

有很多方法可以提高 Hive 性能,例如 Tez 执行、基于成本的查询优化 (CBO) 等。

关于hadoop - Orc 不比 Hive 中的 csv 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com