2016-10-14 2 views
2

Teradata hat das Konzept lastaltertimestamp, das ist das letzte Mal, dass ein alter table Befehl auf einer Tabelle ausgeführt wurde. lastaltertimestamp kann abgefragt werden. Hat Hive einen ähnlichen Wert, der abgefragt werden kann?Wie bekomme ich den letztenaltimestamp vom Hive-Tisch?

Der Zeitstempel von hdfs dfs -ls /my/hive/file zurückgegeben wird, alter table Befehle nicht reflektieren, modifizieren alter table muss so nicht die Datei Datei Hive sichern. describe formatted bietet auch keinen Last-Alter-Timestamp. Dank

Antwort

1

Hive speichert Metadaten in einer Datenbank, so dass Dateien nie geändert werden. AFAIK der einzige Zeitstempel, der in HIVE verfolgt wird, ist transient_lastDdlTime.

Wenn eine Tabelle erstellt wird, ist dies der Zeitstempel, wenn die Tabelle erstellt wurde. Wenn eine DDL geschieht es die letzte DDL Zeit ist es tooks

Sie können noch Ihre benutzerdefinierten Eigenschaften der Tabelle hinzufügen, um alles, was Sie verfolgen möchten.

1

"transient_lastDdlTime" ist die Eigenschaft, die über die letzte geänderte Zeit der Hive-Tabellen angibt. Um dies zu holen zusammen mit anderen Metadaten des Hive Tabelle Sie folgende Abfrage ausführen können:

describe formatted <table_name>; 

Diese Ausgänge:

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 

Das ausgegebene transient_lastDdlTime in Epoche-Format ist.

Verwandte Themen