如何在Hive中找到表的上次修改时间戳?

时间:2017-01-04 16:29:31

标签: hive timestamp last-modified

我试图在Hive中获取表的最后修改时间戳。

6 个答案:

答案 0 :(得分:2)

从Hive表中获取transient_lastDdlTime。

SHOW CREATE TABLE table_name;

然后复制粘贴transient_lastDdlTime到下面的查询中,以获取该值作为时间戳。

SELECT CAST(from_unixtime(your_transient_lastDdlTime_value) AS timestamp);

答案 1 :(得分:0)

您可以执行以下命令,并将transient_lastDdlTime的输出从时间戳转换为日期。
它将为表格提供最后修改的时间戳。

show create table TABLE_NAME;

答案 2 :(得分:0)

借助以上答案,我为即将到来的开发人员创建了一个简单的解决方案。

time_column=`beeline --hivevar db=hiveDatabase --hivevar tab=hiveTable --silent=true --showHeader=false --outputformat=tsv2 -e 'show create table ${db}.${tab}' | egrep 'transient_lastDdlTime'`
time_value=`echo $time_column | sed 's/[|,)]//g' | awk -F '=' '{print $2}' | sed "s/'//g"`
tran_date=`date -d @$time_value +'%Y-%m-%d %H:%M:%S'`
echo $tran_date

我使用了直线别名。确保正确设置别名并调用上述脚本。如果没有使用别名,则通过替换上面的beeline,使用完整的beeline命令(带有jdbc连接)。在评论中留下问题。

答案 3 :(得分:0)

请使用以下命令:

显示TBLPROPERTIES table_name('transient_lastDdlTime');

答案 4 :(得分:-1)

您可以通过执行

获取时间戳
describe formatted table_name

答案 5 :(得分:-2)

如果您使用mysql作为元数据使用以下...

select TABLE_NAME, UPDATE_TIME, TABLE_SCHEMA from TABLES where TABLE_SCHEMA = 'employees';
相关问题