我有一个场景,我有两个 Hive 表,第二个基本上是第一个的进化模式(在这个例子中它还有 1 列)。
Table_A
{
business_date String
Name String
Age Number
} partitioned by business_date
Table_B {
business_date String
Name String
Age Number
Address String
} partitioned by business_date
为了从架构更改中混淆下游用户,我正在使用以下语法创建一个 Hive 视图:
Create VIEW customer_info AS
select * from Table_B
UNION
select business_date, name, age, null as address from Table_A
我知道上面返回了所有数据,但是从性能的角度来看,如果对具有有效 business_date 值的视图运行查询,是否会考虑分区键?或者在使用视图时我会失去这个好处吗?
编辑:我应该提到 business_date 实际上是所有分区的唯一值。这意味着,Table_A 中提供的数据不应在 Table_B 中提供。将 Table_A 视为数据的“旧版本”。鉴于此,如果目标是从最终消费者那里抽象出模式更改,这是提供数据的最佳方法吗?
编辑#2:由于大量其他问题,无法将此数据存储在一个表中。