Apache Hive per l'ingegneria dei dati

Contenuti

Panoramica

  • Comprender la arquitectura de Apache Alveare y su funcionamiento.
  • Impareremo a eseguire alcune operazioni di base in Apache Hive.

introduzione

La maggior parte dei data scientist utilizza le query SQL per esplorare i dati e ottenere approfondimenti da essi.. Ora, poiché il volume dei dati sta crescendo a un ritmo così alto, abbiamo bisogno di nuovi strumenti dedicati per gestire grandi volumi di dati.

Inizialmente, Hadoop è emerso ed è diventato uno degli strumenti più popolari per l'elaborazione e l'archiviazione di big data. Ma gli sviluppatori hanno dovuto scrivere un codice di riduzione delle mappe complesso per lavorare con Hadoop. Questo è l'Apache Hive di Facebook che è venuto a salvare. È un altro strumento progettato per funzionare con Hadoop. Possiamo scrivere query di tipo SQL nell'hive e nel backend le converte in lavori di riduzione della mappa.

iniziare-con-apache-hive-1789784

In questo articolo, vedremo l'architettura dell'alveare e il suo funzionamento. También aprenderemos cómo realizar operaciones simples como crear una Banca dati y una tabla, caricare dati, modificare la tabella.

Sommario

  1. Cos'è Apache Hive??
  2. Arquitectura Apache Hive
  3. Lavoro Apache Hive
  4. Tipi di dati in Apache Hive
  5. Crea ed elimina database
  6. Crea e rilascia tabella
  7. Carica i dati nella tabella
  8. Modifica tabella
  9. Vantaggio / Svantaggi di Hive

Cos'è Apache Hive??

hive-logo-2732441

Apache Hive è un sistema di archiviazione dati sviluppato da Facebook per elaborare una grande quantità di dati di struttura in Hadoop. Sappiamo che per elaborare i dati utilizzando Hadoop, dobbiamo correggere complesse funzioni di riduzione della mappa, che non è un compito facile per la maggior parte degli sviluppatori. Hive rende questo lavoro molto facile per noi.

Usa un linguaggio di script chiamato HiveQL che è quasi simile a SQL. Quindi, dobbiamo solo scrivere comandi simili a SQL e nel backend Hive li convertirà automaticamente in lavori di riduzione della mappa.

Arquitectura Apache Hive

Diamo un'occhiata al seguente diagramma che mostra l'architettura.

screenshot-dal-2020-10-25-20-47-32-8903294

  • Clienti Hive: Ci consente di scrivere applicazioni Hive utilizzando diversi tipi di client, come server di salvataggio, il driver JDBC per applicazioni Java e Hive, ed è anche compatibile con le applicazioni che utilizzano il protocollo ODBC.
  • Servizi dell'alveare: Come sviluppatore, se vogliamo elaborare dei dati, dobbiamo usare i servizi hive come hive CLI (Interfaccia a riga di comando). Oltre a quell'alveare, fornisce anche un'interfaccia basata sul web per eseguire le applicazioni hive.
  • Autista dell'alveare: È in grado di ricevere query da più risorse come l'usato, JDBC e ODBS utilizzando il server hive e direttamente da hive CLI e interfaccia utente basata sul Web. Dopo aver ricevuto richieste, li trasferisce al compilatore.
  • Motore HiveQL: Riceve la query dal compilatore e converte la query di tipo SQL per mappare i lavori di riduzione.
  • Meta negozio: Qui Hive memorizza le meta informazioni sui database come schema della tabella, i tipi di dati delle colonne, la ubicación en el HDFS, eccetera.
  • HDFS: Es simplemente el sistema de archivos distribuido de Hadoop que se utiliza para almacenar los datos. Consiglio vivamente di leggere questo articolo per saperne di più su HDFS: Introduzione all'ecosistema Hadoop

Lavoro Apache Hive

Ora, Diamo un'occhiata a come funziona Hive sul framework Hadoop.

screenshot-dal-2020-10-25-18-57-51-5645793

  1. Nel primo passo, scriviamo la query utilizzando l'interfaccia web o l'interfaccia a riga di comando dell'alveare. Lo invia al controller per eseguire la query.
  2. Nel prossimo passo, il controller invia la query ricevuta al compilatore dove il compilatore controlla la sintassi.
  3. E una volta eseguito il controllo della sintassi, richiedi i metadati dal meta store.
  4. Ora, i metadati forniscono informazioni come il database, tavole, tipi di dati di colonna in risposta alla query del compilatore.
  5. Il compilatore controlla nuovamente tutti i requisiti ricevuti dal meta store e invia il piano di esecuzione al controller.
  6. Ora, il controller invia il piano di esecuzione al motore di processo HiveQL, dove il motore converte la query nel lavoro di riduzione della mappa.
  7. Una volta che la query diventa il lavoro di riduzione della mappa, invia le informazioni sull'attività ad Hadoop dove inizia l'elaborazione della query e, allo stesso tempo, aggiorna i metadati sul lavoro di riduzione della mappa nel meta store.
  8. Una volta terminata la lavorazione, il runtime riceve i risultati della query.
  9. Il runtime trasferisce i risultati al controller e, Finalmente, li invia all'interfaccia utente di hive da dove possiamo vedere i risultati.

