In questo tutorial è possibile osservare operazioni sulle tabelle come la creazione, la modifica e l'eliminazione di tabelle in Hive.
Nello screenshot qui sotto, stiamo creando una tabella con colonne e modificando il nome della tabella.
1. Creazione di una tabella guru_sample con due nomi di colonna come "empid" e "empname"
2. Visualizzazione delle tabelle presenti nel database guru99
3. Guru_sample visualizzato sotto le tabelle
4. Modifica della tabella "guru_sample" in "guru_sampleNew"
5. Anche in questo caso, quando si esegue il comando "show", verrà visualizzato il nuovo nome Guru_sampleNew
Dropping table guru_sampleNew:
Tipi di tabella e relativo utilizzo:
Venire alle tabelle è proprio come il modo in cui creiamo nei database relazionali tradizionali. Le funzionalità come il filtraggio, i join possono essere eseguite sulle tabelle.
Hive si occupa di due tipi di strutture di tabelle come tabelle interne ed esterne a seconda del caricamento e della progettazione dello schema in Hive.
Tavoli interni
- La tabella interna è strettamente accoppiata in natura.In questo tipo di tabella, prima dobbiamo creare la tabella e caricare i dati.
- Possiamo chiamarlo come dati sullo schema .
- Eliminando questa tabella, verranno rimossi sia i dati che lo schema.
- La posizione archiviata di questa tabella sarà in / user / hive / warehouse.
Quando scegliere la tabella interna:
- Se i dati di elaborazione sono disponibili nel file system locale
- Se vogliamo che Hive gestisca l'intero ciclo di vita dei dati, inclusa la cancellazione
Esempio di frammento di codice per la tabella interna
1. Per creare la tabella interna
Hive>CREATE TABLE guruhive_internaltable (id INT,Name STRING);Row format delimitedFields terminated by '\t';
2. Caricare i dati nella tabella interna
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO table guruhive_internaltable;
3. Visualizzare il contenuto della tabella
Hive>select * from guruhive_internaltable;
4. Per eliminare la tabella interna
Hive>DROP TABLE guruhive_internaltable;
Se lasci cadere guruhive_internaltable, inclusi i suoi metadati e i suoi dati verranno eliminati da Hive.
Dallo screenshot seguente, possiamo osservare l'output
Nel codice sopra e dallo screenshot facciamo le seguenti cose,
- Crea la tabella interna
- Carica i dati nella tabella interna
- Visualizza il contenuto della tabella
- Per eliminare la tabella interna
Tavoli esterni
- Il tavolo esterno è di natura liberamente accoppiata. I dati saranno disponibili in HDFS. La tabella verrà creata sui dati HDFS.
- In altro modo, possiamo dire come la creazione di uno schema sui dati .
- Al momento di rilasciare la tabella, viene eliminato solo lo schema, i dati saranno ancora disponibili in HDFS come prima.
- Le tabelle esterne forniscono un'opzione per creare più schemi per i dati archiviati in HDFS invece di eliminare i dati ogni volta che lo schema si aggiorna
Quando scegliere un tavolo esterno:
- Se l'elaborazione dei dati è disponibile in HDFS
- Utile quando i file vengono utilizzati al di fuori di Hive
Esempio di frammento di codice per tabella esterna
1. Crea tabella esterna
Hive>CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING)Row format delimitedFields terminated by '\t'LOCATION '/user/guru99hive/guruhive_external;
2. Se non stiamo specificando la posizione al momento della creazione della tabella, possiamo caricare i dati manualmente
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO TABLE guruhive_external;
3. Visualizzare il contenuto della tabella
Hive>select * from guruhive_external;
4. Per eliminare la tabella interna
Hive>DROP TABLE guruhive_external;
Dalla seguente schermata, possiamo osservare l'output
Nel codice sopra, facciamo le seguenti cose
- Crea la tabella esterna
- Carica i dati nella tabella esterna
- Visualizza il contenuto della tabella
- Tavolo esterno cadente
Differenza tra tabelle interne ed esterne
Caratteristica | Interno | Esterno |
---|---|---|
Schema | Dati sullo schema | Schema sui dati |
Posizione di archiviazione | / usr / hive / warehouse | Posizione HDFS |
Disponibilità dei dati | All'interno del file system locale | All'interno di HDFS |