Come pensiamo alle Data Pipeline sta cambiando

Come il nostro pensiero sulle Data Pipeline sta cambiando

Foto di Ali Kazal su Unsplash

L’obiettivo è rilasciare dati in produzione in modo affidabile ed efficiente

I Data Pipelines sono una serie di task organizzati in un grafo aciclico diretto o “DAG”. Storicamente, questi venivano eseguiti su pacchetti di orchestrazione dei flussi di lavoro open-source come Airflow o Prefect e richiedono infrastrutture gestite da data engineer o team di sviluppo. Questi data pipeline vengono tipicamente eseguiti su un piano e consentono ai data engineer di aggiornare dati in luoghi come data warehouse o data lake.

Ora però, sta avvenendo un grande cambiamento. Con la maturazione dell’industria dell’ingegneria dei dati, le mentalità stanno passando da una mentalità “trasferire dati per servire l’azienda a tutti i costi” a una mentalità “affidabilità ed efficienza” / “ingegneria del software”.

Integrazione e consegna continua dei dati

Ho già parlato in precedenza di come i team dei dati rilasciano dati mentre i team di sviluppo rilasciano codice.

Questo processo è chiamato “Integrazione e consegna continua dei dati” ed è il processo di rilascio affidabile ed efficiente dei dati in produzione. Ci sono differenze sottili con la definizione di “CI/CD” come usato nell’ingegneria del software, illustrato di seguito.

Immagine dell'autore

Nell’ingegneria del software, la consegna continua è complessa a causa dell’importanza di avere una replica quasi esatta per consentire al codice di funzionare in un ambiente di staging.

Nell’ingegneria dei dati, ciò non è necessario perché ciò che rilasciamo sono dati. Se c’è una tabella di dati e sappiamo che se alcune condizioni sono soddisfatte, i dati hanno una qualità sufficiente per essere utilizzati, allora ciò è sufficiente per il loro “rilascio” in produzione, per così dire.

Il processo di rilascio dei dati in produzione – l’analogia con la consegna continua – è molto semplice, poiché consiste semplicemente nella copia o clonazione di un dataset.

Inoltre, un pilastro fondamentale dell’ingegneria dei dati è reagire ai nuovi dati man mano che arrivano o verificare se ci sono nuovi dati. Non c’è un’analogia a ciò nell’ingegneria del software – le applicazioni software non hanno bisogno di…