我想知道hive分区是如何工作的我知道这个概念,但我试图了解它的工作方式和存储方式。 假设我有一个表,并且我在2013年创建了它的动态,摄取数据的分区,因此hive如何创建分区并将精确数据存储在精确分区中。
答案 0 :(得分:0)
Hive将表组织到分区中。这是一种基于分区列的值(例如date。)将表划分为相关部分的方法。
Partitions
- 除了作为存储单元 - 还允许用户有效地识别满足特定条件的行。
使用分区,可以轻松查询部分数据。
表或分区被细分为桶,以便为可用于更有效查询的数据提供额外的结构。 Bucketing基于表的某些列的哈希函数的值来工作。
假设您需要检索2012年加入的所有员工的详细信息。查询将在整个表中搜索所需信息。但是,如果使用年份对员工数据进行分区并将其存储在单独的文件中,则会缩短查询处理时间。
答案 1 :(得分:0)
如果表未分区,则所有数据都存储在一个没有订单的目录中。如果表被分区(例如,按年),则数据被单独存储在不同的目录中。每个目录对应一年。 对于非分区表,当您想要获取year = 2010的数据时,hive必须扫描整个表以找出2010年的记录。如果表已分区,则hive只会转到year = 2010目录。更快,更有效率