Apache Hive: definizione e utilizzo

Anche se secondo numerosi esperti informatici il sistema data warehouse Apache Hive è destinato a scomparire, questo viene usato ancora oggi per gestire grandi quantità di dati. Inoltre, sistemi più recenti hanno raccolto numerose funzioni di Apache Hive. Vale quindi la pena di dare un’occhiata a Hive e alle sue applicazioni più importanti.

Cos’è Apache Hive?

Apache Hive è un’estensione scalabile dell’applicazione server Apache e dell’architettura Apache Hadoop. Nelle architetture Hadoop, compiti complessi sono scomposti in piccoli processi e distribuiti in modo parallelo su computer cluster dai nodi mediante il clustering. In tal modo è possibile gestire grandi quantità di dati anche con server e computer dall’architettura standard. Apache Hive è un sistema integrato di interrogazione e analisi su base open source per il tuo data warehouse. Grazie a Hive i dati possono essere analizzati, interrogati e compilati con HiveQL, un linguaggio per banche dati simile a SQL. Inoltre, i dati Hadoop sono accessibili anche a gruppi più grandi di utenti.

Nel caso di Hive viene usata una sintassi simile a quella di SQL:1999 per strutturare programmi, applicazioni e banche dati o anche per integrare degli script. Prima di Hive, per usare l’interrogazione di dati era necessario conoscere il linguaggio e la programmazione in Java. Hive è in grado di tradurre le interrogazioni in un formato adatto alle banche dati. Ad esempio, può trattarsi di job MapReduce. Con Hive è possibile integrare altre applicazioni SQL nel framework Hadoop. A causa dell’ampia diffusione di SQL, questo sistema facilita (in quanto estensione di Hadoop) il lavoro con database e grandi quantità di dati anche per le persone non esperte.

Come funziona Hive?

Prima che Apache Hive completasse il framework Hadoop, l’ecosistema Hadoop si fondava ancora sul Framework MapReduce sviluppato da Google. Nel caso di Hadoop 1, questo era ancora implementato direttamente nel framework come motore indipendente per l’amministrazione, il monitoraggio e la gestione delle risorse e dei processi di calcolo. Questo a sua volta richiedeva una conoscenza approfondita di Java per poter interrogare con successo i file di Hadoop.

Le funzioni principali di Hadoop per l’utilizzo e la gestione dei Big Data consistono quindi in:

  • Raccolta dei dati
  • Interrogazione
  • Analisi

Il funzionamento di Hive si basa su un semplice principio: con un’interfaccia simile a SQL è possibile tradurre comodamente interrogazioni e analisi di file Hadoop per HiveQL in moduli di elaborazione MapReduce, Spark o Tez. Allo stesso modo Hive organizza i file del framework Hadoop in un formato compatibile con HDFS. HDFS è sinonimo di Hadoop Distributed File System. L’interrogazione mirata di dati avviene su cluster specifici e nodi del sistema Hadoop. Come funzioni standard sono disponibili anche filtri, aggregazioni e join.

Hive si basa sul principio schema-on-read

Al contrario dei database relazionali che lavorano secondo il principio SoW (schema-on-write), Hive si basa sul principio SoR (Schema-on-Read). Questo significa che i dati nel framework Hadoop sono salvati inizialmente senza modifiche e non in uno schema predefinito. È possibile adattare i dati a uno schema solo mediante un’interrogazione Hive. Il vantaggio, soprattutto per quanto riguarda il cloud computing è la maggiore scalabilità, più flessibilità e tempi di caricamento più rapidi dei database distribuiti sul cluster.

Com’è possibile lavorare con i dati in Hive?

Le tabelle Apache Hive vengono usate secondo uno schema di accesso in lettura per interrogare e analizzare le informazioni con Hive. Hive ti consente di organizzare e ordinare tali dati in queste tabelle in unità dettagliate più piccole o in grandi unità generali. Le tabelle Hive sono suddivise in cosiddetti “bucket”, ovvero blocchi di dati. Per accedere ai dati, usa il linguaggio di database HiveQL, molto simile a SQL. Le tabelle Hive possono essere sovrascritte, allegate e serializzate in database. Inoltre, ogni tabella Hive dispone di un proprio catalogo HDFS.

Consiglio

Con l’Hosting Linux di IONOS hai il tuo database sempre sotto controllo. In più godi di prestazioni scalabili, certificato SSL, protezione DDoS e server sicuri in Europa.

Le principali funzioni di Hive

Fra le funzioni centrali troviamo l’interrogazione e l’analisi di grandi quantità di dati e di database, salvate nel framework Hadoop sotto forma di file Hadoop. Un secondo compito centrale di Hive è la traduzione di interrogazioni HiveQL in incarichi MapReduce, Sparks e Tez.

Altre importanti funzioni di Hive comprendono:

  • Salvataggio di metadati in sistemi di gestione di database relazionali
  • Utilizzo di dati compressi in sistemi Hadoop
  • UDF (User Defined Functions) per l’elaborazione personalizzata di dati e il data mining.
  • Supporto per tipi di memoria come RCFile, testo o HBase
  • Uso di MapReduce e supporto ETL

Cos’è HiveQL?

