【发布时间】:2017-10-21 10:41:57
【问题描述】:
同时对 Hive 表进行分区和分桶有什么好处? 我有一个“订单”表,其中包含 1M 条记录,但这些记录来自 6 个特定城市。 现在,如果我只根据城市存储我的表 Orders,我会在仓库目录(在 Hive 中)中获得 6 个不同的文件夹,每个文件夹对应于一个特定的城市及其数据。
当我分区然后存储我的表 Orders 时,我仍然可以在配置单元下的仓库目录中看到相同的 6 个文件夹。我尝试使用 16 个存储桶,但数据文件夹仍然按城市划分。 下面是代码:
create table Orders ( id int, name string, address string)
partitioned by (city string)
clustered by (id) into 16 buckets
row format delimited fields terminated by ','
stored as TEXTFILE
有人可以概述一下为什么 Hive 会这样。 此外,我还运行了一些性能指标,例如计数和分组。我没有发现分区分区表与仅分区表或仅分区表相比有任何显着改进。
谢谢。
我在 12 核、36 Gb RAM 和 8 个集群上运行 Hadoop。
【问题讨论】: