Scatena la potenza degli strumenti ETL per AWS

ETL sta per Estrai, Trasforma e Carica. Gli strumenti ETL estraggono i dati da varie fonti e li trasformano in un formato intermedio adatto ai sistemi di destinazione o ai requisiti del modello di dati. Infine, caricano i dati in un database di destinazione, un data warehouse o persino un data lake.

Ricordo tempi da 15 a 20 anni fa, quando il termine ETL era qualcosa che solo pochi capivano di cosa si tratta. Quando vari processi batch personalizzati hanno avuto il loro apice sull’hardware locale.

Molti progetti hanno realizzato una qualche forma di ETL. Anche se non lo sapessero, dovrebbero chiamarlo ETL. Durante quel periodo, ogni volta che spiegavo qualsiasi progetto che coinvolgesse processi ETL, e li chiamavo e li descrivevo in quel modo, sembrava quasi una tecnologia di un altro mondo, qualcosa di molto raro.

Ma oggi le cose sono diverse. La migrazione al cloud è la massima priorità. E gli strumenti ETL sono il pezzo molto strategico dell’architettura della maggior parte dei progetti.

Alla fine, migrare al cloud significa prendere i dati da on-premise come fonte e trasformarli in database cloud in una forma il più compatibile possibile con l’architettura cloud. Esattamente il lavoro dello strumento ETL.

Storia di ETL e come si collega al presente

Fonte: aws.amazon.com

Le funzioni principali di ETL erano sempre le stesse.

Gli strumenti ETL estraggono i dati da varie fonti (che si tratti di database, file flat, servizi Web o, ultimamente, applicazioni basate su cloud).

Di solito significava prendere file sul file system Unix come input e pre-elaborazione, elaborazione e post-elaborazione.

Potresti vedere il modello riutilizzabile dei nomi delle cartelle come:

  • Ingresso
  • Produzione
  • Errore
  • Archivio

Sotto quelle cartelle esisteva anche un’altra struttura di sottocartelle, principalmente basata sulle date.

Questo era solo il modo standard per elaborare i dati in arrivo e prepararli per il caricamento in una sorta di database.

Oggi non ci sono file system Unix (non come prima), forse nemmeno file. Ora ci sono le API, le interfacce di programmazione delle applicazioni. Puoi, ma non è necessario disporre di un file come formato di input.

Tutto può essere archiviato nella memoria cache. Può ancora essere un file. Qualunque cosa sia, deve seguire un formato strutturato. Nella maggior parte dei casi, ciò significa formato JSON o XML. In alcuni casi, lo farà anche il vecchio buon formato con valori separati da virgola (CSV).

Tu definisci il formato di input. Se il processo coinvolgerà anche la creazione della cronologia dei file di input dipende solo da te. Non è più un passaggio standard.

Trasformazione

Gli strumenti ETL trasformano i dati estratti in un formato adatto per l’analisi. Ciò include la pulizia dei dati, la convalida dei dati, l’arricchimento dei dati e l’aggregazione dei dati.

Come in passato, i dati sono stati sottoposti a una complessa logica personalizzata di gestione temporanea dei dati procedurali Pro-C o PL/SQL, trasformazione dei dati e passaggi di archiviazione dello schema di destinazione dei dati. Era un processo standard altrettanto obbligatorio come separare i file in arrivo in sottocartelle in base alla fase in cui il file è stato elaborato.

Perché era così naturale se allo stesso tempo era anche fondamentalmente sbagliato? Trasformando direttamente i dati in entrata senza archiviazione permanente, perdevi il più grande vantaggio dei dati grezzi: l’immutabilità. I progetti l’hanno buttato via senza alcuna possibilità di ricostruzione.

Bene, indovina un po’. Oggi, minore è la trasformazione dei dati grezzi che esegui, meglio è. Per la prima memorizzazione dei dati nel sistema, cioè. Potrebbe essere che il prossimo passo sarà una seria modifica dei dati e la trasformazione del modello di dati, certo. Ma vuoi che i dati grezzi siano archiviati nella struttura quanto più invariata e atomica possibile. Un grande cambiamento rispetto ai tempi in sede, se me lo chiedi.

Carico

Gli strumenti ETL caricano i dati trasformati in un database o data warehouse di destinazione. Ciò include la creazione di tabelle, la definizione di relazioni e il caricamento dei dati nei campi appropriati.

La fase di caricamento è probabilmente l’unica che segue lo stesso schema da secoli. L’unica differenza è un database di destinazione. Mentre in precedenza era Oracle per la maggior parte del tempo, ora può essere tutto ciò che è disponibile nel cloud AWS.

ETL nell’odierno ambiente cloud

Se prevedi di portare i tuoi dati da on-premise nel cloud (AWS), hai bisogno di uno strumento ETL. Non se ne può fare a meno, motivo per cui questa parte dell’architettura cloud è diventata probabilmente il pezzo più importante del puzzle. Se questo passaggio è sbagliato, seguirà qualsiasi altra cosa dopo, condividendo lo stesso odore ovunque.

