Data Engineer e Data Scientist: qual è la differenza?

Le professioni di Data Scientist e Data Engineer sono spesso confuse. Ogni azienda ha le proprie specificità nel lavorare con i dati, scopi diversi per la loro analisi e un'idea diversa di quale specialista dovrebbe occuparsi di quale parte del lavoro, quindi ognuna ha le proprie esigenze. 

Scopriamo qual è la differenza tra questi specialisti, quali problemi aziendali risolvono, quali competenze hanno e quanto guadagnano. Il materiale si è rivelato ampio, quindi lo abbiamo diviso in due pubblicazioni.

Nel primo articolo, Elena Gerasimova, preside della facoltà”Scienza dei dati e analisi" in Netology, racconta qual è la differenza tra un Data Scientist e un Data Engineer e con quali strumenti lavorano.

Come differiscono i ruoli di ingegneri e scienziati

Un ingegnere dei dati è uno specialista che, da un lato, sviluppa, testa e mantiene l'infrastruttura dei dati: database, sistemi di archiviazione e di elaborazione di massa. D’altra parte, è lui che pulisce e “pettina” i dati ad uso di analisti e data scientist, cioè crea pipeline di elaborazione dei dati.

Data Scientist crea e addestra modelli predittivi (e altri) utilizzando algoritmi di apprendimento automatico e reti neurali, aiutando le aziende a trovare modelli nascosti, prevedere sviluppi e ottimizzare i processi aziendali chiave.

La differenza principale tra un Data Scientist e un Data Engineer è che di solito hanno obiettivi diversi. Entrambi lavorano per garantire che i dati siano accessibili e di alta qualità. Ma un Data Scientist trova risposte alle sue domande e verifica ipotesi in un ecosistema di dati (ad esempio, basato su Hadoop) e un Data Engineer crea una pipeline per la manutenzione di un algoritmo di apprendimento automatico scritto da un data scientist in un cluster Spark all'interno dello stesso ecosistema. 

Un data engineer apporta valore a un'azienda lavorando come parte di un team. Il suo compito è quello di fungere da importante collegamento tra diversi partecipanti: dagli sviluppatori ai consumatori aziendali di reporting, e di aumentare la produttività degli analisti, dal marketing e prodotto alla BI. 

Un Data Scientist, al contrario, prende parte attiva alla strategia dell'azienda ed estrae insight, prende decisioni, implementa algoritmi di automazione, modella e genera valore dai dati.
Data Engineer e Data Scientist: qual è la differenza?

Lavorare con i dati è soggetto al principio GIGO (garbage in - garbage out): se analisti e data scientist si occupano di dati impreparati e potenzialmente errati, i risultati anche utilizzando gli algoritmi di analisi più sofisticati non saranno corretti. 

Gli ingegneri dei dati risolvono questo problema costruendo pipeline per l'elaborazione, la pulizia e la trasformazione dei dati e consentendo ai data scientist di lavorare con dati di alta qualità. 

Esistono molti strumenti sul mercato per lavorare con i dati che coprono ogni fase: dalla comparsa dei dati all'output fino a un dashboard per il consiglio di amministrazione. Ed è importante che la decisione di utilizzarli venga presa da un ingegnere, non perché sia ​​di moda, ma perché aiuterà davvero il lavoro degli altri partecipanti al processo. 

Convenzionalmente: se un'azienda ha bisogno di stabilire connessioni tra BI ed ETL - caricando dati e aggiornando report, ecco una tipica base legacy con cui un Data Engineer dovrà occuparsi (va bene se nel team c'è anche un architetto).

Responsabilità di un ingegnere dei dati

  • Sviluppo, costruzione e manutenzione di infrastrutture di elaborazione dati.
  • Gestire gli errori e creare pipeline di elaborazione dati affidabili.
  • Portare i dati non strutturati provenienti da varie fonti dinamiche nella forma necessaria per il lavoro degli analisti.
  • Fornire raccomandazioni per migliorare la coerenza e la qualità dei dati.
  • Fornire e mantenere l'architettura dei dati utilizzata da data scientist e analisti di dati.
  • Elabora e archivia i dati in modo coerente ed efficiente in un cluster distribuito di decine o centinaia di server.
  • Valuta i compromessi tecnici degli strumenti per creare architetture semplici ma robuste in grado di sopravvivere alle interruzioni.
  • Controllo e supporto dei flussi di dati e dei relativi sistemi (impostazione di monitoraggio e alert).

Esiste un'altra specializzazione all'interno del percorso dell'ingegnere dei dati: l'ingegnere ML. In breve, questi ingegneri sono specializzati nel portare modelli di machine learning nell’implementazione e nell’utilizzo industriale. Spesso, un modello ricevuto da un data scientist fa parte di uno studio e potrebbe non funzionare in condizioni di combattimento.

