如何在配置单元中记录创建的时间戳和更新的时间戳?

lo8azlld  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(433)

mysql可以自动记录创建的时间戳和更新的时间戳。Hive提供类似的机制吗?如果没有,实现此功能的最佳方法是什么?

khbbv19g

khbbv19g1#

Hive不提供这种机制。您可以通过在选择中使用自定义项来实现这一点: from_unixtime(unix_timestamp()) as created_at . 注意:这将在每个Map器或缩减器中执行,并可能返回不同的值。如果所有数据集都需要相同的值(对于1.2.0之前的配置单元版本),请将该变量传递给脚本,并在内部使用它作为: '${hiveconf:created_at}' as created_at 更新: current_timestamp 返回查询求值开始时的当前时间戳(从Hive1.2.0开始)。同一查询中当前时间戳的所有调用都返回相同的值。 unix_timestamp() 以秒为单位获取当前unix时间戳。此函数是不确定的,并阻止查询的适当优化-自2.0以来,为了支持当前的\u timestamp常量,此函数一直被弃用。所以,它不是一个函数,而是一个常数!参见以下文档:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf
对于配置单元查询,重写表或分区或插入时,最好使用当前的\u时间戳,因为所有文件都在重写,而不是记录,因此 created_at 时间戳应该相同。

相关问题