Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive Impala如何支持分区?_Hive_Impala - Fatal编程技术网

Hive Impala如何支持分区?

Hive Impala如何支持分区?,hive,impala,Hive,Impala,Impala如何支持分区的概念?如果它支持分区,Hive分区和Impala分区之间的区别是什么?默认情况下,表的所有数据文件都位于一个目录中 分区是一种在加载过程中根据一列或多列的值对数据进行物理分割的技术,以加速测试这些列的查询 例如,对于按年份列划分的school_records表,每个不同的年份值都有一个单独的数据目录,该年份的所有数据都存储在该目录中的数据文件中。包含WHERE条件(例如YEAR=1966、YEAR IN 19891999或YEAR IN 1984和1989)的查询只能检

Impala如何支持分区的概念?如果它支持分区,Hive分区和Impala分区之间的区别是什么?

默认情况下,表的所有数据文件都位于一个目录中

分区是一种在加载过程中根据一列或多列的值对数据进行物理分割的技术,以加速测试这些列的查询

例如,对于按年份列划分的school_records表,每个不同的年份值都有一个单独的数据目录,该年份的所有数据都存储在该目录中的数据文件中。包含WHERE条件(例如YEAR=1966、YEAR IN 19891999或YEAR IN 1984和1989)的查询只能检查适当目录中的数据文件,从而大大减少了要读取和测试的数据量

静态和动态分区

在SQL语句中指定所有分区列称为静态分区,因为该语句影响单个可预测分区。例如,使用静态分区时,ALTER TABLE语句只影响一个分区,或者使用INSERT语句将所有值插入同一分区:

插入t1分区X=10,y='a'从一些其他表格中选择c1

当您在INSERT语句中指定一些分区键列,但忽略了这些值时,Impala将确定插入哪个分区。这种技术称为动态分区:

插入t1分区X,y='b'从一些其他表格中选择c1、c2

根据变量年、月、日创建新分区(如有必要);插入单个值

在天气分区中插入年、月、日,选择“多云”,2014,4,21

如果需要,为指定的年和月创建新分区,但日期可变;插入单个值

在天气分区中插入年份=2014,月份=04,日期选择“晴天”,22

在PARTITION子句中指定的键列越多,在SELECT列表中需要的列就越少。选择列表中的尾随列按顺序替换没有指定值的分区键列

进一步阅读,请参阅

希望有帮助