Le professioni di Data Scientist e Data Engineer sono spesso confuse. Ogni azienda ha la propria specificità nel lavoro con i dati, obiettivi di analisi diversi e una percezione distinta di chi debba occuparsi di quale parte del lavoro, quindi ogni azienda ha le proprie aspettative.
Scopriamo in che cosa si differenziano questi professionisti, quali problemi aziendali risolvono, quali competenze possiedono e quanto guadagnano. Il materiale è corposo, quindi l'abbiamo diviso in due pubblicazioni.
Nella prima articolo, Elena Gerasimova, responsabile del dipartimento di «» in Netology, spiega in cosa consiste la differenza tra Data Scientist e Data Engineer e con quali strumenti lavorano.
Come si differenziano i ruoli tra ingegneri e scientist
Un ingegnere dei dati è un professionista che, da un lato, sviluppa, testa e mantiene l'infrastruttura di lavoro con i dati: database, archivi e sistemi di elaborazione di massa. Dall'altro lato, è colui che pulisce e 'pettina' i dati per l'uso da parte di analisti e data scientist, creando così pipeline di elaborazione dei dati.
Il Data Scientist crea e addestra modelli previsivi (e non solo) utilizzando algoritmi di machine learning e reti neurali, aiutando le aziende a scoprire pattern nascosti, prevedere l'andamento degli eventi e ottimizzare i processi aziendali chiave.
La principale differenza tra Data Scientist e Data Engineer risiede nel fatto che solitamente hanno obiettivi diversi. Entrambi lavorano affinché i dati siano accessibili e di qualità. Tuttavia, il Data Scientist cerca risposte alle proprie domande e verifica ipotesi nell'ecosistema dei dati (ad esempio, basato su Hadoop), mentre il Data Engineer crea pipeline per la gestione dell'algoritmo di machine learning sviluppato dal Data Scientist, all'interno di un cluster Spark nello stesso ecosistema.
L'ingegnere dei dati apporta valore all'azienda lavorando in team. Il suo compito è quello di svolgere un ruolo fondamentale tra i vari partecipanti: dai programmatori ai consumatori aziendali dei report, e migliorare la produttività degli analisti — dai reparti marketing e prodotto fino al BI.
Il Data Scientist, al contrario, partecipa attivamente alla strategia aziendale, all’estrazione di informazioni, alle decisioni, all'implementazione di algoritmi di automazione, alla modellazione e alla generazione di valore dai dati.

Il lavoro con i dati segue il principio GIGO (garbage in — garbage out): se gli analisti e i data scientist si occupano di dati non preparati e potenzialmente errati, i risultati, anche con i più sofisticati algoritmi di analisi, saranno errati.
Gli ingegneri dei dati risolvono questo problema creando pipeline per l'elaborazione, la pulizia e la trasformazione dei dati, consentendo ai data scientist di lavorare già con dati di alta qualità.
Ci sono molti strumenti sul mercato per lavorare con i dati, che coprono ciascuna delle fasi: dalla generazione dei dati all'output su un dashboard per il consiglio di amministrazione. È importante che la decisione di usarli venga presa dall'ingegnere, non perché sia di moda, ma perché realmente aiuterà gli altri partecipanti al processo.
Condizionatamente: se un'azienda ha bisogno di integrare BI ed ETL — caricamento dati e aggiornamenti dei report, ecco una classica base legacy con cui dovrà confrontarsi un Data Engineer (meglio se nel team ci sarà anche un architetto).
Responsabilità del Data Engineer
- Progettazione, costruzione e manutenzione dell'infrastruttura per la gestione dei dati.
- Gestione degli errori e creazione di pipeline di elaborazione dati affidabili.
- Riformattazione dei dati non strutturati provenienti da diverse fonti dinamiche in un formato utile per gli analisti.
- Fornitura di raccomandazioni per migliorare la coerenza e la qualità dei dati.
- Garanzia e supporto dell'architettura dati utilizzata da data scientist e analisti dei dati.
- Elaborazione e archiviazione dei dati in modo sequenziale ed efficiente all'interno di un cluster distribuito di decine o centinaia di server.
- Valutazione dei compromessi tecnici tra strumenti per la creazione di architetture semplici ma robuste in grado di resistere ai guasti.
- Monitoraggio e supporto dei flussi di dati e dei sistemi correlati (configurazione dei monitoraggi e degli allert).
Esiste un'altra specializzazione all'interno del percorso Data Engineer: l'ingegnere ML. In breve, questi ingegneri si specializzano nell'implementazione e nell'utilizzo di modelli di machine learning a livello industriale. Spesso, il modello fornito da un data scientist è parte di una ricerca e potrebbe non funzionare in produzione.
Responsabilità del Data Scientist
- Estrazione delle caratteristiche dai dati per l'applicazione di algoritmi di machine learning.
- Utilizzo di vari strumenti di machine learning per la previsione e la classificazione dei pattern nei dati.
- Miglioramento delle prestazioni e della precisione degli algoritmi di machine learning attraverso la messa a punto e l'ottimizzazione.
- Formulazione di ipotesi 'forti' in linea con la strategia aziendale, che devono essere verificate.
Sia il Data Engineer che il Data Scientist contribuiscono in modo significativo alla cultura della gestione dei dati, attraverso la quale l'azienda può generare profitto aggiuntivo o ridurre i costi.
Quali linguaggi e strumenti utilizzano ingegneri e data scientist
Oggi, le aspettative nei confronti degli specialisti di elaborazione dei dati sono cambiate. In passato, gli ingegneri scrivevano ampie query SQL, scrivevano manualmente MapReduce e processavano i dati utilizzando strumenti come Informatica ETL, Pentaho ETL e Talend.
Nel 2020, un professionista non può prescindere dalla conoscenza di Python e degli strumenti moderni per l'elaborazione dei dati (ad esempio Airflow), e dalla comprensione dei principi di lavoro con le piattaforme cloud (utilizzandole per risparmiare su hardware, mantenendo i principi di sicurezza).
SAP, Oracle, MySQL, Redis sono strumenti tradizionali per gli ingegneri di dati nelle grandi aziende. Sono validi, ma il costo delle licenze è così elevato che ha senso imparare a lavorare con essi solo in progetti industriali. Tuttavia, c'è un'alternativa gratuita in Postgres — è gratuito e adatto non solo per l'apprendimento.

