PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

I migliori strumenti ETL per la migrazione a PostgreSQL

Cos'è ETL?

ETL si riferisce a Extract, Transform and Load, è un processo in 3 fasi applicato per estrarre i dati da varie fonti (che possono esistere in varie forme), pulire e caricare in un database di destinazione per l'analisi. ETL è un processo popolare nel mondo del data warehousing in cui i dati provenienti da varie origini dati vengono integrati e caricati in un database di destinazione per l'esecuzione di analisi e reportistica per le aziende. In parole povere, ETL viene utilizzato per estrarre i dati da un'origine dati come un database o un file e quindi ripuliti, trasformati in base ai requisiti aziendali e quindi caricati nel database di destinazione.

Il processo ETL esiste sotto forma di vari strumenti. Esistono alcuni strumenti ETL popolari che sono ampiamente utilizzati dalle aziende per soddisfare i diversi requisiti di migrazione dei dati. Sebbene questi strumenti esistano, non vi è alcuna garanzia che i requisiti di migrazione dei dati vengano soddisfatti immediatamente, motivo per cui i DBA e gli sviluppatori spesso scelgono di creare ETL personalizzati per superare complesse sfide di migrazione dei dati in tempo reale.

Perché ETL?

Ogni volta che c'è un requisito per la migrazione dei dati, la prima cosa che i DBA o gli sviluppatori cercano è uno strumento ETL. I dati possono esistere in diverse forme; nel database RDBMS, file flat, CSV ecc., e il requisito sarebbe migrare, integrare tutti questi dati in un unico database o se il database di destinazione è diverso, il processo di trasformazione dei dati diventerebbe critico. Queste sfide possono essere affrontate da strumenti ETL che possono far risparmiare costi e tempo lavorativo. Nel mondo odierno, la mancanza di strumenti specifici per ETL può costare alle organizzazioni notevoli sforzi di sviluppo e denaro per costruire un processo automatizzato efficiente per la migrazione dei dati. Grazie al mondo open source, ci sono alcuni popolari strumenti ETL open source che possono affrontare complesse sfide di migrazione dei dati in tempo reale.

Sebbene vi siano vari motivi per migrare i dati, vorrei concentrarmi su due requisiti tipici per la migrazione dei dati...

  • Migrare i dati da diverse fonti (database, file flat e CSV) in un unico database in un ambiente di data warehousing presumibilmente un database open source che ridurrebbe significativamente il TCO per la creazione del Ambienti DWH. Questa sarebbe un'opzione praticabile poiché le applicazioni in tempo reale utilizzeranno i database commerciali esistenti e il DWH ospiterà i dati su un database open source
  • Migra i database e le applicazioni in tempo reale dai database commerciali ai database open source come PostgreSQL per costi molto inferiori delle operazioni sui dati per le aziende.

Il mio obiettivo in questo blog sarebbe identificare gli strumenti ETL che possono aiutare a eseguire migrazioni di dati al database PostgreSQL.

Perché migrare a PostgreSQL?

PostgreSQL è un database open source ricco di funzionalità, di classe enterprise, che è la prima opzione che le aziende scelgono per i loro vari requisiti operativi di dati in tempo reale e ha implementazioni in vari ambienti mission-critical. Dopo aver realizzato il potenziale di questo database RDBMS altamente affidabile ed efficiente, sempre più aziende scelgono di migrare i propri database e applicazioni su di esso. La migrazione dei database esistenti a PostgreSQL comporta riduzioni significative dei costi IT, per cui "Migrazioni a PostgreSQL" è un requisito abbastanza comune in questi giorni e arriva il requisito per la migrazione dei dati, che è il punto in cui inizia la ricerca di uno strumento ETL.

Come detto sopra, esistono numerosi strumenti ETL commerciali e open source e praticamente tutti gli strumenti supportano PostgreSQL.

Scarica il whitepaper oggi Gestione e automazione di PostgreSQL con ClusterControlScopri cosa devi sapere per distribuire, monitorare, gestire e ridimensionare PostgreSQLScarica il whitepaper