Quando si parla di Hive, spesso lo si descrive come “simile a SQL”. Il linguaggio di database HiveQL, basato su SQL, viene definito così perché questo non soddisfa al 100% standard quali SQL-92. Pertanto, HiveQL può essere inteso come una specie di dialetto SQL o MySQL. Nonostante le numerose somiglianze, i due linguaggi si differenziano per alcuni punti essenziali. Così, HiveQL sostiene solo in parte numerose funzioni SQL per transazioni o subqueries, mentre con alcune estensioni come Multitable Inserts assicura una migliore scalabilità e performance con il framework Hadoop. La traduzione di interrogazioni HiveQL in MapReduce, Tez e Spark viene eseguita dall’Apache Hive Compiler.

Consiglio

Usa un server dedicato con potenti processori Intel o AMD senza dover investire in un’infrastruttura IT all’interno della tua azienda; scegli i server di IONOS.

Sicurezza dei dati e Apache Hive

Mediante l’integrazione di Apache Hive nei sistemi Hadoop approfitti anche del servizio di autenticazione Kerberos. Questo consente l’autenticazione e la verifica chiara e reciproca del server e degli utenti. Poiché HDFS imposta anche i permessi per i nuovi file Hive sarai tu a gestire l’autorizzazione di utenti e di gruppi. Un ulteriore aspetto relativo alla sicurezza: in caso di necessità, Hive offre un ripristino di emergenza per carichi di lavoro critici.

Quali vantaggi offre Apache Hive?

Hive offre numerose funzioni utili soprattutto per quanto riguarda il lavoro con grandi quantità di dati nel cloud computing o in caso di Big Data as a Service:

  • Interrogazioni ad-hoc
  • Analisi di dati
  • Creazione di tabelle e partizioni
  • Supporto per collegamenti logici, relazionali e aritmetici
  • Monitoraggio e verifica di transazioni
  • Report di fine giornata
  • Caricamento di risultati delle interrogazioni nei cataloghi HDFS
  • Trasferimento di dati delle tabelle in directory locali

Fra i vantaggi principali annoveriamo:

  • La capacità di ottenere approfondimenti qualitativi su grandi quantità di dati, ad esempio il data mining e l’apprendimento automatico
  • Scalabilità ottimizzata, efficienza dei costi ed espansibilità del framework Hadoop
  • Segmentazione di gruppi di utenti attraverso analisi clickstream
  • Grazie a HiveQL non sono necessarie conoscenze approfondite delle tecniche di programmazione Java
  • Vantaggio competitivo grazie a prestazioni e reattività più rapide e scalabili
  • La capacità di memorizzare fino a centinaia di petabyte di dati e di eseguire fino a 100.000 interrogazioni di dati all’ora, anche senza un’infrastruttura di alto livello
  • Migliore utilizzo delle risorse grazie alla capacità di virtualizzazione e, di conseguenza, tempi di calcolo e di caricamento più rapidi a seconda dei carichi di lavoro
  • Sicurezza dei dati efficace e tollerante agli errori grazie a migliori opzioni di disaster recovery e al servizio di autenticazione Kerberos
  • Facoltà di accelerare l’inserimento dei dati eliminando la necessità di adattarli ai formati interni dei database (Hive legge e analizza i dati anche senza una modifica manuale del formato)
  • Funziona secondo il principio dell’open source

Quali svantaggi offre Apache Hive?

Fra gli svantaggi di Apache Hive vi è in prima linea il fatto che esistono già numerosi sistemi che offrono simili e migliori prestazioni. Nell’amministrazione e nell’uso di database, Hive è considerato dagli esperti e dalle esperte sempre meno utile e rilevante.

Ulteriori svantaggi di Hive sono:

  • Impossibilità di accesso ai dati in tempo reale
  • Elaborazione complessa e aggiornamento di database grazie al framework Hadoop con MapReduce
  • Latenza elevata e quindi, per i canoni odierni, maggiore lentezza rispetto ai sistemi della concorrenza

L’architettura di Hive: una panoramica

I principali componenti dell’architettura Hive sono:

  • Metastore: è il luogo centrale di Hive in cui vengono salvati i dati, dove si trovano tutti i dati e le informazioni in formato RDBMS, come le definizioni delle tabelle, la posizione dello schema e delle directory e i metadati delle partizioni.
  • Driver: accetta i comandi HiveQL e li elabora con i componenti compiler (raccoglie le informazioni), optimizer (determina il metodo di esecuzione migliore) ed executor (esegue il compito).
  • Command Line + User Interface: interfaccia per utenti esterni
  • Thrift Server: consente ai client esterni di comunicare con Hive e permette ai protocolli JDBC e ODBC di interagire e comunicare mediante la rete
architettura-apache-hive.png
Per l’elaborazione e l’interrogazione di grandi quantità di dati Hive offre numerosi vantaggi alla tua azienda.

Come è nato Apache Hive?

Apache Hive è stato progettato per semplificare il lavoro con insiemi di dati da petabyte anche per gli utenti che non hanno conoscenze approfondite di SQL. È stato ideato e sviluppato da Joydeep Sen Sharma e Ashish Thusoo che nel 2007, mentre lavoravano per Facebook, hanno sviluppato Hive per il framework Hadoop di Facebook, uno dei principali al mondo con diverse centinaia di petabyte. Nel 2008 Facebook ha ceduto il progetto Hive alla comunità open source. La versione 1.0 è stata rilasciata nel febbraio 2015.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top