Cos'è l'ingegneria dei dati?
L'ingegneria dei dati è la pratica di progettare, creare e mantenere sistemi che raccolgono, archiviano, trasformano e forniscono dati per l'analisi, il reporting, il machine learning e i processi decisionali. Si tratta di assicurarsi che i dati arrivino effettivamente, in tempo e in buone condizioni.
L'ingegneria dei dati è fondamentale per le organizzazioni perché rende i dati affidabili, crea pipeline che consentono un processo decisionale più rapido e migliore e permette ai dati di scalare con la crescita delle organizzazioni. L'AI, il machine learning e le analitiche avanzate si basano sull'ingegneria dei dati per avere dati ben progettati e pipeline affidabili. Una solida base di dati fa risparmiare tempo e denaro, consente la collaborazione tra i team e trasforma i dati in un vantaggio competitivo.
I data engineer trasformano i dati grezzi provenienti da fonti disparate in dati utilizzabili per ottenere informazioni dettagliate strategiche. Supportano analisti, data scientist, dirigenti, team di marketing e di prodotto/aziendali, API e app. Creano set di dati di addestramento, gestiscono le pipeline delle feature e implementano controlli degli accessi, lineage, documentazione e controlli sulla qualità dei dati.
L'ingegneria dei dati è emersa come una disciplina essenziale e continua a crescere perché i database tradizionali e gli script ad hoc non riuscivano a tenere il passo con i volumi massicci di dati sia strutturati che non strutturati. Il cloud computing è emerso per consentire l'archiviazione economica e scalabile, la compute elastica e i sistemi distribuiti gestiti, tutti necessari per le pipeline di dati distribuite su larga scala. I casi d'uso in tempo reale, di intelligenza artificiale e di machine learning hanno continuato a espandersi, rendendo obbligatori la governance dei dati, la sicurezza e la conformità. I dati sono diventati un asset fondamentale, guidando la strategia e influenzando le decisioni sui ricavi.
Ecco altre informazioni utili
Concetti fondamentali di Ingegneria dei dati
Pipeline di dati
Le pipeline di dati sono sistemi automatizzati per lo spostamento, la trasformazione e la gestione dei dati dalle origini alle destinazioni, garantendo che i dati siano affidabili, pronti all'uso e disponibili su larga scala in modo ripetibile. Pipeline affidabili sono fondamentali per garantire che i dati aggiornati fluiscano in modo costante e puntuale e che siano affidabili per consentire informazioni dettagliate tempestive. Agiscono come catene di montaggio per i dati utilizzando questo processo automatizzato:
sorgente di dati → acquisizione → elaborazione/trasformazione → archiviazione → distribuzione/accesso
Ecco come funziona:
Le pipeline estraggono dati da sorgenti di dati come database di applicazioni, piattaforme di marketing, API, stream di eventi e file. I dati vengono quindi raccolti, convalidati e spostati in un sistema centrale in batch o in tempo reale (ingestione).
I dati ingeriti vengono trasformati da dati grezzi a dati pronti per le analitiche attraverso la pulizia di campi disordinati, la standardizzazione dei formati, l'unione di set di dati e la creazione di metriche e aggregati. I dati elaborati vengono archiviati in data warehouse, data lake, database e strumenti di analitiche.
Le pipeline vengono eseguite in base a pianificazioni o trigger per alimentare destinazioni diverse, gestendo le dipendenze, rieseguendo le operazioni in caso di errore e inviando avvisi in caso di problemi. Le pipeline di dati vengono in genere classificate in base a come, quando e per quale scopo vengono spostati i dati.
Tipi di pipeline di dati
- Le pipeline batch elaborano i dati in blocchi pianificati (a cadenza oraria, giornaliera, settimanale) e vengono utilizzate per la reportistica aziendale, la riconciliazione finanziaria, le prestazioni di marketing e l'analisi storica.
- Le pipeline di dati in streaming (in tempo reale) elaborano i dati in modo continuo mentre vengono generati per alimentare dashboard live, il rilevamento delle frodi, la personalizzazione in tempo reale e il monitoraggio degli eventi.
- Le pipeline ELT (Extract, Load, Transform) caricano prima i dati grezzi, quindi li trasformano all'interno di un warehouse.
- Le pipeline analitiche preparano i dati specificamente per l'analisi e il reporting.
- Le pipeline operative reimmettono i dati in sistemi live come i motori di raccomandazione.
- Le pipeline di machine learning supportano l'addestramento dei modelli e l'inferenza.
- Le pipeline di replica dei dati copiano i dati tra sistemi con una trasformazione minima per il backup e il ripristino di emergenza o per la sincronizzazione di database di produzione con ambienti di analisi.
- Le pipeline native per il cloud acquisiscono, elaborano e distribuiscono i dati utilizzando servizi gestiti dal cloud e moderni modelli architetturali, invece di trasferire i vecchi sistemi on-premise nel cloud.
- Le pipeline di dati ibride combinano più stili di pipeline, ambienti o modalità di elaborazione per bilanciare prestazioni, costi, latenza e complessità. Una pipeline ibrida in genere combina Batch + streaming, on-premise + cloud, ETL + ELT. operativo + analitico o servizi gestiti + codice personalizzato.
Un esempio di pipeline per un'azienda di e-commerce che monitora il comportamento dei clienti potrebbe essere simile a questo:
- I dati vengono generati quando un cliente visita il sito di e-commerce (visualizzazioni dei prodotti, aggiunte al carrello, completamento degli acquisti). Ogni azione crea un evento.
- Raccolta di eventi (ingestion) acquisita dai tracker di siti web e app mobili e inviata a un'API o a una coda di messaggi.
- Gli eventi fluiscono attraverso una pipeline di streaming per essere convalidati, deduplicati e arricchiti.
- Tutti gli eventi vengono archiviati nell'archiviazione di oggetti cloud (data lake) come dati grezzi.
- Gli eventi grezzi vengono caricati in un data warehouse secondo una pianificazione (batch), le trasformazioni creano tabelle pulite e le metriche vengono calcolate.
- I dati vengono utilizzati (analitiche e dashboard) per monitorare le performance di vendita, analizzare i cali nel funnel e l'efficacia delle campagne mirate.
- La pipeline alimenta sistemi operazionali quali trigger di marketing automation, motori di raccomandazione e assistenza clienti.
- Dietro le quinte, le pipeline monitorano la qualità e il volume dei dati, attivano trigger di errore e testano le metriche per verificarne la coerenza.
Comprensione dei diversi tipi di dati
L'ingegneria dei dati aiuta a gestire e a dare un senso a molti tipi di dati contemporaneamente. Fornisce la struttura che rende ogni tipo di dato utilizzabile e consente loro di funzionare insieme. Questi tipi di dati includono:
- Dati strutturati: altamente organizzati in righe e colonne con schemi fissi; gli esempi includono database di clienti e record di transazioni. La data ingegneria aiuta a progettare schemi e relazioni, applica vincoli, ottimizza l'archiviazione e l'esecuzione di query e crea tabelle affidabili.
- Dati non strutturati: flessibili, senza un formato predefinito, come documenti, immagini, video, social media; rappresentano l'80-90% dei dati aziendali. L'ingegneria dei dati aiuta a memorizzare i dati in modo efficiente nei data lake, estrarre metadati e feature, collegare dati non strutturati a record strutturati e preparare i dati per i carichi di lavoro di AI e ML.
- Dati semi-strutturati: formati flessibili o nidificati che presentano alcuni elementi organizzativi come eventi JSON e XML, risposte API e log delle applicazioni. L'ingegneria dei dati aiuta a eseguire il parsing e ad appiattire i campi nidificati, a standardizzare le strutture incoerenti, a gestire l'evoluzione dello schema nel tempo e a conservare le versioni grezze per la rielaborazione.
L'ingegneria dei dati esiste in gran parte perché le soluzioni di archiviazione ed elaborazione universali si dimostrano rapidamente inadeguate all'aumentare della varietà dei dati. La struttura determina le modalità con cui i dati possono essere sottoposti a query.
I dati strutturati, con schemi fissi, campi e relazioni prevedibili, possono essere archiviati in database relazionali o data warehouse. Trasformazioni semplici come il filtraggio, le aggregazioni e i join possono essere gestite facilmente con SQL.
I dati semistrutturati, con campi che possono cambiare nel tempo, vengono archiviati al meglio in data lake o data warehouse con supporto per dati semistrutturati. I dati non strutturati (file di grandi dimensioni senza uno schema predefinito) vengono archiviati al meglio nell'object storage (data lake). L'elaborazione complessa, come l'analisi del testo, l'estrazione di feature dalle immagini e le pipeline ML, richiede strumenti specializzati e potenza di calcolo.
Le organizzazioni moderne devono gestire tutti e tre i tipi di dati per sfruttare la loro intera gamma di asset di dati.
Il ciclo di vita dell'ingegneria dei dati
Il ciclo di vita del data engineering descrive come i dati si spostano dalla creazione al consumo e come vengono continuamente migliorati nel tempo. Le sei fasi del movimento dei dati:
- Generazione dei dati: i dati vengono creati da varie fonti (database, app, APIs, sensori, logs, interazioni degli utenti, sistemi CRM/ERP). Questa fase è fondamentale per acquisire i dati in modo accurato e coerente alla fonte.
- Acquisizione: la raccolta di dati tramite metodi batch o in tempo reale/streaming, convalidati per la qualità di base e instradati alle destinazioni appropriate, assicurandosi che non vi siano dati mancanti o duplicati.
- Archiviazione: i dati grezzi e non trasformati vengono archiviati in data lake per l'object storage; i data warehouse per i dati strutturati ed elaborati. Ciò garantisce che i dati siano scalabili, supportino nuovi casi d'uso e siano protetti da modifiche della logica.
- Elaborazione e trasformazione: pulizia, arricchimento, convalida e ristrutturazione dei dati (processi ETL/ELT) in dati utilizzabili. I dati elaborati vengono archiviati come tabelle dei fatti, tabelle delle dimensioni e metriche aggregate. Ciò garantisce che venga applicata la logica di business corretta e che i dati siano pronti per l'uso.
- Serving: rendere i dati elaborati disponibili per l'utilizzo da parte di analisti, data scientist, sistemi di business intelligence e sistemi operativi. È qui che viene creato valore, garantendo accessibilità e prestazioni per diversi gruppi di utenti.
- Governance: garantire la sicurezza, la qualità, la privacy e la conformità normativa dei dati. È un aspetto fondamentale per la gestione del rischio e della responsabilità, che garantisce il controllo degli accessi e la conservazione del lineage e della documentazione.
Processi principali di data engineering
ETL e trasformazione dei dati
ETL (Extract Transform Load (ETL)) è un processo di integrazione dei dati utilizzato per spostare i dati dai sistemi di origine a un sistema di destinazione, in genere un data warehouse, dopo averli puliti e trasformati in un formato coerente e utilizzabile e averli caricati nell'archivio.
La trasformazione è essenziale perché i dati grezzi sono disordinati, incoerenti e non adatti all'analisi. I sistemi di origine producono dati con duplicati, valori mancanti, formati incoerenti e convenzioni di denominazione diverse. I dati possono provenire da origini diverse che utilizzano schemi diversi, applicano regole di business diverse e archiviano i valori in modo diverso. La trasformazione applica regole di business, in modo che le metriche abbiano lo stesso significato in tutta l'organizzazione.
Le attività di trasformazione più comuni includono pulizia e convalida dei dati, allineamento e ristrutturazione dello schema, arricchimento dei dati, standardizzazione del formato, aggregazione e riepilogo dei dati, creazione di logiche di business e metriche e trasformazioni per la sicurezza e la conformità per mascherare le PII e filtrare i campi con restrizioni.
L'alternativa ELT (Extract, Load, Transform), comune nei data lake, nei data warehouse in cloud e nelle moderne architetture di dati, significa che i dati grezzi vengono prima caricati e trasformati in un secondo momento. I moderni data warehouse sono in grado di gestire dati grezzi su larga scala e di elaborare le trasformazioni in modo efficiente. I dati grezzi vengono conservati prima dell'applicazione di qualsiasi logica di business, consentendo loro di essere rielaborati con una nuova logica e di supportare nuovi casi d'uso di analitiche, AI/ML.
Garantire la qualità dei dati è fondamentale, poiché ogni decisione, approfondimento e azione automatizzata ha lo stesso valore dei dati su cui si basa. Questo principio "garbage in/garbage out" si applica a tutti gli usi a valle. Se i dati sono errati, le decisioni sono sbagliate e possono costare all'organizzazione tempo, fiducia e ricavi.
Gli strumenti di trasformazione dei dati variano in base alla scala, alla complessità e al luogo in cui avvengono le trasformazioni. SQL è comunemente utilizzato per le trasformazioni dei database in quanto è un linguaggio semplice, potente e di facile manutenzione. Per trasformazioni più complesse o personalizzate, vengono utilizzati Python, Scala e Java per l'elaborazione di dati non tabulari, la logica di convalida personalizzata, la manipolazione avanzata dei dati e l'ingegneria delle feature di machine learning.
Per l'elaborazione di dati su larga scala, i framework di elaborazione distribuita dei dati, come Apache Spark, Flink e Beam, possono gestire volumi di dati che superano i limiti di una singola macchina.
Elaborazione batch vs. in tempo reale
Con l'elaborazione batch, i dati vengono raccolti in un determinato periodo di tempo e elaborati tutti insieme a cadenza pianificata (oraria, giornaliera, settimanale). Questo processo è meno complesso e più conveniente, ma comporta una latenza maggiore poiché si consente ai dati di accumularsi, rendendolo inadatto per decisioni sensibili al fattore tempo. L'elaborazione batch è comunemente utilizzata per l'analisi delle tendenze storiche, la reportistica finanziaria, le dashboard di vendita e marketing, i backup dei dati e le aggregazioni periodiche.
Con l'elaborazione in tempo reale, i dati vengono elaborati non appena generati, con una latenza minima (da millisecondi a secondi). Ciò consente di ottenere informazioni dettagliate immediate e decisioni rapide e automatizzate, ma è più complesso da realizzare e comporta costi operativi più elevati. L'elaborazione in tempo reale è comunemente utilizzata per dashboard in tempo reale, rilevamento di frodi, avvisi e monitoraggio, raccomandazioni in tempo reale, trading azionario e prezzi dinamici.
Considerati i compromessi tra latenza, costi e complessità dell'infrastruttura, molte organizzazioni scelgono un approccio ibrido, chiamato architettura Lambda, che combina entrambi gli approcci per fornire sia informazioni dettagliate rapide che dati accurati e completi. L'architettura Lambda elabora i dati attraverso due percorsi paralleli, uno per la velocità in tempo reale e uno per l'accuratezza dei batch, quindi unisce i risultati per l'utilizzo.
La decisione di utilizzare un approccio batch, in tempo reale o ibrido determina direttamente ciò che un'azienda può fare e la velocità con cui può farlo. Se la velocità del processo decisionale, il rilevamento dei rischi o la risposta alle azioni dei clienti sono di fondamentale importanza, l'elaborazione in tempo reale è più veloce e agile. Per l'efficienza operativa, l'elaborazione batch è più facile da gestire, con costi di infrastruttura e manodopera inferiori e un minor numero di punti di errore. L'elaborazione in tempo reale consente cicli di test e apprendimento più rapidi per alimentare l'innovazione e la differenziazione.
In pratica, l'elaborazione batch garantisce la correttezza dei report e l'accuratezza delle previsioni, mentre l'elaborazione in tempo reale garantisce l'aggiornamento dei dati per la customer experience, gli avvisi e l'automazione. Un approccio ibrido bilancia velocità, affidabilità e costi.
Soluzioni di archiviazione dati
L'archiviazione dei dati non è una soluzione universale. Esistono diverse soluzioni per ottimizzare scalabilità, prestazioni, costi e modelli di accesso. Le decisioni sull'architettura di archiviazione influiscono sulla rapidità con cui le organizzazioni possono analizzare i dati e creare modelli di ML.
Un data warehouse viene utilizzato per i dati strutturati ed è ottimizzato per query veloci, analitiche e reporting aziendali. I data warehouse moderni definiscono uno schema-on-write (i dati vengono trasformati prima dell'archiviazione) con garanzie ACID, pertanto le metriche vengono calcolate su dati puliti e affidabili per una maggiore affidabilità dei report e prestazioni di query più veloci. Poiché la maggior parte degli strumenti di business intelligence si aspetta schemi stabili, tipi di dati prevedibili e relazioni ben definite, i data warehouse sono la soluzione migliore per dashboard e scenari di reporting regolari in cui la velocità e la chiarezza sono fondamentali.
Lo storage dei data lake prevale nell'archiviazione su larga scala di tutti i tipi di dati grezzi (sia strutturati che non strutturati). L'approccio di data modeling schema-on-read, in cui lo schema viene applicato solo quando i dati vengono letti o sottoposti a query, offre la massima flessibilità per l'analisi esplorativa e il machine learning.
L'architettura emergente del data lakehouse combina i vantaggi delle prestazioni di un warehouse e della flessibilità di un data lake. Supporta tipi di dati strutturati, semi-strutturati e non strutturati e transazioni ACID su storage a basso costo. Supporta sia l'elaborazione batch che lo streaming in tempo reale e un'evoluzione flessibile di uno schema per un'iterazione più rapida senza interrompere gli utenti a valle. Gli stessi dati unificati possono essere utilizzati per la BI e le dashboard, la data science e il machine learning.
Ingegneria dei dati vs. discipline correlate
Ingegneria dei dati vs. analitiche dei dati vs. Data Science
A un livello generale, la data ingegneria crea la base di dati, la data analitiche spiega cosa è successo e perché, e la Data Science prevede cosa accadrà e consiglia le azioni da intraprendere. Ogni disciplina richiede competenze diverse, ma tutte sono essenziali per un'organizzazione basata sui dati.
L'Ingegneria dei dati si concentra sulla creazione di sistemi e infrastrutture per il flusso di dati. Le funzioni principali includono la creazione di pipeline, la gestione dell'infrastruttura, l'acquisizione e l'organizzazione dei dati per fornire sistemi di dati affidabili e scalabili che consentano il lavoro a valle.
Le analitiche dei dati si concentra sull'interpretazione dei dati per rispondere a specifiche domande di business. Le funzioni principali includono l'analisi dei dati, la loro trasformazione in informazioni dettagliate per il processo decisionale, la creazione di report, l'identificazione di tendenze e modelli, la creazione di dashboard e il monitoraggio dei KPI e delle metriche di business.
La Data Science si concentra sulla creazione di modelli predittivi, sull'estrazione di insight analitici avanzati e sulla promozione dell'automazione. Le funzioni principali includono analisi statistica, modelli predittivi, algoritmi di machine learning e sperimentazione.
Le tre discipline dipendono l'una dall'altra e si rafforzano a vicenda. Il data engineering crea le basi che consentono ad analitiche e Data Science di avere successo, fornendo pipeline di dati affidabili, storage e compute scalabili, nonché qualità, governance e accesso ai dati.
Le data analitiche utilizzano gli output della data ingegneria e trasformano i dati in informazioni e valore aziendale. La Data Science si basa sulla data ingegneria per creare pipeline di feature affidabili ed estende le analitiche alla previsione e all'automazione.
| Categoria | Ingegneria dei dati | Analitiche dei dati | Data Science |
| Focus principale | Creazione e manutenzione dell'infrastruttura dati | Comprensione e spiegazione dei dati | Previsione dei risultati e ottimizzazione delle decisioni |
| Obiettivo principale | Rendere i dati affidabili, accessibili e scalabili | Trasforma i dati in approfondimenti | Trasforma i dati in previsioni e automazione |
| Domanda chiave a cui si risponde | I dati sono disponibili e affidabili? | Cosa è successo e perché? | Cosa succederà dopo? |
| Metodologie tipiche | Pipeline ETL / ELT, elaborazione batch & in streaming, modellazione dei dati, orchestrazione & monitoraggio | Analisi descrittiva, analisi esplorativa dei dati (EDA), monitoraggio dei KPI, creazione di dashboard | Modellazione statistica, machine learning, sperimentazione (test A/B), feature engineering |
| Dati gestiti | Dati grezzi → dati curati | Dati puliti e strutturati | Dati curati e pronti per le feature |
| Strumenti e tecnologie | SQL, Python, piattaforme cloud, data warehouse e data lake, strumenti di orchestrazione | SQL, strumenti di BI, fogli di calcolo | Python, framework RML, strumenti statistici |
| Output | Pipeline di dati, modelli di dati e tabelle, set di dati affidabili | Dashboard, report, informazioni dettagliate di business | Modelli predittivi, previsioni, raccomandazioni |
| Orientamento temporale | Idoneità presente e futura | Comprensione del passato & presente | Risultati futuri |
| Successo misurato da | Affidabilità, scalabilità, qualità dei dati | Precisione degli approfondimenti, adozione, chiarezza | Prestazioni del modello, impatto sul business |
| Stakeholder principali | Analisti, data scientist, ingegneri | Team aziendali, leadership | Prodotto, ingegneria, leadership |
Perché le organizzazioni hanno bisogno della Data ingegneria
Sfide risolte dall'ingegneria dei dati
- Proliferazione dei dati: le organizzazioni accumulano dati da decine di fonti scollegate (database, APIs, IoT, logs, applicazioni). Questi silos di dati rendono difficile ottenere un quadro completo dei dati. La centralizzazione dei dati in data lake, data warehouse o lakehouse fornisce una visione unificata dei dati a livello di organizzazione.
- Qualità dei dati: i dati grezzi contengono errori, formati incoerenti, record duplicati e campi mancanti. I Data Engineers aiutano a pulire e convalidare i dati, ad applicare schemi e regole di business coerenti e a monitorare continuamente la qualità dei dati.
- Scale e complessità: I volumi di dati crescono in modo esponenziale, richiedendo sistemi in grado di gestire terabyte e petabyte, altrimenti diventano lenti, fragili e costosi. I Data Engineer aiutano a creare pipeline e sistemi di archiviazione scalabili e utilizzano architetture distribuite e native per il cloud per sistemi di dati che crescono con l'azienda.
- Velocità: le decisioni di business necessitano di informazioni dettagliate tempestive, non di dati vecchi di una settimana. Le esportazioni manuali e gli script occasionali rallentano i team e introducono errori. La data ingegneria può automatizzare l'acquisizione e la trasformazione e orchestrare flussi di lavoro affidabili per un accesso più rapido ai dati con un minore sforzo manuale.
- Accessibilità: i team devono sapere quali dati esistono, dove si trovano e quale versione è quella corretta. La data engineering aiuta a rendere i dati disponibili ad analisti e data scientist senza barriere tecniche.
- Conformità: i dati sensibili devono essere protetti, garantendo la sicurezza dei dati, la privacy e la conformità normativa pur rimanendo utilizzabili. I data engineer implementano controlli degli accessi e crittografia, tracciano la derivazione e l'utilizzo e monitorano i requisiti di conformità come GDPR, HIPAA o CCPA.
Applicazioni reali
L'ingegneria dei dati costruisce l'infrastruttura per alimentare questi casi d'uso rendendo i dati utilizzabili:
- Servizi finanziari: le soluzioni di ingegneria dei dati streamano i dati delle transazioni in millisecondi e forniscono funzionalità ai sistemi di rilevamento delle frodi in tempo reale. I modelli di gestione del rischio arricchiti con il comportamento storico possono analizzare l'esposizione al mercato.
- E-commerce: le soluzioni di ingegneria dei dati trasmettono in streaming gli eventi di clic e acquisto in tempo reale e creano pipeline che alimentano motori di personalizzazione e suggerimento in tempo reale che migliorano l'esperienza del cliente e offrono l'ottimizzazione dell'inventario e tassi di conversione più elevati.
- Sanità: i dati critici dei pazienti sono frammentati tra più sistemi. Le soluzioni di ingegneria dei dati aiutano a inserire e normalizzare i dati tra diversi fornitori per ottenere viste olistiche, analisi predittiva e per aiutare a identificare le popolazioni a rischio.
- Manifatturiero/IoT: le soluzioni di ingegneria dei dati raccolgono continuamente dati da sensori e macchine e consentono il rilevamento di anomalie e la manutenzione predittiva per prevenire i guasti alle apparecchiature. Per l'ottimizzazione della supply chain, le soluzioni dati acquisiscono dati GPS, dei sensori e del traffico in tempo reale e li combinano con i dati storici per alimentare gli algoritmi di ottimizzazione.
- Vendita al dettaglio: le soluzioni di data ingegneria integrano i dati dei punti vendita, della catena di approvvigionamento e della domanda per creare viste a 360° del cliente e pipeline di previsione che combinano il comportamento online/offline, algoritmi di ottimizzazione dei prezzi e visibilità quasi in tempo reale delle scorte.
- Media/intrattenimento: gli spettatori si aspettano consigli di contenuti pertinenti all'istante. Le soluzioni di data ingegneria elaborano e analizzano il comportamento di visualizzazione per il coinvolgimento, gestiscono i profili utente e alimentano i motori di raccomandazione.
Approcci moderni al data ingegneria
Strumenti e tecnologie
L'ingegneria dei dati si basa su un ecosistema stratificato di strumenti e tecnologie, ognuno dei quali risolve una parte specifica del ciclo di vita dei dati.
- Linguaggi di programmazione: i data engineer utilizzano più linguaggi, ognuno scelto per un tipo specifico di lavoro. SQL è probabilmente il linguaggio più importante per il data engineering. Utilizzato per interrogare, trasformare e modellare i dati, è universale su tutte le piattaforme dati, altamente leggibile e dichiarativo e ottimizzato per le analitiche. Python è comunemente usato per l'elaborazione dei dati, l'orchestrazione, l'automazione e l'ETL. È facile da scrivere e gestire, dispone di un'ampia raccolta di librerie per i dati e funziona bene con i servizi cloud. Scala e Java sono ampiamente utilizzati per sistemi distribuiti e su larga scala e trasformazioni di streaming. Scala è il linguaggio nativo di Apache Spark e combina stili funzionali e orientati agli oggetti. Java è spesso utilizzato nei framework di elaborazione distribuita e big data e nei Data Services di backend.
- Piattaforme Big Data: le piattaforme Big Data sono progettate per gestire in modo affidabile il volume, la velocità e la varietà dei dati, su larga scala. Per l'elaborazione distribuita, Apache Spark è ampiamente utilizzato per ETL/ELT, aggregazioni, feature engineering, trasformazioni su larga scala e preparazione per il machine learning. Apache Kafka è una piattaforma di streaming di eventi distribuita utilizzata per pipeline di eventi, acquisizione in tempo reale e microservizi. Apache Hadoop è comunemente utilizzato per l'archiviazione distribuita di file per i sistemi big data legacy.
- Piattaforme cloud: le piattaforme cloud forniscono l'infrastruttura, i servizi gestiti e la scalabilità da cui dipende la moderna data ingegneria. Amazon Web Services (AWS) fornisce storage a oggetti (data lake), data warehouse gestiti, servizi ETL ed ELT gestiti, piattaforme di streaming e messaggistica e calcolo serverless. Microsoft Azure fornisce servizi di integrazione dei dati enterprise, analisi e data warehouse, storage cloud e data lake, una forte governance e sicurezza e supporto per l'ecosistema Microsoft. Google Cloud Platform (GCP) è spesso preferita dalle organizzazioni che lavorano con grandi quantità di dati e si basano sulle analitiche, offrendo data warehouse serverless, analisi in streaming nativa, servizi di elaborazione dati completamente gestiti e object storage scalabile.
- Data warehouse e data lake: Databricks è una piattaforma gestita unificata che consente ai data engineer di creare pipeline di dati e analitiche scalabili direttamente sui data lake, senza dover gestire l'infrastruttura. L'architettura lakehouse di Databricks unisce la flessibilità dei data lake all'affidabilità dei data warehouse. Databricks si basa su Apache Spark e offre transazioni ACID, applicazione di uno schema ed evoluzione, time travel e versioning, pipeline unificate per l'elaborazione batch e lo streaming, orchestrazione dei flussi di lavoro e supporto nativo per più linguaggi.
- Orchestrazione e flusso di lavoro: gli strumenti di orchestrazione gestiscono quando e come vengono eseguite le pipeline di dati, gestendo dipendenze, nuovi tentativi, errori e monitoraggio. Apache Airflow è una piattaforma di orchestrazione open source utilizzata per pipeline batch complesse con molte dipendenze. Prefect è utilizzato per l'orchestrazione dei flussi di lavoro con supporto ibrido cloud/on-premise. Dagster è una piattaforma di orchestrazione data-aware con funzionalità integrate di qualità dei dati e osservabilità.
- Trasformazione dei dati: dbt è uno strumento di trasformazione che consente agli analytics engineer di scrivere, testare, documentare e versionare le trasformazioni dei dati utilizzando SQL. Consente agli ingegneri delle analitiche di definire test e di garantire la qualità dei dati. dbt genera automaticamente la documentazione del modello, le descrizioni delle colonne e i Graph delle dipendenze. I servizi ELT gestiti e ETL nativo per il cloud offrono una configurazione più rapida. Possono acquisire dati da molte fonti, applicare trasformazioni di base e fornire monitoraggio e nuovi tentativi.
Architettura Nativa per il cloud
Le infrastrutture di dati on-premise hanno faticato a gestire l'esplosione del volume e della varietà dei dati. I server fisici e lo storage fisso nel data center di un'azienda richiedevano costi di capitale iniziali elevati. I lunghi cicli di provisioning e la scalabilità e la manutenzione manuali hanno fatto sì che i data engineer dedicassero più tempo alla gestione dell'infrastruttura piuttosto che alla creazione di pipeline.
Le aziende sono passate a sistemi di dati basati su cloud per soddisfare l'esigenza di agilità e velocità, per fornire informazioni dettagliate più rapidamente, consentire una rapida sperimentazione e gestire dati non strutturati e semistrutturati da nuove fonti.
I sistemi cloud hanno consentito la Scale istantanea (in aumento o in diminuzione), la separazione di storage e compute e prezzi pay-as-you-go. I servizi completamente gestiti per data warehouse, sistemi di streaming e orchestrazione hanno ridotto l'overhead operativo, poiché i data engineer hanno spostato la loro attenzione sulla logica dei dati.
L'adozione del cloud ha reso possibili nuovi modelli architetturali come ELT, data lake e lakehouse e pipeline serverless e basate su eventi. Le aziende hanno ottenuto analitiche quasi in tempo reale, dati self-service, AI e ML su larga scala, cicli di innovazione più rapidi e un costo di proprietà inferiore, rendendo i dati un asset strategico.
Evoluzione e futuro del Data Engineering
La disciplina del data engineering è nata dall'amministrazione di database e, successivamente, dal data warehousing. Gli amministratori di database erano responsabili della progettazione degli schemi, della gestione degli indici, della garanzia di backup e ripristino e del mantenimento delle prestazioni e della disponibilità per i database relazionali on-premise.
L'avvento del data warehousing ha introdotto database analitici centralizzati, processi ETL, schemi a stella e Snowflake e reporting basato su batch. Tuttavia, il lavoro era ancora di tipo schema-on-write, altamente pianificato e rigido. Le pratiche di DBA e warehousing non sono state concepite per i dati in streaming, la Scale elastica, le pipeline complesse e le iterazioni rapide.
I big data e il cloud hanno sostituito i tradizionali data center on-premise e hanno determinato un ulteriore passaggio dall'elaborazione esclusivamente batch ad architetture in tempo reale e di streaming. I nuovi framework hanno introdotto lo storage e il compute distribuiti, lo schema-on-read e nuovi paradigmi di elaborazione. I sistemi di dati sono diventati sistemi di ingegneria, non solo database.
L'ingegneria dei dati continua a evolversi. Le sorgenti di dati continuano a moltiplicarsi, i casi d'uso in tempo reale sono in espansione e l'AI e il ML dipendono da basi di dati solide e agili. C'è una crescente attenzione alla qualità e alla governance dei dati con l'aumento dei requisiti normativi, così come la necessità di accedere ai dati in tutte le organizzazioni tramite piattaforme di analitiche self-service.
Le pipeline di dati stanno diventando più di una semplice infrastruttura interna. Le organizzazioni utilizzano i dati come prodotto con consumatori e casi d'uso definiti. L'ingegneria dei dati sta assistendo a un'integrazione più profonda con l'IA e il ML, creando negozi di funzionalità e pipeline di feature in tempo reale.
Le piattaforme unificate stanno sostituendo gli stack eccessivamente complessi, richiedendo meno passaggi tra gli strumenti, un minore overhead operativo e uno sviluppo più rapido. Una maggiore attenzione alla qualità dei dati si traduce in controlli di qualità integrati, osservabilità end-to-end e rilevamento proattivo delle anomalie. Lineage automatizzato, orchestrazione intelligente e pipeline auto-riparanti offrono sistemi più resilienti con meno lavoro manuale.
Conclusione
Il data engineering è una disciplina in crescita che trasforma il caos dei dati grezzi in informazioni organizzate, scalabili, affidabili e accessibili. Consente alle organizzazioni di prendere decisioni basate sui dati, creare modelli di AI e machine learning, rispondere rapidamente ai cambiamenti del mercato e fornire i dati come prodotto.
Una solida infrastruttura di data ingegneria è diventata cruciale, dato che i volumi di dati continuano a esplodere e le organizzazioni si affidano sempre più alle informazioni dettagliate dei dati. Senza di essa, la frammentazione dei dati e i dati inaffidabili minano tutti gli sforzi di analitiche e IA e potrebbero essere catastrofici nell'odierno panorama aziendale competitivo e normativo.
La comprensione dei concetti, dei processi, degli approcci al ciclo di vita e delle applicazioni reali dell'ingegneria dei dati aiuta le organizzazioni a prendere decisioni migliori riguardo all'infrastruttura dei dati, alla selezione degli strumenti e alla strategia di analitiche.
Le organizzazioni con un forte focus sulla data ingegneria possono muoversi più velocemente, prendere decisioni più intelligenti e trasformare i dati in un vantaggio competitivo.


