我试图在Hive中获取表的最后修改时间戳。
答案 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';