请注意,我正在MapR上使用Hive-0.13。
----------------------------------------------------------
| | Table A | Table B | Table C | |
----------------------------------------------------------
| Format | Text | Parquet | Parquet | |
| Size[Gb] | 2.5 | 1.9 | 1.9 | |
| Comrepssion | N/A | N/A | Snappy | |
| CPU [sec] | 123.33 | 204.92 | N/A | Operation1 |
| Time [sec] | 59.057 | 50.33 | N/A | Operation1 |
| CPU [sec] | 51.18 | 117.08 | N/A | Operation2 |
| Time [sec] | 25.296 | 27.448 | N/A | Operation2 |
| CPU [sec] | 57.55 | 113.97 | N/A | Operation3 |
| Time [sec] | 20.254 | 27.678 | N/A | Operation3 |
| CPU [sec] | 57.55 | 113.97 | N/A | Operation4 |
| Time [sec] | 20.254 | 27.678 | N/A | Operation4 |
| CPU [sec] | 127.85 | 255.2 | N/A | Operation5 |
| Time [sec] | 29.68 | 41.025 | N/A | Operation5 |
- 操作1:行计数操作
- 操作2:单行选择
- 操作3:使用Where子句的多行选择[已提取1000行]
- 操作4:使用Where子句的[仅有4个列]多行选择[已提取1000行]
- 操作5:聚合操作[在给定列上使用Sum函数]
您可以看到,在我应用于这两个表的几乎所有操作中,Parquet在执行查询所需的时间方面落后,除了行计数操作。
我还使用表C执行了上述操作,但结果与TextFile格式几乎相似,而后者又是两者中更快的。
请问有人能告诉我我做错了什么吗?
谢谢!
编辑
我将ORC添加到存储格式列表中,并再次运行测试。以下是详细信息。
行计数操作
Text格式累积CPU - 123.33秒
Parquet格式累积CPU - 204.92秒
ORC格式累积CPU - 119.99秒
带SNAPPY的ORC格式累积CPU - 107.05秒
列求和操作
Text格式累积CPU - 127.85秒
Parquet格式累积CPU - 255.2秒
ORC格式累积CPU - 120.48秒
带SNAPPY的ORC格式累积CPU - 98.27秒
列平均值操作
Text格式累积CPU - 128.79秒
Parquet格式累积CPU - 211.73秒
ORC格式累积CPU - 165.5秒
带SNAPPY的ORC格式累积CPU - 135.45秒
使用Where子句从给定范围选择4个列
Text格式累积CPU - 72.48秒
Parquet格式累积CPU - 136.4秒
ORC格式累积CPU - 96.63秒
带SNAPPY的ORC格式累积CPU - 82.05秒
这是否意味着ORC比Parquet更快?还是有什么我可以做来提高查询响应时间和压缩比率?
谢谢!