La moderna disciplina dell’ingegneria dei dati considera ETL (estratto, trasforma, carico) uno dei processi che devono essere eseguiti per gestire e trasformare i dati in modo efficace. Questo articolo spiega come creare una pipeline ETL in grado di ridimensionare e utilizzare DBT (Strumento di construct dati) per la trasformazione, il fiocco di neve come information warehouse e Apache Airflow per l’orchestrazione.
L’articolo proporrà l’architettura della pipeline, fornirà la struttura delle cartelle e descriverà la strategia di distribuzione che aiuterà a ottimizzare i flussi di dati. Alla fantastic, avrai una chiara tabella di marcia su come implementare una soluzione ETL scalabile con questi potenti strumenti.
Sfide attuali nell’ingegneria dei dati
I gruppi di ingegneria dei dati incontrano spesso molti problemi che influenzano la fluidità e l’affidabilità dei loro processi di lavoro. Alcuni dei soliti ostacoli sono:
- Assenza di lignaggio dei dati – Difficoltà nel monitoraggio della migrazione e delle modifiche dei dati in tutta la pipeline.
- Dati di cattiva qualità -irregolare, falso o privo di dati che danneggiano il processo decisionale.
- Documentazione limitata – Quando la documentazione manca o non è aggiornata, diventa difficile per le squadre afferrare e mantenere le condutture.
- Assenza di un framework di check unitari – Non esiste un meccanismo adeguato per verificare le trasformazioni e catturare presto errori.
- Codice SQL ridondante – La stessa logica esiste in molti script. Questa situazione crea un sovraccarico per la manutenzione e l’inefficienza.
La soluzione a questi problemi è una tecnica contemporanea e organizzata verso Sviluppo ETL – Uno che possiamo realizzare con DBT, fiocchi di neve e flusso d’aria. DBT è una delle principali soluzioni per i problemi di cui sopra in quanto fornisce la modularizzazione del codice per ridurre il codice ridondante, un framework di check unitario integrato e le caratteristiche dei dati combine e le funzionalità di documentazione.
Architettura dei dati della pipeline ETL moderna
Nell’architettura seguente, vengono utilizzati due repositi GIT. Il primo sarà costituito da codice DBT e DAG a flusso d’aria e il secondo repository sarà costituito da codice infrastrutturale (Terraform). Una volta che qualsiasi modifica viene apportata dallo sviluppatore e il codice viene spinto al Repo DBT, il gancio GitHub sincronizzerà il DBT Get Repo al secchio S3. Lo stesso secchio S3 verrà utilizzato nel flusso d’aria e tutti i DAG nel Repo DBT dovrebbero essere visibili nell’interfaccia utente del flusso d’aria a causa della sincronizzazione S3.
Una volta completata la sincronizzazione S3, al momento del programma, il DAG verrà invocato ed eseguito il codice DBT. comandi DBT come dbt run
, dbt run –tag: (tag_name)
ecc., possono essere utilizzati.
Con l’esecuzione del codice DBT, DBT leggerà i dati dalle tabelle di origine negli schemi di origine Snowflake e, dopo la trasformazione, scrivere sulla tabella di destinazione in Snowflake. Una volta popolata la tabella di destinazione, i report di Tableau possono essere generati sopra i dati aggregati della tabella di destinazione.
Struttura delle cartelle del progetto DBT
messa in scena/
sources/
→ Definisce le fonti di dati grezzi (advert es. Tabelle del fiocco di neve, API esterne).base/
→ standardizza i nomi delle colonne, i tipi di dati e le trasformazioni di basetransformations/
→ Applica trasformazioni in fase iniziale, come filtraggio o be part of.
intermedio/
marti/
- Diviso in aree di enterprise (f
inance/
,advertising/
,operations/
). - Contiene modelli finali per analisi e reporting.
Strategia di distribuzione
- Il repository DBT avrà due rami primari: Principal e Dev. Questi rami sono sempre mantenuti in sintonia.
- Gli sviluppatori creeranno un ramo di funzionalità da Dev per il loro lavoro.
- Il ramo di funzionalità deve essere sempre ribassata con Dev per assicurarsi che sia aggiornato.
- Una volta completato lo sviluppo sul ramo di funzionalità:
- Verrà sollevata una richiesta di pull (PR) per unire il ramo di funzionalità in Dev.
- Questo PR richiederà l’approvazione del crew di Ingegneria dati (DE).
- Dopo che le modifiche sono state unite nel ramo Dev:
- GitHub Hooks sincronizzerà automaticamente il bucket S3 dell’account AWS-Dev/STG AWS con le ultime modifiche dal repository Git.
- Gli sviluppatori possono quindi eseguire e testare i lavori nell’ambiente Dev.
- Dopo il check è completo:
- Verrà allevato un nuovo PR per unire le modifiche da Dev in Principal.
- Questo PR richiederà anche l’approvazione del crew DE.
- Una volta approvate e unite in Principal, le modifiche si sincronizzeranno automaticamente al secchio S3 nell’account Prod AWS.
Conclusione
Insieme, DBT, Snowflake e Airflow costruiscono una pipeline ETL scalabile, automatizzata e affidabile che affronta le principali sfide della qualità dei dati, del lignaggio e dei check. Inoltre, consente l’integrazione con CI/CD di abilitare il controllo, i check automatizzati e la distribuzione senza dolore, portando a un flusso di lavoro di dati forte e ripetibile. Ciò semplifica questa architettura da operare riducendo al contempo il lavoro manuale e migliorando l’affidabilità dei dati tutt’intorno.