选择分区列

pqwbnv8z  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(384)

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

shstlldc

shstlldc1#

选择事务日期作为分区列的缺点:(1)目录太小可能导致hdfs的开销。
使用state的优点:(1)目录的数量是固定的。
这完全取决于查询将如何形成以供执行。如果您的查询包含事务\日期的筛选子句,并且没有分区,那么总体执行将很慢。
而且,创建分区并不能保证更快的执行。对于数据量较小的分区,返回搜索结果的速度会比数据量较大的分区更快。

mlmc2os5

mlmc2os52#

理想的选择是将状态作为分区列,因为分区基于不同的值创建不同的文件夹。因此,文件夹数=状态数,因此存储到namenode的元数据信息将更少。
但是如果考虑事务日期,那么每天都会有一个新文件夹,这会在某个时间点降低namenode的性能。

相关问题