选择分区列

时间:2018-05-18 12:31:47

标签: hive hiveql hive-partitions

我有与交易相关的庞大数据集。我需要从transaction_date(每天增加)或状态(有限数量)中选择分区列。这是理想的选择,为什么?

2 个答案:

答案 0 :(得分:0)

选择transaction_date作为分区列的缺点: (1)可能导致HDFS开销的小目录。

使用州的优势: (1)目录数量将被修复。

这完全取决于如何形成查询以供执行。 如果您的查询包含transaction_date的filter子句且没有分区,那么整体执行将会很慢。

此外,创建分区并不能保证更快的执行速度。 对于数据量较少的分区,与数据量较高的分区相比,搜索结果将更快地返回。

答案 1 :(得分:0)

理想的选择是将状态作为分区列,因为分区根据不同的值创建不同的文件夹。因此,文件夹数=状态数,因此存储到Namenode的元数据信息将更少。

但是如果考虑交易日期,那么每天都会有一个新文件夹,这将在某个时间点降低Namenode的性能。