Ho una tabella partizionata - con 201 partizioni. Ho bisogno di trovare l'ultima partizione in questa tabella e usarla per registrare i miei dati. La query per trovare l'elenco di tutte le partizioni è:Come trovare la partizione più recente nella tabella HIVE
use db;
show partitions table_name;
Ho bisogno di una query per trovare l'ultima di queste partizioni. Le partizioni sono nel formato
ingest_date=2016-03-09
Ho provato a utilizzare max() che mi ha dato un risultato errato. Io non voglio attraversare attraverso intera tabella facendo
select max(ingest_date) from db.table_name;
Questo mi darebbe i risultati attesi .. ma uccidere l'intero punto di avere partizioni nel 1 ° posto.
Esiste una query più efficiente per ottenere l'ultima partizione per la tabella HIve?
Possibile duplicato di [Hive: come visualizzare tutte le partizioni di una tabella?] (Http://stackoverflow.com/questions/15616290/hive-how-to-show-all-partitions-of-a-table) – zero323
Purtroppo, Hive non espone i metadati come tabelle virtuali - niente come un database 'SYS' o' INFORMATION_SCHEMA'. L'unico modo efficace per elencare le partizioni di una tabella Hive è utilizzare ** Metastore java API **. Oppure per decodificare il modo in cui le partizioni sono organizzate ** in HDFS ** _ (in realtà abbastanza semplice) _ quindi elencare le directory, sperando che HDFS e Metastore siano sincronizzati al 100%. –
Oppure, se è possibile eseguire query direttamente sul database Metastore * (probabilmente in MySQL o PostgreSQL) *, eseguire il reverse-engineer del modello dati ed eseguire qualsiasi SQL desiderato. –