Ingegneri dei dati: miti contro realtà

Pubblicato: 2018-05-10

Dalle auto a guida autonoma all'etichettatura automatica nelle immagini, la scienza dei dati ha fatto molta strada. Data scientist e analisti sono diventati parte integrante di qualsiasi organizzazione grazie al valore che aggiungono. Ma, in tutta onestà, un data scientist è bravo solo quanto i dati con cui lavora. La maggior parte delle organizzazioni oggi conserva i propri dati in una varietà di formati e su numerose piattaforme. Ecco che c'è bisogno di ingegneri di dati!

Gli ingegneri dei dati sono persone che rendono questi dati utilizzabili per i data scientist e gli analisti. I data engineer sono responsabili della creazione di pipeline che trasformano i cumuli di dati in un formato utilizzabile dai data scientist. Per lo più lavorano dietro le quinte e quindi sono privi di tutto il fascino di un data scientist/analista, ma bada bene, sono ugualmente (se non di più) essenziali per il funzionamento di qualsiasi organizzazione.
Se i data scientist sono piloti di auto da corsa, i data engineer sono costruttori di auto da corsa. Il primo prova l'emozione di sfrecciare su una pista e il brivido di vincere davanti a una folla che applaude. Quest'ultimo, invece, ottiene la gioia di mettere a punto i motori e creare una macchina potente e robusta. Un costruttore di auto da corsa rende il lavoro del pilota molto più semplice (o più difficile, a seconda della qualità del costruttore).
Come puoi passare all'analisi dei dati?

A questo proposito, gli ingegneri dei dati sono praticamente gli eroi sconosciuti di qualsiasi team di analisi dei dati. Senza un ingegnere dei dati del suono, uno scienziato dei dati si gratterà la testa alla ricerca di indizi nei dati non formattati.
Vediamo cosa comporta il lavoro di un ingegnere di dati.
Per motivi di comprensione, supponiamo che tu sia un ingegnere di dati presso un concorrente di Swiggy (chiamiamolo Twiggy). Hai un'app che gli utenti possono utilizzare su qualsiasi dispositivo e accedere ai tuoi servizi. Ordinano il cibo, l'ordine viene reindirizzato al ristorante appropriato, il cibo viene prelevato da lì e arriva a te.
Per mantenere questo servizio sincronizzato, avrai bisogno di:

  • Un'app mobile per gli utenti
  • Un'app mobile per i ristoratori
  • Un server robusto per gestire più richieste contemporaneamente.

Come avrai già capito, questa applicazione genererà ENORMI quantità di dati. Inoltre, avrai bisogno di alcuni archivi dati:

  • Un database che contiene i dettagli di utenti e ristoranti.
  • Registri di accesso al server. Questi includeranno qualsiasi richiesta effettuata al server dall'app.
  • Registri degli errori del server contenenti tutti gli errori lato server.
  • Registri eventi dell'app. Questi conterranno informazioni sulle azioni intraprese dagli utenti o dai proprietari di ristoranti nell'applicazione.
  • Registri degli errori dell'app che contengono errori basati sull'app.
  • Banca dati del servizio clienti. Questo conterrà i dati sulla tua interazione con i tuoi clienti.

Ora, supponiamo che un data scientist del tuo team voglia analizzare il comportamento degli utenti sui tuoi servizi e vedere quali azioni sono correlate agli utenti con una spesa elevata. Per aiutarli a crearlo, dovrai combinare tutte le informazioni dai registri di accesso al server e dai registri eventi dell'app.
Avrai bisogno di:

  • Raccogli regolarmente i log di analisi delle app.
  • Combina i registri di analisi delle app con le voci del registro del server per gli utenti interessati.
  • Sviluppa un'API che restituisca la cronologia degli eventi di qualsiasi utente.

Questo è un sacco di lavoro proprio lì!
Per fare tutto ciò, dovrai creare una pipeline in grado di assimilare in modo efficiente i log delle app mobili e i log del server in tempo reale, analizzarli e collegarli all'utente appropriato. Inoltre, dovrai archiviare i log analizzati in un database in modo che l'API possa interrogarli facilmente. Ci saranno molti server che dovrai far girare dietro un sistema di bilanciamento del carico per analizzare i log in entrata.
La maggior parte dei problemi che incontrerai riguarderà i sistemi distribuiti e l'affidabilità. Se hai milioni di dispositivi da cui raccogliere registri e richieste dinamiche (nel pomeriggio ricevi molte voci di registro, ma non così tante durante la mezzanotte), dovrai sviluppare un sistema in grado di aumentare e diminuire automaticamente il conteggio del server a seconda del traffico.
I migliori passaggi per padroneggiare la scienza dei dati

Approssimativamente, le operazioni in una pipeline di ingegneria dei dati generica subiscono le seguenti fasi:

  • Ingestione: raccolta dei dati necessari.
  • Elaborazione: elaborazione dei dati per ottenere il risultato desiderato.
  • Archiviazione: memorizzazione del risultato per un recupero più rapido.
  • Accesso: abilitazione di uno strumento per accedere ai risultati della pipeline di dati.

Ci si aspetta che un ingegnere dei dati possieda conoscenze nei seguenti domini.

  • Archiviazione dati:
    • RDBMS come MySQL, MS SQL Server, ecc.
    • Database NoSQL come HBase, MongoDB, CouchDB, Cassandra, ecc.
  • Raccolta dati:
    • API RESTful
    • Conoscenza della modellazione dei dati ed esperienza in SQL.
  • Trasformazione dei dati:
    • Strumenti ETL come Informatica, Datastage, Redpoint, ecc.
    • Qualsiasi linguaggio di scripting come Python, Ruby, Perl, ecc.

