Hive 选择分区列

Hive 选择分区列,hive,hiveql,hive-partitions,Hive,Hiveql,Hive Partitions,我有大量与交易相关的数据集。我需要从事务日期(每天增加)或状态(限制数量)中选择分区列。哪个是理想的选择?为什么?选择事务日期作为分区列的缺点: (1) 目录太小可能会导致HDFS中的开销 使用状态的优点: (1) 目录的数量将是固定的 这完全取决于查询的执行方式。 若您的查询包含事务\ U日期的筛选子句,并且并没有分区,那个么总体执行将很慢 另外,创建分区并不能保证更快的执行。 与数据量大的分区相比,数据量小的分区返回搜索结果的速度更快。理想的选择是将状态作为分区列,因为分区基于不同的值创建不

我有大量与交易相关的数据集。我需要从事务日期(每天增加)或状态(限制数量)中选择分区列。哪个是理想的选择?为什么?

选择事务日期作为分区列的缺点: (1) 目录太小可能会导致HDFS中的开销

使用状态的优点: (1) 目录的数量将是固定的

这完全取决于查询的执行方式。 若您的查询包含事务\ U日期的筛选子句,并且并没有分区,那个么总体执行将很慢

另外,创建分区并不能保证更快的执行。
与数据量大的分区相比,数据量小的分区返回搜索结果的速度更快。

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

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