Değişken ikamesi için özel hiveconf'u kullanmanız gerekir . Örneğin
hive> set CURRENT_DATE='2012-09-16';
hive> select * from foo where day >= '${hiveconf:CURRENT_DATE}'
benzer şekilde, komut satırını da iletebilirsiniz:
% hive -hiveconf CURRENT_DATE='2012-09-16' -f test.hql
Orada Not olduğunu env ve sistem başvurabileceğiniz böylece değişkenler yanı ${env:USER}
örneğin.
Kullanılabilir tüm değişkenleri görmek için komut satırından şunu çalıştırın:
% hive -e 'set;'
veya kovan isteminden çalıştırın
hive> set;
Güncelleme: Hivevar değişkenlerini de
kullanmaya başladım , onları hql parçacıkları içine koydum , source
komutu kullanarak kovan CLI'den ekleyebilirim (veya komut satırından -i seçeneği olarak geçirebilirim). Buradaki avantaj, değişkenin daha sonra hivevar öneki ile ya da olmadan kullanılabilmesi ve küresel ve yerel kullanıma benzer bir şeye izin vermesidir.
Öyleyse, bir tablename değişkeni ayarlayan bazı setup.hql'ye sahip olduğunuzu varsayın :
set hivevar:tablename=mytable;
sonra, kovana getirebilirim:
hive> source /path/to/setup.hql;
ve sorguda kullan:
hive> select * from ${tablename}
veya
hive> select * from ${hivevar:tablename}
Ayrıca, $ {tablename} kullanımını etkileyecek, ancak $ {hivevar: tablename} kullanılmayan bir "yerel" tablo adı da ayarlayabilirdim
hive> set tablename=newtable;
hive> select * from ${tablename} -- uses 'newtable'
vs
hive> select * from ${hivevar:tablename} -- still uses the original 'mytable'
Muhtemelen CLI'den çok fazla bir şey ifade etmiyor, ancak kaynağı kullanan bir dosyada hql olabilir , ancak komut dosyasının geri kalanında kullanmak için bazı değişkenleri "yerel olarak" ayarlayın.