HCatalog - Mostra le partizioni

Una partizione è una condizione per i dati tabulari che viene utilizzata per creare una tabella o una vista separata. SHOW PARTITIONS elenca tutte le partizioni esistenti per una data tabella di base. Le partizioni sono elencate in ordine alfabetico. Dopo Hive 0.6, è anche possibile specificare parti di una specifica di partizione per filtrare l'elenco risultante.

È possibile utilizzare il comando MOSTRA PARTIZIONI per vedere le partizioni esistenti in una particolare tabella. Questo capitolo descrive come elencare le partizioni di una particolare tabella in HCatalog.

Show Partitions Statement

La sintassi è la seguente:

SHOW PARTITIONS table_name;

La query seguente elimina una tabella denominata employee -

./hcat –e "Show partitions employee;"

In caso di corretta esecuzione della query, viene visualizzata la seguente risposta:

OK
Designation = IT
Time taken: 5.3 seconds

Partizione dinamica

HCatalog organizza le tabelle in partizioni. È un modo per dividere una tabella in parti correlate in base ai valori delle colonne partizionate come data, città e dipartimento. Utilizzando le partizioni, è facile interrogare una parte dei dati.

Ad esempio, una tabella denominata Tab1contiene i dati dei dipendenti come ID, nome, reparto e yoj (ad esempio, anno di adesione). Si supponga di dover recuperare i dettagli di tutti i dipendenti che hanno aderito nel 2012. Una query cerca le informazioni richieste nell'intera tabella. Tuttavia, se si partizionano i dati dei dipendenti con l'anno e li si memorizza in un file separato, si riduce il tempo di elaborazione delle query. L'esempio seguente mostra come partizionare un file e i suoi dati:

Il seguente file contiene employeedata tavolo.

/ tab1 / Employeedata / file1

id, name,   dept, yoj
1,  gopal,   TP, 2012
2,  kiran,   HR, 2012
3,  kaleel,  SC, 2013
4, Prasanth, SC, 2013

I dati di cui sopra vengono partizionati in due file utilizzando l'anno.

/ tab1 / Employeedata / 2012 / file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/ tab1 / Employeedata / 2013 / file3

3, kaleel,   SC, 2013
4, Prasanth, SC, 2013

Aggiunta di una partizione

Possiamo aggiungere partizioni a una tabella alterando la tabella. Supponiamo di avere una tabella chiamataemployee con campi come ID, Nome, Stipendio, Designazione, Reparto e yoj.

Sintassi

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;
partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

La seguente query viene utilizzata per aggiungere una partizione al file employee tavolo.

./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"

Ridenominazione di una partizione

È possibile utilizzare il comando RENAME-TO per rinominare una partizione. La sua sintassi è la seguente:

./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"

La seguente query viene utilizzata per rinominare una partizione:

./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"

Eliminazione di una partizione

La sintassi del comando utilizzato per eliminare una partizione è la seguente:

./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,.
   PARTITION partition_spec,...;"

La seguente query viene utilizzata per eliminare una partizione:

./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"