如何在配置单元中查找表的上次修改时间戳?

czq61nw1  于 2021-06-28  发布在  Hive
关注(0)|答案(6)|浏览(423)

我正在尝试获取配置单元中表的最后修改的时间戳。

baubqpgj

baubqpgj1#

从你的Hive表中获取短暂的\u lastdltime。

SHOW CREATE TABLE table_name;

然后在下面的查询中复制粘贴临时的\u lastdldltime以获得时间戳值。

SELECT CAST(from_unixtime(your_transient_lastDdlTime_value) AS timestamp);
ubbxdtey

ubbxdtey2#

请使用以下命令:

show TBLPROPERTIES table_name ('transient_lastDdlTime');
kmbjn2e3

kmbjn2e33#

您可以通过执行

describe formatted table_name
tjrkku2a

tjrkku2a4#

您可以执行以下命令并转换 transient_lastDdlTime 从时间戳到日期。
它将给出表的最后修改的时间戳。

show create table TABLE_NAME;
sulc1iza

sulc1iza5#

如果您使用mysql作为元数据,请使用以下内容。。。

select TABLE_NAME, UPDATE_TIME, TABLE_SCHEMA from TABLES where TABLE_SCHEMA = 'employees';
6ss1mwsb

6ss1mwsb6#

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

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

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

相关问题