[hive]hive中分区表详解

一、数据分区的意义

        例如HR对employees表进行查询的时候,经常会加上where条件指示state和country。使用分区表不仅有巨大的性能优势而且可以将表从物理上转移到和使用最频繁的用户更近的地方。

CREATE TABLE employees(
    name            STRING,
    salary          FLOAT,
    subordianates   ARRAY<STRING>,
    deductions      MAP<STRING,FLOAT>,
    address         STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>
)
PARTITIONED BY (country STRING, state STRING);
    

       Hive会创建好可以反映分区结构的子目录。事实上,除非需要优化查询性能,否则使用这些表的用户不需要关心这些“字段”是否是分区字段。

二、查看表分区

SHOW PARTITIONS tb_name;
--限制分区下的查看分区
SHOW PARTITIONS tb_name PARTITION(partition_varname='value');
--可以通过EXTENDED关键字查看分区键
DESCRIBE EXTENDED employees;

猜你喜欢

转载自blog.csdn.net/TOMOCAT/article/details/81205722