avatar

ETL on cloud @ Giuseppe Checchia | Giovedì 29 Settembre 2022 | 6 minuti

Con questo articolo, chiudiamo il cerchio con l’ETL: dopo aver visto cos’è e come funziona e quali strumenti abbiamo a disposizione sul mercato da installare localmente od on-premise, vediamo quali soluzioni abbiamo a disposizione on-cloud.

Cosa vedrai

Intro

Uno strumento ETL, che vogliate acquistarlo o costruirlo da voi, deve avere alcune caratteristiche non-tecniche che lo rendano facile da utilizzare, adattabile al progresso tecnologico e, soprattutto, efficace.

Ammesso che vogliamo seguire i trend tecnologici, dovrebbe quindi essere anche cloud-native, cioè avere un proprio cloud di archiviazione.

Gli strumenti ETL tradizionali sono progettati, generalizzando, per girare on-premise.

Questi strumenti non saranno in grado di raggiungere il beneficio della scalabilità e della velocità del cloud.

I servizi cloud più affidabili, sexy e famosi per l’ETL sono tre: AWS Glue, Redshift e Google Functions.

Glue

Glue è stato rilasciato nell’agosto 2017. Da allora, ha visto molti aggiornamenti periodici. Lo scopo di Glue è quello di consentire agli utenti di scoprire, preparare e combinare facilmente i dati.

Creare un flusso di lavoro che realizzi in modo efficiente i processi di cui sopra può richiedere molto tempo.

È qui che entra in gioco Glue. Si tratta di un servizio ETL completamente gestito, specificamente progettato per gestire grandi quantità di dati.

Il suo compito è quello di estrarre i dati da diversi altri servizi AWS e incorporarli in data lake e data warehouse.

Glue è molto flessibile e facile da usare perché fornisce sia interfacce basate su codice che visive.

Un’aggiunta molto popolare e recente è DataBrew. Utilizzando Glue, i dati di DataBrew possono essere puliti,
normalizzati e persino arricchiti senza nemmeno scrivere codice, mentre Glue Elastic Views rende molto semplice la combinazione e la replica dei dati attraverso diversi data store utilizzando un servizio SQL.

Esempio di flusso di monitoraggio e esecuzione con AWS Glue Esempio di flusso di monitoraggio e esecuzione con AWS Glue

Amazon Redshift

Amazon Redshift è un servizio di data warehouse completamente gestito in-cloud, che permette di memorizzare da poche centinaia di gigabyte fino a un petabyte di dati e anche di più. Redshift consente prestazioni di query veloci per l’analisi dei dati su quasi tutti i set di dati di qualsiasi dimensione grazie al Massively Parallel Processing (abbreviato in MPP).

In altre parole, i database MPP sono di solito più flessibili, scalabili e convenienti dei sistemi tradizionali.

Esempio di architettura con Redshift Esempio di architettura con Redshift

Google Cloud Functions

In ultimo, Google Cloud Functions è uno strumento di integrazione dati cloud-native.

È uno strumento ETL completamente gestito da Google Cloud che permette l’integrazione dei dati su qualsiasi scala.

È costruito con un nucleo open-source, CDAP per la portabilità della vostra pipeline. Offre un’interfaccia visiva “punta e clicca” che permette la distribuzione senza codice delle pipeline ETL. Oltre all’integrazione nativa con Google Cloud Services, offre anche più di 150 connettori e trasformazioni preconfigurate a costo zero.

