В кусте, как генерировать динамическое имя таблицы в hql? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу сгенерировать динамическое имя таблицы в hql, которое выполняется с использованием beeline.

в db2, я могу реализовать это требование, используя ||.например, используя год для создания имени таблицы 'as400.trxfintrx_' || year(current date), но как я могу реализовать это в hive'hql?

1 Ответ

0 голосов
/ 15 февраля 2019

Если я правильно понимаю, вы хотите, чтобы имя таблицы было параметризовано,

Для этого вы можете использовать переменные улья,

create table dbName.table1_${hivevar:yearMonthDate}
(
c1 int,
c2 int
)
stored as orc
tblproperties('ZLIB');

$ hive -f test_create_table.hql --hivevar yearMonthDate=20190215
OK
Time taken: 1.149 seconds
$ hive
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> use dbname;
OK
Time taken: 0.726 seconds
hive> desc table1_20190215;
OK
c1                      int
c2                      int
Time taken: 0.302 seconds, Fetched: 2 row(s)

вы можете сослаться на https://cwiki.apache.org/confluence/display/Hive/LanguageManual+VariableSubstitution

С терминала Beeline вы не можете определить какую-либо функцию для установки значения параметра, а затем использовать их в своих запросах.

Надеюсь, это поможет

...