Impala - Panoramica

Cos'è l'Impala?

Impala è un motore di query SQL MPP (Massive Parallel Processing) per l'elaborazione di enormi volumi di dati archiviati nel cluster Hadoop. È un software open source scritto in C ++ e Java. Fornisce prestazioni elevate e bassa latenza rispetto ad altri motori SQL per Hadoop.

In altre parole, Impala è il motore SQL con le prestazioni più elevate (che offre un'esperienza simile a RDBMS) che fornisce il modo più veloce per accedere ai dati archiviati in Hadoop Distributed File System.

Perché Impala?

Impala combina il supporto SQL e le prestazioni multiutente di un database analitico tradizionale con la scalabilità e la flessibilità di Apache Hadoop, utilizzando componenti standard come HDFS, HBase, Metastore, YARN e Sentry.

  • Con Impala, gli utenti possono comunicare con HDFS o HBase utilizzando le query SQL in modo più veloce rispetto ad altri motori SQL come Hive.

  • Impala può leggere quasi tutti i formati di file come Parquet, Avro, RCFile utilizzati da Hadoop.

Impala utilizza gli stessi metadati, sintassi SQL (Hive SQL), driver ODBC e interfaccia utente (Hue Beeswax) di Apache Hive, fornendo una piattaforma familiare e unificata per query in batch o in tempo reale.

A differenza di Apache Hive, Impala is not based on MapReduce algorithms. Implementa un'architettura distribuita basata sudaemon processes responsabili di tutti gli aspetti dell'esecuzione delle query eseguite sulle stesse macchine.

Pertanto, riduce la latenza dell'utilizzo di MapReduce e questo rende Impala più veloce di Apache Hive.

Vantaggi di Impala

Ecco un elenco di alcuni noti vantaggi di Cloudera Impala.

  • Utilizzando impala, puoi elaborare i dati archiviati in HDFS a una velocità fulminea con la conoscenza SQL tradizionale.

  • Poiché l'elaborazione dei dati viene effettuata dove risiedono i dati (sul cluster Hadoop), la trasformazione e lo spostamento dei dati non sono necessari per i dati archiviati su Hadoop, mentre si lavora con Impala.

  • Utilizzando Impala, puoi accedere ai dati archiviati in HDFS, HBase e Amazon s3 senza la conoscenza di Java (lavori MapReduce). Puoi accedervi con un'idea di base delle query SQL.

  • Per scrivere query negli strumenti aziendali, i dati devono essere sottoposti a un complicato ciclo di estrazione-trasformazione-caricamento (ETL). Ma, con Impala, questa procedura è abbreviata. Le lunghe fasi di caricamento e riorganizzazione vengono superate con le nuove tecniche comeexploratory data analysis & data discovery rendendo il processo più veloce.

  • Impala sta sperimentando l'uso del formato di file Parquet, un layout di archiviazione a colonne ottimizzato per query su larga scala tipiche degli scenari di data warehouse.

Caratteristiche di Impala

Di seguito sono riportate le caratteristiche di cloudera Impala:

  • Impala è disponibile gratuitamente come open source con la licenza Apache.

  • Impala supporta l'elaborazione dei dati in memoria, ovvero accede / analizza i dati archiviati sui nodi di dati Hadoop senza spostamento dei dati.

  • È possibile accedere ai dati utilizzando Impala utilizzando query di tipo SQL.

  • Impala fornisce un accesso più rapido ai dati in HDFS rispetto ad altri motori SQL.

  • Utilizzando Impala, puoi archiviare i dati in sistemi di archiviazione come HDFS, Apache HBase e Amazon s3.

  • Puoi integrare Impala con strumenti di business intelligence come Tableau, Pentaho, Micro strategy e Zoom data.

  • Impala supporta vari formati di file come LZO, Sequence File, Avro, RCFile e Parquet.

  • Impala utilizza metadati, driver ODBC e sintassi SQL di Apache Hive.

Database relazionali e Impala

Impala utilizza un linguaggio Query simile a SQL e HiveQL. La tabella seguente descrive alcune delle differenze principali tra SQL e il linguaggio Impala Query.

Impala Database relazionali
Impala utilizza un linguaggio di query simile a SQL che è simile a HiveQL. I database relazionali utilizzano il linguaggio SQL.
In Impala, non è possibile aggiornare o eliminare singoli record. Nei database relazionali è possibile aggiornare o eliminare singoli record.
Impala non supporta le transazioni. I database relazionali supportano le transazioni.
Impala non supporta l'indicizzazione. I database relazionali supportano l'indicizzazione.
Impala archivia e gestisce grandi quantità di dati (petabyte). I database relazionali gestiscono quantità minori di dati (terabyte) rispetto a Impala.

Hive, Hbase e Impala

Sebbene Cloudera Impala utilizzi lo stesso linguaggio di query, metastore e interfaccia utente di Hive, differisce da Hive e HBase in alcuni aspetti. La tabella seguente presenta un'analisi comparativa tra HBase, Hive e Impala.

HBase Alveare Impala
HBase è un database di archivi a colonne larghe basato su Apache Hadoop. Utilizza i concetti di BigTable. Hive è un software di data warehouse. Usando questo, possiamo accedere e gestire grandi set di dati distribuiti, costruiti su Hadoop. Impala è uno strumento per gestire, analizzare i dati archiviati su Hadoop.
Il modello dati di HBase è un archivio di colonne larghe. Hive segue il modello relazionale. Impala segue il modello relazionale.
HBase è sviluppato utilizzando il linguaggio Java. Hive è sviluppato utilizzando il linguaggio Java. Impala è sviluppato utilizzando C ++.
Il modello di dati di HBase è privo di schemi. Il modello di dati di Hive è basato su Schema. Il modello di dati di Impala è basato su Schema.
HBase fornisce API Java, RESTful e Thrift. Hive fornisce JDBC, ODBC, API Thrift. Impala fornisce API JDBC e ODBC.
Supporta linguaggi di programmazione come C, C #, C ++, Groovy, Java PHP, Python e Scala. Supporta linguaggi di programmazione come C ++, Java, PHP e Python. Impala supporta tutte le lingue che supportano JDBC / ODBC.
HBase fornisce supporto per i trigger. Hive non fornisce alcun supporto per i trigger. Impala non fornisce alcun supporto per i trigger.

Tutti questi tre database -

  • Sono database NOSQL.

  • Disponibile come open source.

  • Supporta lo scripting lato server.

  • Segui le proprietà ACID come Durabilità e Concorrenza.

  • Uso sharding per partitioning.

Inconvenienti di Impala

Alcuni degli svantaggi dell'utilizzo di Impala sono i seguenti:

  • Impala non fornisce alcun supporto per la serializzazione e la deserializzazione.
  • Impala può leggere solo file di testo, non file binari personalizzati.
  • Ogni volta che vengono aggiunti nuovi record / file alla directory dei dati in HDFS, la tabella deve essere aggiornata.