Storicamente, è stata spesso richiesta la conoscenza di Java e Scala, anche se con l'evoluzione delle tecnologie e degli approcci, questi linguaggi stanno perdendo importanza.
Tuttavia, la Big Data hardcore: Hadoop, Spark e il resto del panorama non sono più un requisito imprescindibile per un ingegnere dei dati, ma una varietà di strumenti per affrontare problemi che non possono essere risolti con l'ETL tradizionale.
Sono in voga i servizi che consentono di utilizzare strumenti senza conoscere il linguaggio in cui sono scritti (ad esempio, Hadoop senza conoscere Java), così come l'offerta di servizi pronti per l'elaborazione di dati in streaming (riconoscimento vocale o di immagini nei video).
Le soluzioni industriali di SAS e SPSS sono molto popolari, mentre Tableau, Rapidminer, Stata e Julia sono ampiamente utilizzati dai data scientist per compiti locali.

La possibilità di costruire pipeline è emersa per gli analisti e i data scientist solo un paio di anni fa: ad esempio, ora è possibile indirizzare i dati in uno storage basato su PostgreSQL utilizzando script relativamente semplici.
Di solito, l'uso di pipeline e strutture dati integrate è gestito dai data engineer. Ma oggi più che mai, c'è una forte tendenza verso specialisti a forma di T — con competenze ampie in aree affini, poiché gli strumenti diventano sempre più semplici.
Perché un Data Engineer e un Data Scientist dovrebbero lavorare insieme
Lavorando a stretto contatto con gli ingegneri, i Data Scientist possono concentrarsi sulla parte di ricerca, creando algoritmi di machine learning pronti all'uso.
Gli ingegneri, invece, si concentrano sulla scalabilità, sul riutilizzo dei dati e garantiscono che i flussi di input e output di dati per ogni singolo progetto siano conformi all'architettura globale.
Questa suddivisione dei compiti garantisce coerenza tra i gruppi di specialisti che lavorano a diversi progetti di machine learning.
La collaborazione aiuta a creare nuovi prodotti in modo efficace. Velocità e qualità vengono raggiunte grazie a un equilibrio tra la creazione di servizi per tutti (archivio globale o integrazione di dashboard) e l'implementazione di ogni specifica esigenza o progetto (pipeline specializzate, connessione a fonti esterne).
Una collaborazione stretta con i data scientist e gli analisti aiuta gli ingegneri a sviluppare competenze analitiche e di ricerca per scrivere codice di maggiore qualità. Si migliora lo scambio di conoscenze tra gli utenti degli archivi e dei data lake, rendendo i progetti più flessibili e garantendo risultati a lungo termine più sostenibili.
Nelle aziende che puntano a sviluppare una cultura orientata ai dati e a costruire processi aziendali su di essi, i Data Scientist e i Data Engineer si completano a vicenda, creando un sistema di analisi dei dati completo.
Nel prossimo articolo esploreremo quale formazione dovrebbe avere un Data Engineer e un Data Scientist, quali competenze devono sviluppare e com'è organizzato il mercato.
Dalla redazione di Netology
Se stai valutando la professione di Data Engineer o Data Scientist, ti invitiamo a scoprire i programmi dei nostri corsi:
- Professione “».
- Professione “».
Fonte: habr.com
