如何从Hive表获得lastaltertimestamp?

时间:2016-10-14 14:10:08

标签: hadoop hive teradata alter-table

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

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

2 个答案:

答案 0 :(得分:2)

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

  

创建表时,它是创建表时的时间戳。   当任何DDL完成时,它是它花费的最后一次DDL时间

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

答案 1 :(得分:1)

“transient_lastDdlTime”是告诉Hive表的最后更改时间的属性。为了获取此信息以及Hive表的其他元数据,您可以运行以下查询:

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采用纪元格式。