【问题标题】:dynamically generate query based on current date根据当前日期动态生成查询
【发布时间】:2018-10-16 00:36:45
【问题描述】:

我有一个外部表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 中完成。

【问题讨论】:

    标签: hive hiveql


    【解决方案1】:

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

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

    函数 current_date 现在在 Hive 1.2.0 及更高版本中可用。

    【讨论】:

    • 谢谢 - 但我将如何添加 location 子句?这是一个外部分区表。
    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 2017-03-23
    • 2021-12-11
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多