E sebbene ci siano molte competizioni, mi concentrerei ora sulle tre con cui ho più esperienza personale:

  • Servizio di migrazione dei dati (DMS): un servizio nativo di AWS.
  • Informatica ETL – probabilmente il principale attore commerciale nel mondo ETL, che ha trasformato con successo il proprio business da on-premise a cloud.
  • Matillion per AWS: un attore relativamente nuovo all’interno degli ambienti cloud. Non nativo di AWS, ma nativo del cloud. Con niente come la storia paragonabile a Informatica.

AWS DMS come ETL

Fonte: aws.amazon.com

AWS Data Migration Services (DMS) è un servizio completamente gestito che consente di migrare i dati da diverse origini ad AWS. Supporta più scenari di migrazione.

  • Migrazioni omogenee (ad esempio, da Oracle ad Amazon RDS per Oracle).
  • Migrazioni eterogenee (ad esempio, da Oracle ad Amazon Aurora).

DMS può eseguire la migrazione dei dati da varie origini, inclusi database, data warehouse e applicazioni SaaS, a varie destinazioni, tra cui Amazon S3, Amazon Redshift e Amazon RDS.

AWS tratta il servizio DMS come lo strumento definitivo per portare i dati da qualsiasi origine di database a destinazioni native del cloud. Sebbene l’obiettivo principale di DMS sia solo la copia dei dati nel cloud, fa anche un buon lavoro nel trasformare i dati lungo il percorso.

Puoi definire attività DMS in formato JSON per automatizzare vari processi di trasformazione durante la copia dei dati dall’origine alla destinazione:

  • Unisci più tabelle o colonne di origine in un unico valore.
  • Dividi il valore di origine in più campi di destinazione.
  • Sostituisci i dati di origine con un altro valore di destinazione.
  • Rimuovi tutti i dati non necessari o crea dati completamente nuovi in ​​base al contesto di input.

Ciò significa che sì, puoi sicuramente utilizzare DMS come strumento ETL per il tuo progetto. Forse non sarà così sofisticato come le altre opzioni di seguito, ma farà il suo lavoro se definisci chiaramente l’obiettivo in anticipo.

Fattore di idoneità