Tipi di dati in Apache Hive

I tipi di dati Hive sono suddivisi nei seguenti elementi 5 diverse categorie:

  1. tipo numerico: TINYINT, SMALLINT, INT, BIGINT
  2. Tipi di data / ora: ORA, DATA, ROTTURA
  3. Tipi di corde: CORDA, VARCHAR, CHAR
  4. tipi complessi: STRUTTURA, CARTA GEOGRAFICA, UNIONE, VETTORE
  5. Vari tipi: BOOLEO, BINARIO

Ecco una piccola descrizione di alcuni di loro.

screenshot-dal-2020-10-25-22-41-47-8165741

Crea ed elimina database

La creazione e l'eliminazione di un database è molto semplice e simile a SQL. Dobbiamo assegnare un nome univoco a ciascuno dei database dell'alveare. Se il database esiste già, mostrerà un avviso e per sopprimere questo avviso puoi aggiungere le parole chiave SE NON ESISTE dopo la parola chiave del database.

CREA DATABASE <<nome del database>> ;

Anche l'eliminazione di un database è molto semplice, devi solo scrivere a eliminare il database e il nome del database essere abbandonato. Se provi a eliminare il database che non esiste, ti darà l'errore SemanticException.

DROP DATABASE <<nome del database>> ;

Crea tabella

Usiamo l'istruzione create table per creare una tabella e la sintassi completa è la seguente.

CREA TABELLA SE NON ESISTE <<nome del database.>><<nome_tabella>> 
                           (nome_colonna_1 tipo_dati_1, 
                            nome_colonna_2 tipo_dati_2,
                            .
                            .
                            nome_colonna_n tipo_dati_n)
                            ROW FORMAT DELIMITED FIELDS 
                            TERMINATED BY 't'
                            LINES TERMINATED BY 'n'
                            STORED AS TEXTFILE;

Se si sta già utilizzando il database, non è necessario digitare nome_tabella_nombre_base_datos. Quindi, È possibile digitare solo il nome della tabella. Nel caso dei Big Data, il più delle volte importiamo i dati da file esterni in modo che qui possiamo predefinire il delimitatore utilizzato nel file, terminatore di linea e possiamo anche definire come vogliamo memorizzare la tabella.

Ci sono 2 diversi tipi di tavoli alveare Tavoli interni ed esterni. Dai un'occhiata a questo articolo per saperne di più sul concetto: Tipi di tabella in Apache Hive: una rapida panoramica

Carica i dati nella tabella

Ora, le tabelle sono state create. È ora di caricare i dati al suo interno. Possiamo caricare i dati da qualsiasi file locale sul nostro sistema utilizzando la seguente sintassi.

CARICARE I DATI INPATH LOCALE <<percorso del file sul tuo sistema locale>> 
                       IN TABELLA
                       <<nome del database.>><<nome_tabella>> ;

Quando lavoriamo con una grande quantità di dati, esiste la possibilità di avere tipi di dati non corrispondenti in alcune righe. Quindi, l'alveare non genererà alcun errore, invece riempirà invece i valori null. Questa è una funzione molto utile, poiché il caricamento di file di big data nell'alveare è un processo costoso e non vogliamo caricare l'intero set di dati solo perché abbiamo pochi file.

Modifica tabella

Nell'alveare, possiamo apportare diverse modifiche alle tabelle esistenti, Come rinominare le tabelle, Aggiungere altre colonne alla tabella. I comandi per modificare la tabella sono molto simili ai comandi SQL.

Ecco la sintassi per rinominare la tabella:

ALTERA TABELLA <<nome_tabella>> RINOMINA IN <<new_name>> ;

Sintassi per l'aggiunta di altre colonne nella tabella:

## to add more columns
ALTER TABLE <<nome_tabella>> AGGIUNGERE COLONNE 
                           (new_column_name_1 data_type_1,
                            new_column_name_2 data_type_2,
                            . 
                            .
                            new_column_name_n data_type_n) ;

Vantaggio / svantaggi di Apache Hive

  • Utilizza SQL come linguaggio di query già familiare alla maggior parte degli sviluppatori, quindi ne facilita l'uso.
  • È altamente scalabile, È possibile utilizzarlo per elaborare dati di qualsiasi dimensione.
  • Supporta più database come MySQL, Derby, Postgres e Oracle per il tuo archivio di metadati.
  • Supporta più formati di dati e consente anche l'indicizzazione, partizione e gruppo per ottimizzare le query.
  • Può gestire solo dati freddi ed è inutile quando si tratta di elaborazione dati in tempo reale.
  • È relativamente più lento di alcuni dei suoi concorrenti. Se il tuo caso d'uso riguarda principalmente l'elaborazione in batch, L'alveare va bene.

Note finali

In questo articolo, Abbiamo visto l'architettura di Apache Hive e come funziona e alcune delle operazioni di base per iniziare. Nel prossimo articolo di questa serie, veremos algunos de los conceptos más complejos e importantes de partición y raggruppamento en una colmena.

Se hai domande relative a questo articolo, fammi sapere nella sezione commenti qui sotto.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.