Hiveのユーザ変数はhiveconfとhivevar、どちらを使うのが良い?
- Sun
- 22:32
- hadoop関連
Hiveで変数を使う時にhiveconfかhivevarかどちらを使うか迷う場合があるのですが、なんとなくユーザ変数の場合はhiveconfを使わない方がいいようです。
LanguageManual VariableSubstitution
公式ドキュメントを読むとユーザ変数は、hivevar、system、envを使うとなってます。
hivevarを使うメリットとしては、namespaceが不要で${var}のみで変数展開できるところでしょうか。hiveconfの場合は${hiveconf:var}となりコードがやや読み辛くなります。
LanguageManual VariableSubstitution
公式ドキュメントを読むとユーザ変数は、hivevar、system、envを使うとなってます。
hivevarを使うメリットとしては、namespaceが不要で${var}のみで変数展開できるところでしょうか。hiveconfの場合は${hiveconf:var}となりコードがやや読み辛くなります。
hive (testdb)> set hiveconf:var01=aaa; hive (testdb)> set hivevar:var01=bbb; hive (testdb)> select '${var01}'; OK bbb Time taken: 0.769 seconds, Fetched: 1 row(s) hive (testdb)> select '${hiveconf:var01}'; OK aaa Time taken: 0.521 seconds, Fetched: 1 row(s)