Hive Crea tabella: tabella interna, Alter, Drop con esempi
Table Operazioni come Creazione, alterazione e eliminazione tabelle in Hive possono essere osservate in questo tutorial.
Nello screenshot seguente, stiamo creando una tabella con colonne e modificando il nome della tabella.
1. Creazione della 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. Ancora una volta, quando esegui il comando "mostra", verrà visualizzato il nuovo nome Guru_sampleNew
Dropping table guru_sampleNew:
Tipi di tabella e relativo utilizzo
Venendo a tavoli è proprio come il modo in cui creiamo nei tradizionali database relazionali. Le funzionalità come filtraggio e join possono essere eseguite sulle tabelle.
Alveare si occupa di due tipi di strutture di tabella come Interno ed esterno tabelle in base al caricamento e alla progettazione dello schema in Hive.
Tavoli interni
- La tabella interna è per natura strettamente accoppiata. In questo tipo di tabella, dobbiamo prima creare la tabella e caricare i dati.
- Possiamo chiamarlo come dati sullo schema.
- Se si elimina questa tabella, verranno rimossi sia i dati che lo schema.
- La posizione memorizzata di questa tabella sarà /user/hive/warehouse.
Quando scegliere il tavolo interno?
- Se i dati di elaborazione sono disponibili nel file system locale
- Se vogliamo che Hive gestisca l'intero ciclo di vita dei dati compresa la cancellazione
Snippet di codice di esempio per la tabella interna
1. Per creare la tabella interna
Hive>CREATE TABLE guruhive_internaltable (id INT,Name STRING); Row format delimited Fields 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 hai eliminato 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 nello screenshot facciamo le seguenti cose,
- Creare la tabella interna
- Caricare i dati nella tabella interna
- Visualizza il contenuto della tabella
- Per eliminare la tabella interna
Tavoli esterni
- La tabella esterna è di natura liberamente accoppiata. I dati saranno disponibili in HDFS. La tabella verrà creata sui dati HDFS.
- In altri termini, possiamo dire come se stesse creando schema sui dati.
- Al momento dell'eliminazione della tabella viene eliminato solo lo schema, i dati saranno ancora disponibili in HDFS come prima.
- Le tabelle esterne offrono un'opzione per creare più schemi per i dati archiviati in HDFS invece di eliminare i dati ogni volta che lo schema viene aggiornato
Quando scegliere il tavolo esterno?
- Se si elaborano dati disponibili in HDFS
- Utile quando i file vengono utilizzati all'esterno di Hive
Snippet di codice di esempio per la tabella esterna
1. Crea una tabella esterna
Hive>CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING) Row format delimited Fields terminated by '\t' LOCATION '/user/guru99hive/guruhive_external;
2. Se non specifichiamo 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;
Dallo screenshot seguente, possiamo osservare l'output
Nel codice sopra, facciamo le seguenti cose
- Creare la tabella esterna
- Carica i dati nella tabella esterna
- Visualizza il contenuto della tabella
- Eliminazione della tabella esterna
Differenza tra tabelle interne ed esterne
caratteristica | Interno | Esterno |
---|---|---|
Schema | Dati sullo schema | Schema sui dati |
Posizione di archiviazione | /usr/hive/magazzino | Posizione dell'HDFS |
Disponibilità dei dati | All'interno del file system locale | All'interno di HDFS |