Tipi di tabella in Apache Hive

Contenuti

Panoramica

  • Apache Alveare es una herramienta imprescindible para cualquier persona interesada en la ciencia y la ingeniería de datos.
  • Scopri i diversi tipi di tabelle Apache Hive

introduzione

Ho trascorso più di mezzo decennio a lavorare con lo stack tecnologico dei Big Data e a fornire consulenza a clienti in vari settori. Una cosa che ho notato è la frequenza con cui Hive viene utilizzato come soluzione di archiviazione in tutti i domini aziendali.

Non puoi ignorare Apache Hive quando stai imparando Apache Hadoop.

alveare di apache

Hive es parte del gran ecosistema de Hadoop que le posibilita proporcionar un esquema para grandes datos que residen en HDFS. La maggior parte di voi conoscerà RDBMS e le sue tabelle. Li usiamo così spesso che ormai sono diventati parte della nostra vita. Ed ecco la domanda: le tabelle in Hive non sono diverse.

Ti sei mai chiesto quali potrebbero essere i diversi tipi di tabelle in Hive? Questo è ciò di cui parleremo in questo post!!

Sommario

  1. Cos'è Apache Hive??
  2. Tipi di tabella in Apache Hive # 1: tabelle gestite
  3. Tipi di tabella in Apache Hive # 2: Tavoli esterni
  4. Tavolo gestito vs tavolo esterno: qual è la differenza?
  5. Identificare il tipo di tabella Apache Hive

Cos'è Apache Hive??

Apache Hive è un sistema di archiviazione dati per Apache Hadoop. Fornisce l'accesso SQL equivalente ai dati in HDFS in modo che Hadoop possa essere utilizzato come struttura di magazzino. Hive ti consente di fornire una struttura su dati in gran parte non strutturati. Dopo aver stabilito la struttura, puoi usare Hive per interrogare i dati senza conoscere Java o Map Reduce.

Linguaggio di query Hive (HQL) cuenta con una semántica y funciones similares a las de SQL estándar en la Banca dati relacional para que los analistas de bases de datos experimentados puedan ingresar fácilmente a los datos.

tavole apache alveare

Quali sono le funzionalità offerte da Hive?

Apache Hive fornisce le seguenti funzionalità:

  1. Apache Hive fornisce un modello di query più semplice con meno codice rispetto a Map Reduce
  2. HQL e SQL hanno una sintassi equivalente
  3. Fornisce molte funzionalità che rendono l'analisi facile da usare.
  4. Il tempo di risposta è di solito molto più veloce di altri tipi di query sugli stessi enormi set di dati
  5. Apache Hive supporta l'esecuzione su diversi framework di elaborazione
  6. Supporta query di dati ad hoc su HDFS
  7. Apache Hive supporta funzioni definite dall'utente, script e un formato E / S personalizzato per estenderne le funzionalità.
  8. È scalabile ed estensibile a vari tipi di dati e set di dati più grandi.
  9. I driver JDBC e ODBC maturi consentono a molte applicazioni di estrarre i dati da Hive per una reportistica fluida
  10. Hive consente agli utenti di leggere i dati in formati arbitrari, utilizzando SerDes e formati di input / Uscita
  11. Hive ha un'architettura consolidata per la gestione dei metadati, autenticazione e ottimizzazione delle query.
  12. Esiste una vasta comunità di professionisti e sviluppatori che lavorano e utilizzano Hive.

Tipi di tabella in Apache Hive

Questi sono i tipi di tabelle in Apache Hive:

Tavoli gestiti

In una tabella gestita, Hive gestisce sia i dati che lo schema della tabella. I dati si troveranno in una cartella con il nome della tabella all'interno dell'archivio dati Hive, che è semplicemente un percorso di file in HDFS.

La posizione è configurabile dall'utente quando Hive è installato. Per gestito o controllato intendiamo che se elimini (rimuovere) una tabella gestita, Hive rimuoverà entrambi gli schemi (la descrizione della tabella) ad esempio i file di dati associati alla tabella. Il percorso predefinito è / Nome utente / alveare / scorta).

