Questo è un post collaborativo tra Databricks e Matillion. Ringraziamo David Willmer, Product Marketing di Matillion, per il suo contributo.
Sempre più clienti che modernizzano il loro Enterprise Data Warehouse legacy e le piattaforme ETL meno recenti cercano di adottare uno stack di dati cloud moderno utilizzando Databricks Lakehouse Platform e Matillion per l'ETL basato su GUI. La piattaforma ELT visuale low-code di Matillion semplifica l'integrazione dei dati da qualsiasi origine in Databricks SQL Warehouse, rendendo così i dati di analisi e AI pronti per il business e più velocemente.
Questo blog ti mostrerà come creare una pipeline ETL che carica una dimensione a variazione lenta (SCD) di tipo 2 utilizzando Matillion nella Databricks Lakehouse Platform. Matillion ha un'interfaccia utente moderna basata su browser con funzionalità ETL/ELT push-down. Puoi integrare facilmente i tuoi warehouse SQL di Databricks o i cluster con Matillion. Ora, se ti stai chiedendo come connetterti a Matillion utilizzando Databricks, il modo più semplice per farlo è utilizzare Partner Connect, che semplifica il processo di connessione di un warehouse SQL o cluster esistente nel tuo workspace Databricks a Matillion. Ecco i passaggi dettagliati.
Una SCD di tipo 2 è una tecnica comune per preservare la cronologia in una tabella delle dimensioni utilizzata in qualsiasi architettura di data warehousing/modellazione. Le righe inattive hanno un flag booleano come la colonna ACTIVE_RECORD impostata su "F" o una data di inizio e fine. Tutte le righe attive vengono visualizzate restituendo una query in cui la data di fine è nulla o ACTIVE_RECORD non è uguale a "F"
Matillion ETL for Delta Lake on Databricks utilizza un approccio in due fasi per la gestione delle dimensioni a variazione lenta di tipo 2. Questo approccio in due fasi prevede innanzitutto l'identificazione delle modifiche nei record in entrata e l'assegnazione di un flag in una tabella o vista temporanea. Una volta contrassegnati tutti i record in entrata, è possibile intervenire sulla tabella delle dimensioni di destinazione per completare l'aggiornamento.
Ora, diamo un'occhiata più da vicino all'implementazione delle trasformazioni SCD di tipo 2 utilizzando Matillion, dove la tua destinazione è una tabella Delta Lake e l'opzione di calcolo sottostante utilizzata è un Databricks SQL Warehouse.
Come vediamo nel passaggio 1 di seguito, la pipeline ETL legge i dati dalla nostra tabella delle dimensioni Delta Lake esistente e identifica solo i record più recenti o attivi (questo è il flusso di dati inferiore). Allo stesso tempo, leggeremo tutti i nostri nuovi dati, assicurandoci che la chiave primaria prevista sia univoca in modo da non interrompere il processo di rilevamento delle modifiche (questo è il flusso di dati superiore). Questi due percorsi convergono quindi nel componente di rilevamento delle modifiche.
All'interno di Matillion ETL, il componente Rileva modifiche è un meccanismo centrale per determinare gli aggiornamenti e gli inserimenti per i record modificati. Confronta un set di dati in entrata con un set di dati di destinazione e determina se i record sono Identici, Modificati, Nuovi o Eliminati utilizzando un elenco di colonne di confronto configurate all'interno del componente. Ogni record del nuovo set di dati viene valutato e gli viene assegnato un campo indicatore nell'output del componente Rileva modifiche: "I" per Identico, "C" per Modificato, "N" per Nuovo e "D" per Eliminato.
L'azione finale nel passaggio 1 di questo approccio in due fasi consiste nell'aggiungere una data di caricamento a ogni record prima di scrivere ogni nuovo record, ora contrassegnato con il suo indicatore di modifica, in una tabella Delta Lake delle dimensioni temporanea. Questo diventerà l'input del passaggio 2.
Passando al passaggio 2, iniziamo leggendo la tabella delle dimensioni intermedia o temporanea nel nostro lakehouse. Utilizzeremo il campo indicatore derivato dal componente Rileva modifiche e creeremo 3 percorsi separati utilizzando un semplice componente Filtro. Non faremo nulla per i record Identici (identificati con una "I") poiché non sono necessarie modifiche, quindi questi record vengono filtrati. Per essere espliciti nella nostra spiegazione all'interno di questo blog, abbiamo lasciato questo percorso. Tuttavia, sarebbe inutile per scopi pratici a meno che non fosse necessario fare qualcosa di specifico con questi record.
Il percorso successivo, per i record Nuovi o Modificati, genererà un nuovo record corrente per ogni record nuovo o modificato identificato. Il componente Filtro elabora solo i record con una "N" (per Nuovo) o "C" (per Modificato) come identificato dal componente Rileva modifiche. Il componente Rinomina funge da mapper di colonne per mappare i dati modificati dai campi dei nuovi record (identificati dal prefisso compare_) ai nomi effettivi delle colonne come definito dalla tabella delle dimensioni di destinazione Delta Lake. Infine, il componente "Nuovi campi" è un componente Calcolatore configurato per impostare il timestamp di scadenza dei record attivi su "infinito", identificandoli così come il record più recente.
Il percorso finale consiste nel chiudere o far scadere i record esistenti identificati come Modificati o Eliminati. Ricorda, in SCD2, le modifiche vengono aggiunte come un nuovo record (come descritto nel percorso Nuovo o Modificato sopra) e quindi ogni record precedente deve essere contrassegnato come scaduto o inattivo. Allo stesso modo, i record eliminati necessitano di una data di scadenza in modo che non siano più identificati come attivi. Qui, il percorso Modificato o Eliminato elabora ogni "C" (per Modificato) o "D" (per Eliminato) mappando le colonne appropriate che identificano in modo univoco il record per la scadenza. Una volta identificata, la data di scadenza viene impostata sul timestamp corrente e l'aggiornamento viene eseguito all'interno della tabella delle dimensioni di destinazione Delta Lake.
Ti abbiamo mostrato come implementare dimensioni a variazione lenta sulla piattaforma Databricks Lakehouse utilizzando l'integrazione dei dati low-code/no-code di Matillion. È un'opzione eccellente per tutte quelle organizzazioni che preferiscono strumenti ETL basati su GUI, come Matillion, per implementare e mantenere pipeline di data engineering, data science e machine learning sul cloud. Sblocca davvero la potenza di Delta Lake su Databricks e migliora la produttività dei dati, offrendoti le prestazioni, la velocità e la scalabilità per alimentare la tua analisi dei dati cloud.
Se desideri saperne di più sull'integrazione di Matillion e Databricks, non esitare a consultare la documentazione dettagliata qui.
Prova Databricks gratuitamente per 14 giorni.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