Responsabilità di un data scientist

  • Estrarre funzionalità dai dati per applicare algoritmi di machine learning.
  • Utilizzo di vari strumenti di machine learning per prevedere e classificare modelli nei dati.
  • Migliorare le prestazioni e l'accuratezza degli algoritmi di apprendimento automatico perfezionando e ottimizzando gli algoritmi.
  • Formazione di ipotesi “forti” in accordo con la strategia aziendale che necessitano di essere testate.

Sia Data Engineer che Data Scientist condividono un contributo tangibile allo sviluppo di una cultura dei dati, attraverso la quale un'azienda può generare profitti aggiuntivi o ridurre i costi.

Con quali linguaggi e strumenti lavorano ingegneri e scienziati?

Oggi le aspettative per i data scientist sono cambiate. In precedenza, gli ingegneri raccoglievano query SQL di grandi dimensioni, scrivevano manualmente MapReduce ed elaboravano i dati utilizzando strumenti come Informatica ETL, Pentaho ETL e Talend. 

Nel 2020, uno specialista non può fare a meno della conoscenza di Python e dei moderni strumenti di calcolo (ad esempio Airflow), della comprensione dei principi di lavoro con le piattaforme cloud (utilizzandole per risparmiare sull'hardware, osservando i principi di sicurezza).

SAP, Oracle, MySQL, Redis sono strumenti tradizionali per gli ingegneri dei dati nelle grandi aziende. Sono buoni, ma il costo delle licenze è così alto che imparare a lavorarci ha senso solo nei progetti industriali. Allo stesso tempo esiste un'alternativa gratuita sotto forma di Postgres: è gratuito e adatto non solo alla formazione. 

Data Engineer e Data Scientist: qual è la differenza?
Storicamente si trovano spesso richieste per Java e Scala, anche se con lo sviluppo delle tecnologie e degli approcci questi linguaggi passano in secondo piano.

Tuttavia, i BigData hardcore: Hadoop, Spark e il resto dello zoo non sono più un prerequisito per un ingegnere dei dati, ma una sorta di strumenti per risolvere problemi che non possono essere risolti dall'ETL tradizionale. 

La tendenza è quella dei servizi per l'utilizzo di strumenti senza la conoscenza della lingua in cui sono scritti (ad esempio, Hadoop senza conoscenza di Java), nonché la fornitura di servizi già pronti per l'elaborazione dei dati in streaming (riconoscimento vocale o riconoscimento di immagini su video ).

Le soluzioni industriali di SAS e SPSS sono popolari, mentre Tableau, Rapidminer, Stata e Julia sono ampiamente utilizzate anche dai data scientist per attività locali.

Data Engineer e Data Scientist: qual è la differenza?
La capacità di costruire autonomamente pipeline è apparsa agli analisti e ai data scientist solo un paio di anni fa: ad esempio, è già possibile inviare dati a un archivio basato su PostgreSQL utilizzando script relativamente semplici. 

In genere, l'uso di pipeline e strutture dati integrate rimane di responsabilità degli ingegneri dei dati. Ma oggi la tendenza verso specialisti a T con ampie competenze in campi correlati è più forte che mai, perché gli strumenti vengono costantemente semplificati.

Perché Data Engineer e Data Scientist lavorano insieme

Lavorando a stretto contatto con gli ingegneri, i data scientist possono concentrarsi sul lato della ricerca, creando algoritmi di machine learning pronti per la produzione.
Inoltre, gli ingegneri devono concentrarsi sulla scalabilità, sul riutilizzo dei dati e sulla garanzia che le pipeline di input e output dei dati in ogni singolo progetto siano conformi all'architettura globale.

Questa separazione delle responsabilità garantisce la coerenza tra i team che lavorano su diversi progetti di machine learning. 

La collaborazione aiuta a creare nuovi prodotti in modo efficiente. Velocità e qualità si ottengono attraverso un equilibrio tra la creazione di un servizio per tutti (archiviazione globale o integrazione di dashboard) e l'implementazione di ogni esigenza o progetto specifico (pipeline altamente specializzata, collegamento di fonti esterne). 

Lavorare a stretto contatto con data scientist e analisti aiuta gli ingegneri a sviluppare capacità analitiche e di ricerca per scrivere codice migliore. La condivisione delle conoscenze tra gli utenti del warehouse e del data Lake migliora, rendendo i progetti più agili e fornendo risultati più sostenibili a lungo termine.

Nelle aziende che mirano a sviluppare una cultura di lavoro con i dati e a costruire processi aziendali basati su di essi, Data Scientist e Data Engineer si completano a vicenda e creano un sistema completo di analisi dei dati. 

Nel prossimo articolo parleremo di che tipo di formazione dovrebbero avere un Data Engineer e un Data Scientist, quali competenze devono sviluppare e come funziona il mercato.

Dalla redazione di Netology

Se stai guardando la professione di Data Engineer o Data Scientist, ti invitiamo a studiare i nostri programmi di corso:

Fonte: habr.com

Aggiungi un commento