Quali sono i migliori strumenti ETL?

Ora2pg

Ora2pg è L'OPZIONE se hai intenzione di migrare i dati dal database Oracle a PostgreSQL. È uno strumento open source basato su Perl sviluppato appositamente per migrare schemi, dati dai database Oracle a PostgreSQL e comprende entrambi i database molto bene e può migrare dati di qualsiasi dimensione. La migrazione di oggetti di grandi dimensioni di dimensioni maggiori può essere costosa in termini di tempo e hardware.

Pro: Ora2pg è uno strumento molto popolare utilizzato per la migrazione specifica dei database Oracle a PostgreSQL. Supporta i sistemi operativi Windows e Linux e utilizza l'interfaccia testuale. Questo strumento comprende entrambi i database molto bene ed è abbastanza affidabile dal punto di vista della funzionalità. Quando abbiamo migrato i dati in un ambiente di produzione, l'esercizio di analisi dei dati (o integrità dei dati) ha portato a "0" difetti dei dati, il che è piuttosto notevole. Abbastanza efficiente nella migrazione di tipi di dati come Data/Timestamp e Oggetti di grandi dimensioni. Facile da pianificare i lavori tramite script di shell in background. La risposta dello sviluppatore per eventuali problemi su github è buona.

Contro: La procedura di installazione di Ora2pg, che include l'installazione di moduli Perl, client Oracle e Postgres, potrebbe diventare una faccenda complessa a seconda della versione del sistema operativo e ancora più complessa quando si esegue lo stesso su sistema operativo Windows. Potrebbero esserci notevoli problemi di prestazioni durante la migrazione di tabelle di grandi dimensioni con "Oggetti di grandi dimensioni" in parallelo (questo significa un lavoro ora2pg con più thread) che possono portare a un cambiamento significativo della strategia di migrazione dei dati.

Racconto

Talend è uno strumento ETL molto popolare utilizzato per migrare i dati da qualsiasi fonte (database o file) a qualsiasi database. Questo strumento supporta il database PostgreSQL e molte aziende utilizzano questo strumento per migrare i dati su PostgreSQL. Esistono sia versioni commerciali che open source di questo strumento e quella open source dovrebbe essere utile per la migrazione dei dati.

Pro: Talend è uno strumento ETL basato su java utilizzato per l'integrazione dei dati e supporta PostgreSQL. Uno strumento facile da installare viene fornito con una GUI con versioni sia open source che commerciali. Può essere eseguito su qualsiasi piattaforma che supporta Java. Gli sviluppatori possono scrivere codice Java personalizzato che può essere integrato in Talend. Non è un grosso problema se devi istruire uno sviluppatore o un DBA a utilizzare questo strumento per migrare i dati su PostgreSQL. Può migrare o integrare dati da più origini come un database o un file.

Contro: La pianificazione dei lavori potrebbe essere una sfida. Può essere utilizzato principalmente per migrare tabelle di dimensioni ragionevoli senza molte opzioni di ottimizzazione per il miglioramento delle prestazioni. Potrebbe non essere un'ottima opzione per migrare tabelle di dimensioni enormi con milioni di righe. Potrebbe comportare sfide operative di base. Richiede esperienza Java per gestire questo strumento, specialmente durante l'integrazione del codice personalizzato. Non è facile ottenere livelli di comfort su questo strumento in breve tempo. Non è possibile eseguire script e pianificare i processi di migrazione dei dati.

SQLINES

Sqlines è un altro strumento ETL open source che può migrare i dati da e verso qualsiasi database. Questa è un'altra buona opzione per migrare i dati ai database PostgreSQL praticamente da qualsiasi database commerciale o open source. Personalmente sono impressionato da questo strumento. È sviluppato utilizzando C/C++ ed è molto semplice da usare senza complicazioni durante il processo di installazione (basta scaricare e rimuovere il programma di installazione e il gioco è fatto!). Poiché si tratta di uno strumento basato su C/C++, potrebbero verificarsi grandi vantaggi in termini di prestazioni durante la migrazione di database di grandi dimensioni. Direi che questo strumento si sta evolvendo e i costi di abbonamento per il supporto sono molto ragionevoli.

