Hive — Как объединить много таблиц, имеющих одно и то же приложение?

#hive #hortonworks-data-platform

#улей #hortonworks-data-platform

Вопрос:

Я хочу объединить много таблиц, выбранных в соответствии с годом. Для текущего года ( 2019 ) у меня есть tab_h_2016 , tab_h_2017 amp; tab_h_2018 . Когда мы будем в 2020 году, мы добавим tab_h_2019 . Как я могу объединить (с помощью объединения) все таблицы, имеющие одно и то же приложение, таким образом, чтобы при добавлении новой таблицы в базу данных таблица автоматически объединялась?

Комментарии:

1. Все ли таблицы имеют одинаковую схему?

Ответ №1:

Вычислите имена таблиц в оболочке и параметрируйте свой скрипт.

Оболочка:

 table1=$(date  "tab_h_%Y" --date " -3 year");
table2=$(date  "tab_h_%Y" --date " -2 year");
table3=$(date  "tab_h_%Y" --date " -1 year");

hive --hiveconf table1="$table1"  --hiveconf table2="$table2"  --hiveconf table3="$table3" -f your_script.hql
 

Скрипт your_script.hql :

 select * from ${hiveconf:table1} inner join ${hiveconf:table2} ...