Inoltre… L’ETL è strettamente legato a una serie di altre funzioni, processi e tecniche di integrazione dei dati. Comprenderli fornisce una visione più chiara di come funziona l’ETL.

  • SQL: il linguaggio query strutturato è il metodo più comune per accedere e trasformare i dati in un database.
  • Trasformazioni, regole di business e adattatori: dopo aver estratto i dati, l’ETL usa le regole di business per trasformare i dati in nuovi formati. I dati trasformati vengono poi caricati nel target.
  • Mappatura dei dati: la mappatura dei dati fa parte del processo di trasformazione. La mappatura fornisce istruzioni dettagliate ad un’applicazione su come ottenere i dati che ha bisogno di elaborare. Descrive anche quale campo sorgente corrisponde a quale campo di destinazione. Per esempio, il terzo attributo di un feed di dati sull’attività di un sito web potrebbe essere il nome dell’utente, il quarto potrebbe essere l’orario di quando l’attività è avvenuta e il quinto potrebbe essere il prodotto su cui l’utente ha cliccato. Un’applicazione o un processo ETL che usa quei dati dovrebbe mappare questi stessi campi o attributi dal sistema di origine (cioè, il feed di dati sull’attività del sito web) nel formato richiesto dal sistema di destinazione. Se il sistema di destinazione fosse un sistema di gestione delle relazioni con i clienti, potrebbe memorizzare il nome dell’utente per primo e la marca temporale per quinto e potrebbe non memorizzare affatto il prodotto selezionato. In questo caso, una trasformazione per formattare la data nel formato previsto (e nel giusto ordine), potrebbe avvenire tra il momento in cui i dati vengono letti dalla fonte e scritti nella destinazione, cioè durante lo stream.
  • Script: l’ETL è un metodo per automatizzare gli script (insieme di istruzioni) che vengono eseguiti dietro le quinte per spostare e trasformare i dati. Prima dell’ETL, gli script venivano scritti individualmente per trasferire i dati tra sistemi specifici. Questo si traduceva in database multipli che eseguivano numerosi script e l’orchestrazione era mind-blowing. I primi strumenti ETL, storicamente, giravano sui mainframe come processi batch. L’ETL è poi migrato alle piattaforme UNIX e PC. Le organizzazioni oggi usano ancora sia gli script che programmi per lo spostamento dei dati, ma cercano di orchestrare con strumenti specifici.
  • ETL contro ELT: all’inizio c’era ETL. Più tardi le organizzazioni hanno prodotto l’ELT, un metodo complementare. ELT estrae i dati da un sistema sorgente, li carica in un sistema di destinazione e poi usa la potenza di elaborazione del sistema sorgente per condurre le trasformazioni. Questo accelera l’elaborazione dei dati perché avviene dove i dati vivono. La verità è che siamo fra il sofismo e il super-tecnico: ai fini di questo articolo, basti sapere che tutti abbiamo molti dati e trasformarli non è sempre banale.
  • Qualità dei dati: prima che i dati vengano integrati, viene spesso creata un’area di sosta (mai sentito parlare di “Area di appoggio” o “Tabella di appoggio”?) dove i dati possono essere puliti, i valori dei dati possono essere standardizzati, gli indirizzi possono essere verificati e i duplicati possono essere rimossi. Tipicamente, questi dati di appoggio sono intaccati da processi schedulati a livello di sistema, ma in alcuni casi l’elaborazione può avvenire anche direttamente a livello di database: questo approccio evita la duplicazione dei dati e previene la necessità di usare capacità extra sulla piattaforma e può avere senso qualora ci fossero specifiche condizioni legate all’hardware a disposizione.
  • Web services/API: i servizi web sono un metodo basato su internet per fornire dati o funzionalità a varie applicazioni in tempo quasi reale. Questo metodo semplifica i processi di integrazione dei dati. Per esempio, presupponiamo che un cliente contatti il nostro call center: potremmo creare un servizio web che restituisca il profilo completo del cliente con un tempo di risposta inferiore al secondo, semplicemente passando un numero di telefono a un servizio web che estrae i dati da più fonti o da un hub MDM. Con una conoscenza più ricca del cliente, il rappresentante del servizio clienti può prendere decisioni migliori su come interagire con lui.
  • Virtualizzazione dei dati: la virtualizzazione è un metodo agile di fusione dei dati per creare una visione virtuale dei dati senza spostarli. La virtualizzazione dei dati differisce dall’ETL, perché anche se la mappatura e l’unione dei dati avvengono ancora, non c’è bisogno di una tabella fisica per memorizzare i risultati. Questo perché la vista è spesso memorizzata nella memoria e nella cache per migliorare le prestazioni.

E tu, hai altri hint riguardo ETL?

Se ti è piaciuto questo articolo, non ti dimenticare di commentare e condividere! ⬇️

Contatti

Ti potrebbe interessare anche...

avatar

Social