gpt4 book ai didi

sql - 如何在Hive中记录created_at和updated_at时间戳?

转载 作者:行者123 更新时间:2023-12-01 13:39:58 31 4
gpt4 key购买 nike

MySQL can automatically record created_at and updated_at timestamps. Hive 是否提供类似的机制?如果没有,实现此功能的最佳方法是什么?

最佳答案

Hive 不提供这样的机制。您可以通过在选择中使用 UDF 来实现此目的:from_unixtime(unix_timestamp()) as created_at。请注意,这将在每个映射器或缩减器中执行,并且可能返回不同的值。如果您需要所有数据集的相同值(对于 1.2.0 之前的 Hive 版本),请将变量传递给脚本并在内部使用它作为:'${hiveconf:created_at}' as created_at

更新:current_timestamp 返回查询评估开始时的当前时间戳(从 Hive 1.2.0 开始)。同一个查询中对 current_timestamp 的所有调用都返回相同的值。 unix_timestamp() 获取以秒为单位的当前 Unix 时间戳。此函数是不确定的,并且会阻止查询的适当优化 - 自 2.0 以来已弃用,取而代之的是 CURRENT_TIMESTAMP 常量。所以,它不是一个函数,它是一个常量!请参阅此文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

对于配置单元查询,当您重写表或分区或插入时,CURRENT_TIMESTAMP 更可取,因为所有文件都将被重写,而不是记录,因此 created_at 时间戳应该相同。

关于sql - 如何在Hive中记录created_at和updated_at时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128740/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com