Sebbene DMS fornisca alcune funzionalità ETL, si tratta principalmente di scenari di migrazione dei dati. Ci sono alcuni scenari in cui potrebbe essere meglio utilizzare DMS invece di strumenti ETL come Informatica o Matillion, tuttavia:

  • DMS è in grado di gestire migrazioni omogenee in cui i database di origine e di destinazione coincidono. Questo può essere un vantaggio se l’obiettivo è migrare i dati tra database dello stesso tipo, ad esempio da Oracle a Oracle o da MySQL a MySQL.
  • DMS fornisce alcune funzionalità di base per la trasformazione e la personalizzazione dei dati, ma potrebbe non essere super maturo a tale riguardo. Questo può comunque essere un vantaggio se hai esigenze limitate di trasformazione dei dati.
  • La qualità dei dati e le esigenze di governance sono, in generale, piuttosto limitate con DMS. Ma quelle sono aree che possono essere migliorate nelle fasi successive del progetto con altri strumenti, più determinati a tale scopo. Potrebbe essere necessario che la parte ETL sia eseguita nel modo più semplice possibile. Allora DMS è la scelta perfetta.
  • DMS può essere un’opzione più conveniente per le organizzazioni con budget limitati. DMS ha un modello di prezzo più semplice rispetto agli strumenti ETL come Informatica o Matillion, che possono rendere più facile per le organizzazioni prevedere e gestire i propri costi.
  • Miliardi di ETL

    Fonte: www.matillion.com

    è una soluzione cloud-native e puoi utilizzarla per integrare dati da varie fonti, inclusi database, applicazioni SaaS e file system. Offre un’interfaccia visiva per la creazione di pipeline ETL e supporta vari servizi AWS, tra cui Amazon S3, Amazon Redshift e Amazon RDS.

    Matillion è facile da usare e può essere una buona scelta per le organizzazioni che non conoscono gli strumenti ETL o con esigenze di integrazione dei dati meno complesse.

    D’altra parte, Matillion è una specie di tabula rasa. Ha alcune funzionalità potenziali predefinite, ma è necessario codificarlo in modo personalizzato per dargli vita. Non puoi aspettarti che Matillion faccia il lavoro per te fuori dagli schemi, anche se la capacità è lì per definizione.

    Matillion si descriveva spesso anche come ELT piuttosto che come strumento ETL. Ciò significa che è più naturale per Matillion eseguire un caricamento prima della trasformazione.

    Fattore di idoneità

    In altre parole, Matillion è più efficace nel trasformare i dati solo una volta che sono già archiviati nel database rispetto a prima. La ragione principale di ciò è l’obbligo di scripting personalizzato già menzionato. Poiché tutte le funzionalità speciali devono essere prima codificate, l’efficacia dipenderà in gran parte dall’efficacia del codice personalizzato.

    È naturale aspettarsi che questo venga gestito meglio nel sistema di database di destinazione e lasciare a Matillion solo un semplice compito di caricamento 1:1, molte meno opportunità di distruggerlo con codice personalizzato qui.

    Sebbene Matillion fornisca una gamma di funzionalità per l’integrazione dei dati, potrebbe non offrire lo stesso livello di qualità dei dati e funzionalità di governance di altri strumenti ETL.

    Matillion può aumentare o diminuire la scalabilità in base alle esigenze dell’organizzazione, ma potrebbe non essere altrettanto efficace per la gestione di grandi volumi di dati. L’elaborazione parallela è piuttosto limitata. A questo proposito, Informatica è sicuramente una scelta migliore perché è più avanzata e ricca di funzionalità allo stesso tempo.

    Tuttavia, per molte organizzazioni, Matillion for AWS può fornire una scalabilità sufficiente e capacità di elaborazione parallela per soddisfare le loro esigenze.

    Informatica ETL

    Fonte: www.informatica.com

    Informatica per AWS è uno strumento ETL basato su cloud progettato per aiutare a integrare e gestire i dati attraverso varie origini e destinazioni in AWS. Si tratta di un servizio completamente gestito che fornisce una gamma di funzionalità e capacità per l’integrazione dei dati, tra cui la profilazione dei dati, la qualità dei dati e la governance dei dati.

    Alcune delle caratteristiche principali di Informatica for AWS includono:

  • Informatica è progettata per aumentare o diminuire la scalabilità in base alle effettive esigenze. Può gestire grandi volumi di dati e può essere utilizzato per integrare dati provenienti da varie fonti, inclusi database, data warehouse e applicazioni SaaS.
  • Informatica offre una gamma di funzionalità di sicurezza, tra cui crittografia, controlli degli accessi e audit trail. È conforme a vari standard di settore, tra cui HIPAA, PCI DSS e SOC 2.
  • Informatica fornisce un’interfaccia visiva per la creazione di pipeline ETL, che semplifica agli utenti la creazione e la gestione dei flussi di lavoro di integrazione dei dati. Fornisce inoltre una gamma di connettori e modelli predefiniti che possono essere utilizzati per collegare i sistemi e abilitare il processo di integrazione.
  • Informatica si integra con vari servizi AWS, tra cui Amazon S3, Amazon Redshift e Amazon RDS. Ciò semplifica l’integrazione dei dati tra vari servizi AWS.
  • Fattore di idoneità

    Chiaramente, Informatica è lo strumento ETL più ricco di funzionalità nell’elenco. Tuttavia, può essere più costoso e complesso da utilizzare rispetto ad altri strumenti ETL disponibili in AWS.

    Informatica può essere costosa, soprattutto per le organizzazioni di piccole e medie dimensioni. Il modello di prezzo si basa sull’utilizzo, il che significa che le organizzazioni potrebbero dover pagare di più all’aumentare del loro utilizzo.

    Può anche essere complesso da impostare e configurare, specialmente per chi è nuovo agli strumenti ETL. Ciò può richiedere un investimento significativo in termini di tempo e risorse.

    Questo ci porta anche a qualcosa che possiamo chiamare una “curva di apprendimento complessa”. Questo può essere uno svantaggio per coloro che hanno bisogno di integrare i dati rapidamente o hanno risorse limitate da dedicare alla formazione e all’onboarding.

    Inoltre, Informatica potrebbe non essere altrettanto efficace per l’integrazione di dati provenienti da fonti non AWS. A questo proposito, DMS o Matillion potrebbero essere un’opzione migliore.

    Infine, Informatica è un sistema molto chiuso. C’è solo una capacità limitata di personalizzarlo in base alle esigenze specifiche del progetto. Devi solo convivere con la configurazione che fornisce fuori dagli schemi. Ciò limita in qualche modo la flessibilità delle soluzioni.

    Parole finali

    Come accade in molti altri casi, non esiste una soluzione adatta a tutte le dimensioni, nemmeno lo strumento ETL in AWS.

    Potresti scegliere la soluzione più complessa, ricca di funzionalità e costosa con Informatica. Ma ha senso fare di più se:

    • Il progetto è piuttosto ampio e sei sicuro che anche l’intera soluzione futura e le fonti di dati si collegheranno a Informatica.
    • Puoi permetterti di portare un team di sviluppatori e configuratori esperti di Informatica.
    • Puoi apprezzare il robusto team di supporto dietro di te e sei bravo a pagare per questo.

    Se qualcosa dall’alto non funziona, potresti provare a Matillion:

    • Se le esigenze del progetto non sono così complesse in generale.
    • Se è necessario includere alcuni passaggi molto personalizzati nell’elaborazione, la flessibilità è un requisito fondamentale.
    • Se non ti dispiace creare la maggior parte delle funzionalità da zero con il team.

    Per qualcosa di ancora meno complicato, la scelta ovvia è il DMS per AWS come servizio nativo, che probabilmente può servire bene al tuo scopo.

    Successivamente, controlla gli strumenti di trasformazione dei dati per gestire meglio i tuoi dati.