选择时如何从配置单元视图中丢弃分区列?

Posted

技术标签:

【中文标题】选择时如何从配置单元视图中丢弃分区列?【英文标题】:How to discard partition column from hive view while selecting? 【发布时间】:2017-07-16 19:34:17 【问题描述】:

如何在选择时从配置单元视图中丢弃/隐藏分区列,同时过滤器可以使用基表分区列上创建的视图中的where子句应用,基表是分区表?

例如:我的表 ddl 是 create table test(id int) 按 (year) 分区的;

view DDL: create view myview select id,year from test;

现在我不想在从视图中选择数据的同时查看年份的值,我应该能够使用 myview 查询基表的特定分区。

【问题讨论】:

【参考方案1】:

现在在 HIVE 中有一个创建分区视图的概念。你应该尝试探索。

例如,

CREATE VIEW myview PARTITIONED ON (year) AS SELECT id, year FROM test;

请参阅以下链接以了解从基表写入分区列时要遵守的规则。因此,它似乎仍然受到限制,只能在满足您的需求时使用。

https://cwiki.apache.org/confluence/display/Hive/PartitionedViews

【讨论】:

以上是关于选择时如何从配置单元视图中丢弃分区列?的主要内容,如果未能解决你的问题,请参考以下文章

从具有多个分区列的配置单元表中获取最新数据

无论如何要更改外部配置单元表的非分区列的数据类型?

如何插入配置单元表,按从临时表读取的日期进行分区? [复制]

将新分区添加到已分区的配置单元表

无法从 spark sql 插入配置单元分区表

如何从配置单元表插入分区表(作为镶木地板)?