Pro: Come accennato in precedenza, sono impressionato dal fatto che questo strumento sia costruito sulla base di C/C++, il che è un enorme vantaggio. Abbastanza facile e semplice da installare e configurare. Utilizza un'interfaccia testuale che semplifica la pianificazione dei lavori tramite script bash. Può gestire volumi di dati di grandi dimensioni. Il supporto degli sviluppatori è buono a un costo molto ragionevole. Gli sviluppatori sono aperti a prendere le tue idee e implementarle, il che la rende un'opzione ancora migliore.

Contro: Non molte persone conoscono questo strumento e si sta evolvendo. Non ci sono molte opzioni di configurazione per giocare. C'è una strada da percorrere affinché questo strumento diventi competitivo che non è lontano. Potresti imbatterti in sfide operative di base.

Pentaho

Pentaho è un altro strumento di migrazione e integrazione dei dati che ha ancora versioni commerciali e open source che possono migrare i dati da qualsiasi origine dati a qualsiasi database. Questa è anche un'opzione per migrare i dati su PostgreSQL. Questo strumento supporta un'ampia gamma di database e opera su uno spazio più ampio con funzionalità di visualizzazione dei dati.

Pro: Pentaho è uno strumento basato su Java, opera in modalità GUI e può essere eseguito su sistemi operativi come Windows, Unix e Linux. Funziona su uno spazio molto più grande ed è molto bravo a trasformare i dati ea scopi di visualizzazione. Come accennato in precedenza, supporta un'ampia gamma di archivi dati.

Contro: non è uno strumento semplice che può semplicemente estrarre i dati e caricarli nel database di destinazione. Il processo di migrazione dei dati può essere complesso e richiedere molto tempo. Si concentra fortemente sulla trasformazione, pulizia, integrazione e visualizzazione dei dati. Lo strumento non è una buona scelta per migrare semplicemente i dati da un database a un altro database senza trasformazioni di dati o esercizi di pulizia. Le prestazioni possono essere una sfida durante la migrazione di grandi volumi di dati.

ETL personalizzato: Non è un'esagerazione affermare che gli ETL personalizzati sono uno dei modi più comuni per realizzare un processo ETL end-to-end efficiente e altamente performante. DBA, gli sviluppatori che si trovano in questa situazione non sono una sorpresa. Sarebbe impossibile per un singolo ETL comprendere la complessità dei dati, la forma dei dati, le sfide ambientali. Esempio:durante la migrazione di dati da più database diversi in un data center con modelli di dati complessi a un database PostgreSQL ospitato in un altro data center o cloud pubblico. In una situazione del genere, la sola caccia al miglior ETL può finire in una caccia all'oca. Quindi, scegliere un ETL personalizzato è la strada da percorrere se vuoi creare un processo ETL specifico per l'ambiente e per i dati.

Pro: Un'ottima alternativa per le organizzazioni con ambienti complessi e dati complessi in cui non è possibile trovare un ETL che risolva tutti i problemi di migrazione dei dati. Può essere molto utile in termini di funzionalità e prestazioni. Può ridurre tempi e costi quando si tratta di correggere bug e difetti nello strumento. Le operazioni ETL critiche, complesse e pesanti possono essere rese altamente performanti e affidabili poiché gli sviluppatori hanno il pieno controllo dello strumento. La flessibilità non ha confini. È una buona opzione quando si esaminano funzionalità al di là degli strumenti ETL e possono affrontare qualsiasi livello di complessità. Se hai scelto tecnologie come Java o Python per creare ETL personalizzati, si integrano molto bene con PostgreSQL.

