2016-10-14 1 views
2

Teradata a le concept de lastaltertimestamp, qui est la dernière fois qu'une commande alter table a été exécutée sur une table. lastaltertimestamp peut être interrogé. Est-ce que Hive a une valeur similaire qui peut être interrogée?Comment obtenir lastaltertimestamp de la table Hive?

L'horodatage retourné par hdfs dfs -ls /my/hive/file ne reflète pas les commandes alter table, donc alter table ne doit pas modifier le fichier Hive de sauvegarde du fichier. describe formatted ne fournit pas non plus un last-alter-timestamp. Merci

Répondre

1

Hive stocke les métadonnées dans une base de données, ainsi les fichiers ne sont jamais modifiés. AFAIK le seul horodatage qui est suivi dans HIVE est transient_lastDdlTime.

Lorsque la table est créée, elle est l'horodatage lors de la création de la table. Quand tout est fait, il DDL est la dernière fois DDL tooks il

Vous pouvez toujours ajouter vos propriétés personnalisées à la table afin de suivre tout ce que vous voulez. "Transient_lastDdlTime" est la propriété qui indique le dernier temps modifié des tables Hive.

1

Pour aller chercher ce ainsi que d'autres métadonnées de la table Ruche vous pouvez exécuter la requête suivante:

describe formatted <table_name>; 

Ce sorties:

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 

Le transient_lastDdlTime est en en sortie format époque.