根据当前日期动态生成查询

时间:2018-09-27 18:34:07

标签: hive hiveql

我有一个外部表mytable。我们在Airflow中安排了一个作业,该作业会拾取一个SQL文件并每天执行一次。

每天,我需要向与该天相对应的表中添加一个分区。 所以对于2019-09-27,我需要执行

ALTER TABLE MYTABLE ADD PARTITION(year=2018,month=9,day=27,ts=1538006400) location '/path/to/data/20180927/'

我可以使用SELECT year/month/day(current_date)来获取年/月/日,而使用select unix_timestamp(CURRENT_DATE, 'yyyy-MM-dd')来获取时间戳,但是我该如何编写一个SQL查询来生成如上所述的整个ALTER TABLE... ADD PARTITION查询呢?

编写脚本是一种简单的方法,但我需要单独在SQL中完成。

1 个答案:

答案 0 :(得分:0)

Hive conf具有当前日期current_date的变量,您可以将其用作

ALTER TABLE MYTABLE ADD PARTITION (ts= '${hiveconf:current_date}')

功能current_date现在在Hive 1.2.0和更高版本中可用。