0

我在 Hive 中创建了一个分区视图,如下所示

create view if not exists view_name
PARTITIONED ON(date)
as
select col1,col2,date
from table1
union all
select col1,col2,date
from table2

基础表在“日期”列上进行分区。当我使用时,DESCRIBE FORMATTED VIEW_NAME我可以看到分区信息为空,如屏幕截图所示。 在此处输入图像描述

如果我使用 SHOW CREATE TABLE View_Name,我会得到没有分区的视图定义,如下所示

create view if not exists view_name
as
select col1,col2,date
from table1
union all
select col1,col2,date
from table2

请让我知道我错过了什么

4

1 回答 1

1

来自蜂巢文档

尽管当前视图分区和基础表分区之间没有连接,但 Hive 确实提供了依赖信息作为​​ ALTER VIEW ADD PARTITION 的钩子调用的一部分。它通过编译表单的内部查询来做到这一点

换句话说,关于基础表的视图中没有可用的分区信息。一种解决方法(取决于您的视图查询的复杂程度)如下添加分区

ALTER VIEW view_name ADD [IF NOT EXISTS] partition_spec partition_spec

至少从用户的角度来看,它将提供有关基础表中可用分区的信息。

于 2018-05-11T13:33:47.930 回答