Diamo un'occhiata ad alcuni miti e idee sbagliate che ruotano attorno alla vita e al lavoro di questi ingegneri di dati.

Sommario

Mito n. 1: gli ingegneri dei dati estraggono valore dai dati raccolti.

C'è molto che intercorre tra la raccolta dei dati e l'estrazione della conoscenza. Gli ingegneri dei dati sono i principali responsabili della conversione dei dati in un modulo adatto agli scienziati per l'analisi e il lavoro. A questo proposito, non estraggono alcun valore dai dati, anzi, presentano i dati su una targa ai data scientist che poi ne scoprono il valore.

Mito n. 2: gli ingegneri dei dati devono rendere tutti i dati incontaminati.

Ti renderai conto dell'assurdità di questo se leggi lentamente la frase sopra. Un ingegnere dei dati si occupa dei flussi di dati in entrata durante il giorno. Questi dati devono essere puliti e agiti immediatamente per evitare che diventino obsoleti. Per stantio, intendiamo ottuso e vecchio. Quindi, gli ingegneri dei dati non si occupano di rendere tutti i dati incontaminati. Funzionano con i dati a portata di mano combinati con altri dati necessari per il problema in questione. La pulizia dei set di dati completi richiederà mesi e per allora non sarà di alcuna utilità.
Fondamenti di base di statistica per la scienza dei dati

Mito n. 3: gli ingegneri dei dati scaricano i dati su strumenti già pronti e si godono i dati puliti/lavorabili come output.

Per favore, non dirlo ad alta voce davanti a nessun ingegnere di dati. Sempre. Nessun ingegnere informatico che si rispetti tollererà un insulto così palese. Come qualsiasi altro ingegnere (software, meccanico, chimico, ecc.), gli ingegneri dei dati richiedono di avere sempre a disposizione i propri limiti di pensiero. Non esiste un approccio universale nell'ingegneria dei dati e gli ingegneri dei dati devono modellare algoritmi per adattarli continuamente al loro caso d'uso. Devono essere consapevoli delle ultime tecniche e metodi relativi al loro lavoro per garantire una perfetta efficienza.

Mito n. 4: gli ingegneri dei dati sono solo ingegneri del software che lavorano sui Big Data.

Gli ingegneri del software lavorano allo sviluppo di app mobili/web. Il loro lavoro comporta molti problemi diversi e la difficoltà sta nella gestione dei compiti: pensare, comunicare e organizzare il codice. Gli ingegneri dei dati, d'altra parte, generalmente hanno meno problemi, ma i singoli problemi sono tecnicamente molto più difficili. Dalla prospettiva al set di competenze, tutto è completamente diverso per un ingegnere dei dati rispetto a un ingegnere del software.
Chi è un Data Scientist, un Data Analyst e un Data Engineer?

Ottieni la certificazione di data science dalle migliori università del mondo. Impara i programmi Executive PG, Advanced Certificate Program o Master per accelerare la tua carriera.

L'ingegneria dei dati è simile a un ruolo IT classico?

"Ingegnere di dati" e "Ingegnere di software" possono sembrare intercambiabili per coloro che non operano nel settore informatico, poiché entrambi si basano principalmente sulle capacità di programmazione. Ma in realtà sono esperti in diversi campi. L'obiettivo principale degli ingegneri del software è creare siti Web di facile utilizzo. Gli ingegneri dei dati stabiliscono sistemi per l'archiviazione, il consolidamento e il recupero dei dati, che vengono quindi utilizzati dagli sviluppatori di software per creare sistemi e applicazioni. I data engineer possono anche creare e mantenere una pipeline di integrazione e distribuzione continua (CI/CD) per tutti i dati dell'organizzazione, nonché sistemi di controllo delle versioni per garantire la qualità dei dati in tutta l'infrastruttura.

È necessario avere un'istruzione universitaria o una laurea specialistica per diventare un Data Engineer?

Per lavorare come ingegnere dei dati, non è necessaria una laurea, anche se alcuni datori di lavoro potrebbero preferire candidati con almeno una laurea. Nessun corso accademico o curriculum online può prepararti completamente a creare sistemi di dati in grado di spostare i dati da una varietà di fonti, modificarli e archiviarli per l'analisi. Il fatto è che i data engineer di maggior successo imparano molto sul lavoro mentre operano nel mondo reale con clienti reali. Ma sì, è importante che un Data Engineer abbia buone competenze per lavorare con determinati strumenti come Amazon Athena, Amazon Redshift, Apache Spark, ecc. e conoscere le best practice per la gestione dei dati.

Come diventare un Data Engineer di successo?

Per le aziende basate sui dati, l'ingegneria dei dati è fondamentale, ma cosa fanno esattamente gli ingegneri dei dati? Ecco il percorso per diventare un Data Engineer di successo

1. Diventa esperto di programmazione: se vuoi diventare un Data Engineer di successo, in primo luogo, inizia a rispolverare i tuoi fondamenti di programmazione. Python e Scala sono le tecnologie più utilizzate nel settore.
2. Scopri come automatizzare e creare script: l'automazione dell'apprendimento è fondamentale per i data engineer. Poiché ci sono molte attività da eseguire sui dati che possono essere noiose o che possono verificarsi regolarmente. Alcuni strumenti importanti per l'automazione sono lo scripting della shell e l'elaborazione dei dati nella shell.
3. Sapere come utilizzare i database: questo può essere fatto imparando SQL e modellazione dei dati.
4. Tecniche di elaborazione dei dati esperti: per padroneggiare le tecniche di elaborazione dei dati è importante imparare come elaborare i dati in batch e flussi, prima di caricare i risultati nei database di destinazione.