如何从 Hive table 获取 lastaltertimestamp?

How to get lastaltertimestamp from Hive table?

Teradata 有 lastaltertimestamp 的概念,这是最后一次在 table 上执行 alter table 命令。 lastaltertimestamp可以查询。 Hive是否有类似的值可以查询?

hdfs dfs -ls /my/hive/file 返回的时间戳不反映 alter table 命令,因此 alter table 不能修改支持 Hive 文件的文件。 describe formatted 也不提供最后更改时间戳。 谢谢

Hive 将元数据存储到数据库中,因此文件永远不会被修改。 据我所知,在 HIVE 中跟踪的唯一时间戳是 transient_lastDdlTime

When table is created it is the time stamp when the table was created. When any DDL is done it is the last DDL time it tooks

您仍然可以将自定义属性添加到 table 以跟踪您想要的任何内容。

"transient_lastDdlTime" 是 属性,它讲述了 Hive 的最后更改时间 tables。为了将其与 Hive table 的其他元数据一起获取,您可以 运行 以下查询:

describe formatted <table_name>;

这输出:

Database:               xxxxxxxxx
Owner:                  xxxxxxxxx
CreateTime:             Tue Jan xx 06:58:21 IST xxxx
LastAccessTime:         UNKNOWN
Retention:              0
Location:               xxxxxxxxx
Table Type:             xxxxxxxxx
Table Parameters:   
    numFiles                xxxxxxxxx
    numRows                 xxxxxxxxx
    rawDataSize             xxxxxxxxx
    totalSize               xxxxxxxxx
    transient_lastDdlTime   1517424154

# Storage Information
SerDe Library:          xxxxxxxxx
InputFormat:            xxxxxxxxx
OutputFormat:           xxxxxxxxx
Compressed:             xxxxxxxxx
Num Buckets:            xxxxxxxxx
Bucket Columns:         xxxxxxxxx
Sort Columns:           xxxxxxxxx
Storage Desc Params:
    serialization.format    xxxxxxxxx

输出的transient_lastDdlTime是纪元格式。