Sintassi per la creazione di una tabella gestita

CREA TABELLA SE NON ESISTONO SCORTE (scambio STRING,
simbolo STRING,
price_open FLOAT,
price_high GALLEGGIANTE,
price_low FLOAT,
price_adj_close FLOAT)
CAMPI DELIMITATI IN FORMATO RIGA TERMINATI DA ',' ;

Per quanto riguarda tabelle gestite, È inoltre possibile copiare lo schema (ma non i dati) di una tabella esistente:

CREATE EXTERNAL TABLE IF NOT EXISTS mydb.employees3
LIKE mydb.employees
LOCATION '/path/to/data';

Tavoli esterni
Una tabella esterna è una tabella in cui Hive controlla solo lo schema della tabella. Nella maggior parte dei casi, L'utente imposterà il percorso della cartella all'interno di HDFS e copierà i file di dati lì. Questo percorso è incluso nella dichiarazione di definizione della tabella. Quando viene eliminata una tabella esterna, Hive eliminerà solo lo schema associato alla tabella. I file di dati non sono interessati.

Sintassi per la creazione di una tabella esterna

CREARE UNA TABELLA ESTERNA SE NON ESISTONO SCORTE (scambio STRING,
simbolo STRING,
price_open FLOAT,
price_high GALLEGGIANTE,
price_low FLOAT,
price_adj_close FLOAT)
CAMPI DELIMITATI IN FORMATO RIGA TERMINATI DA ','
LOCATION '/data/stocks';

Tabella gestita vs. tabella esterna: qual è la differenza?

Tavolo gestitoTavolo esterno
Hive presume che ha dati da tabelle gestite.Per tavoli esterni, Hive presume di sì no gestire i dati.
Se una tabella o una partizione gestita viene eliminata, i dati e i metadati associati a quella tabella o partizione vengono eliminati.Lasciare la tabella non cancella i dati, anche se i metadati della tabella verranno rimossi.
Per Tavoli gestiti, Alveare memorizza i dati nella directory del magazzinoPer Tavoli esterni, Alveare memorizza i dati nella LOCATION specificata durante la creazione del mesa(generalmente non nella directory del magazzino)
La tabella gestita fornisce supporto ACID / azione transnazionale.La tabella esterna non fornisce supporto per le azioni ACID / transazionale.
Dichiarazioni: ARCHIVIO, UNARCHIVE, TRONCARE, UNISCI, Compatibile con CONCATENATENon supportato.
La memorizzazione nella cache dei risultati delle query è supportata (salva i risultati di una query Hive eseguita per il riutilizzo)Non supportato

Identificare il tipo di tabella Apache Hive

Puoi sapere se una tabella è gestita o esterna usando l'output di DESCRIBE EXTENDED nome tabella.

Verso la fine dell'output delle informazioni dettagliate della tabella, vedrai quanto segue per amministrato tavoli:

... tableType: TABELLA_GESTIONE)

Per esterno tavole, vedrai quanto segue:

... tableType: TABELLA_ESTERNA)

Nota: Se ometti la parola chiave EXTERNAL e la tabella originale è esterna, anche la nuova tabella sarà esterna. Se si omette EXTERNAL e viene gestita la tabella originale, verrà gestito anche il nuovo tavolo. Nonostante questo, se include la parola chiave ESTERNO e la tabella originale è gestita, la nuova tabella sarà esterna. Anche in questo scenario, la clausola LOCATION rimarrà facoltativa.

Note finali

In questo post, abbiamo appreso di Apache Hive e dei suoi tipi di tabelle. Auspicabilmente, potresti aver ottenuto una buona panoramica dei tipi di tabella in Hive. Le differenze indicate non sono esaustive. Sentiti libero di aggiungere altro nella sezione commenti qui sotto.

Di seguito sono riportate alcune risorse aggiuntive di ingegneria dei dati che ti consiglio di esplorare:

Spero che il post ti sia piaciuto. Se hai domande relative a questo post, fammi sapere nella sezione commenti qui sotto.

Lettura consigliata-

https://cwiki.apache.org/confluence/display/Hive/Home

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.