У меня есть сценарий, в котором у меня есть две таблицы 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 является уникальным значением для всех разделов.Это означает, что данные, представленные в Таблице A, не должны предоставляться в Таблице B.Представьте, что Table_A является «более старой версией» данных. Учитывая это, является ли это лучшим подходом к обслуживанию данных, если цель состоит в том, чтобы абстрагировать изменения схемы от конечных потребителей?
Правка № 2: Хранение этих данных в одной таблице невозможно из-за множества других проблем.