Contro: La creazione di un ETL personalizzato può richiedere molto tempo. Sono necessari sforzi significativi di progettazione e sviluppo per affrontare tutti i requisiti di migrazione dei dati e altre sfide dei dati. Di seguito sono elencate alcune delle sfide con cui gli ETL personalizzati devono tenere il passo, che potrebbero richiedere uno sforzo di sviluppo significativo e tempo per i miglioramenti:

  • Cambiamenti ambientali
  • Modifiche all'architettura dell'infrastruttura e del database che incidono sulle operazioni ETL
  • Modifiche al tipo di dati
  • Crescita del volume di dati che ha un impatto significativo sulle prestazioni della migrazione dei dati
  • Struttura dello schema o modifiche al design
  • Qualsiasi modifica critica del codice all'ETL, deve essere sottoposta a sviluppo e test prima di andare in produzione, questo può richiedere molto tempo

In generale, gli sviluppi ETL non sono considerati la parte critica del budget del progetto in quanto non fanno parte delle normali applicazioni aziendali o del processo di sviluppo del database. Non sorprende che le aziende non scelgano di creare un ETL personalizzato poiché sorgono problemi di budget, risorse o tempo.

Qual ​​è il miglior strumento ETL?

Bene, non c'è una risposta semplice. Tutto dipende dalle vostre esigenze e dall'ambiente. La scelta di un ETL per la migrazione dei dati a PostgreSQL dipende da vari fattori, sarà necessario comprendere i fattori che influiscono sulla migrazione dei dati. Di seguito sono riportati la maggior parte di loro...

  • Comprendi i tuoi dati
  • Complessità dei dati
  • Tipi di dati
  • Fonte dati
  • Dimensione dei dati
  • Come sono i dati di origine? in un database? in un file piatto? Strutturato o non strutturato? ecc. ecc.
  • Quali passaggi comporterà il tuo esercizio di migrazione dei dati? Le tue aspettative dallo strumento.

Se conosci quanto sopra, sarai quasi in grado di scegliere uno strumento ETL. L'analisi dei fattori di cui sopra ti aiuterebbe a valutare le caratteristiche e le capacità di ciascuno strumento ETL. Gli esperti tecnici che effettuano la migrazione dei dati generalmente considerano uno strumento ETL efficiente, flessibile e altamente performante.

Alla fine della giornata non è una sorpresa se finisci per selezionare più strumenti ETL o addirittura finisci per sviluppare uno strumento personalizzato da solo.

Ad essere onesti, è difficile consigliare un solo strumento ETL senza conoscere i requisiti dei dati. Suggerirei invece che uno strumento dovrebbe avere le seguenti caratteristiche per progettare un processo di migrazione dei dati efficiente e altamente performante...

  • Deve utilizzare un'interfaccia testuale con un numero sufficiente di opzioni di configurazione
  • Deve essere in grado di migrare grandi quantità di dati in modo efficiente utilizzando in modo efficace più CPU e la memoria
  • Sarebbe utile se lo strumento potesse essere installato su più sistemi operativi. Alcuni strumenti specifici di PostgreSQL supportano solo Windows, il che può porre problemi dal punto di vista dei costi, dell'efficienza e delle prestazioni
  • Deve essere in grado di comprendere i dati di origine e il database di destinazione
  • Deve avere opzioni di configurazione flessibili con controllo sufficiente per collegare lo strumento a uno script bash o python, personalizzare e pianificare più lavori in parallelo
  • Deve essere progettato un processo di test ottimale per comprendere le capacità di migrazione dei dati dello strumento

Esistono strumenti GUI che sono facili da configurare e migrano i dati con un clic. Questi strumenti sono utili per la migrazione di dati di dimensioni ragionevoli in un ambiente non cloud e dipendono fortemente dall'infrastruttura e dalla capacità dell'hardware. Non ci saranno molte opzioni oltre all'aumento della capacità dell'infrastruttura per una migrazione dei dati più rapida e anche le opzioni per l'esecuzione di più lavori sono deprimenti.

Durante la migrazione dei dati a PostgreSQL, inizierei a guardare Talend o SQLines. Se ho bisogno di migrare i dati da Oracle, allora, guarderei a Ora2pg.