我有一个外部表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中完成。
答案 0 :(得分:0)
Hive conf具有当前日期current_date
的变量,您可以将其用作
ALTER TABLE MYTABLE ADD PARTITION (ts= '${hiveconf:current_date}')
功能current_date
现在在Hive 1.2.0和更高版本中可用。