Chi sono gli ingegneri dei dati e come si diventa uno?

Ciao di nuovo! Il titolo dell'articolo parla da solo. In attesa dell'inizio del corso Ingegnere dei dati Ti suggeriamo di capire chi sono gli ingegneri dei dati. Nell'articolo ci sono molti link utili. Buona lettura.

Chi sono gli ingegneri dei dati e come si diventa uno?

Una semplice guida su come cogliere l'onda dell'ingegneria dei dati e non lasciarsi trascinare nel baratro.

Sembra che oggigiorno tutti vogliano diventare Data Scientist. Ma che dire dell'ingegneria dei dati? Essenzialmente, si tratta di una sorta di ibrido tra un analista di dati e uno scienziato dei dati; Un ingegnere dei dati è in genere responsabile della gestione dei flussi di lavoro, delle pipeline di elaborazione e dei processi ETL. A causa dell'importanza di queste funzioni, questo è attualmente un altro gergo professionale popolare che sta guadagnando slancio.

Stipendi elevati e grande domanda sono solo una piccola parte di ciò che rende questo lavoro estremamente attraente! Se vuoi unirti ai ranghi degli eroi, non è mai troppo tardi per iniziare a imparare. In questo post ho raccolto tutte le informazioni necessarie per aiutarti a muovere i primi passi.

Quindi cominciamo!

Cos'è l'ingegneria dei dati?

Sinceramente non c'è spiegazione migliore di questa:

“Uno scienziato può scoprire una nuova stella, ma non può crearne una. Dovrà chiedere a un ingegnere di farlo per lui."

–Gordon Lindsay Glegg

Pertanto, il ruolo di un ingegnere dei dati è piuttosto significativo.

Come suggerisce il nome, l’ingegneria dei dati si occupa dei dati, ovvero della loro consegna, archiviazione ed elaborazione. Di conseguenza, il compito principale degli ingegneri è fornire un'infrastruttura affidabile per i dati. Se osserviamo la gerarchia dei bisogni dell’AI, l’ingegneria dei dati occupa le prime 2-3 fasi: raccolta, spostamento e archiviazione, preparazione dei dati.

Chi sono gli ingegneri dei dati e come si diventa uno?

Cosa fa un ingegnere dei dati?

Con l’avvento dei big data, la portata della responsabilità è cambiata radicalmente. Se in precedenza questi esperti scrivevano query SQL di grandi dimensioni e distillavano dati utilizzando strumenti come Informatica ETL, Pentaho ETL, Talend, ora i requisiti per gli ingegneri dei dati sono aumentati.

La maggior parte delle aziende con posizioni aperte per la posizione di Data Engineer hanno i seguenti requisiti:

  • Ottima conoscenza di SQL e Python.
  • Esperienza con piattaforme cloud, in particolare Amazon Web Services.
  • Preferibile conoscenza Java/Scala.
  • Buona conoscenza dei database SQL e NoSQL (modellazione dei dati, data warehousing).

Tieni presente che questi sono solo gli elementi essenziali. Da questo elenco si può presumere che gli ingegneri dei dati siano specialisti nel campo dello sviluppo e del backend del software.
Ad esempio, se un'azienda inizia a generare una grande quantità di dati da varie fonti, il tuo compito come ingegnere dei dati è organizzare la raccolta delle informazioni, la loro elaborazione e archiviazione.

L'elenco degli strumenti utilizzati in questo caso può differire, tutto dipende dal volume di questi dati, dalla velocità di ricezione e dall'eterogeneità. La maggior parte delle aziende non si occupa affatto di big data, quindi come repository centralizzato, un cosiddetto data warehouse, è possibile utilizzare un database SQL (PostgreSQL, MySQL, ecc.) con un piccolo set di script che inseriscono i dati in il magazzino.

I giganti dell'IT come Google, Amazon, Facebook o Dropbox hanno requisiti più elevati: conoscenza di Python, Java o Scala.

  • Esperienza con i big data: Hadoop, Spark, Kafka.
  • Conoscenza di algoritmi e strutture dati.
  • Conoscere i fondamenti dei sistemi distribuiti.
  • L'esperienza con strumenti di visualizzazione dei dati come Tableau o ElasticSearch sarà un vantaggio.

C’è cioè un chiaro spostamento verso i big data, in particolare nella loro elaborazione sotto carichi elevati. Queste aziende hanno requisiti più elevati per la tolleranza agli errori di sistema.

Ingegneri dei dati vs. scienziati dei dati

Chi sono gli ingegneri dei dati e come si diventa uno?
Ok, era un paragone semplice e divertente (niente di personale), ma in realtà è molto più complicato.

Innanzitutto, dovresti sapere che esistono molte ambiguità nella delineazione dei ruoli e delle competenze di un data scientist e di un data engineer. Cioè, puoi facilmente essere confuso su quali competenze siano necessarie per essere un ingegnere dei dati di successo. Naturalmente, ci sono alcune abilità che si sovrappongono a entrambi i ruoli. Ma esistono anche una serie di competenze diametralmente opposte.

La scienza dei dati è una faccenda seria, ma ci stiamo muovendo verso un mondo di scienza dei dati funzionale in cui i professionisti sono in grado di eseguire le proprie analisi. Per abilitare pipeline di dati e strutture dati integrate, sono necessari ingegneri dei dati, non scienziati dei dati.

Un data engineer è più richiesto di un data scientist?

- Sì, perché prima di poter preparare la torta alle carote, devi prima raccogliere, sbucciare e conservare le carote!

Un ingegnere dei dati comprende la programmazione meglio di qualsiasi scienziato dei dati, ma quando si tratta di statistica, è vero il contrario.

Ma ecco il vantaggio di un ingegnere dei dati:

Senza di lui/lei, il valore del modello prototipo, il più delle volte costituito da un pezzo di codice di pessima qualità in un file Python, ottenuto da uno scienziato dei dati e che in qualche modo produce un risultato, tende a zero.

Senza un data engineer, questo codice non diventerà mai un progetto e nessun problema aziendale sarà risolto in modo efficace. L'ingegnere dei dati sta cercando di trasformare tutto questo in un prodotto.

Informazioni di base che un ingegnere dei dati dovrebbe conoscere

Chi sono gli ingegneri dei dati e come si diventa uno?

Quindi, se questo lavoro fa emergere la luce in te e sei entusiasta, puoi impararlo, puoi padroneggiare tutte le competenze necessarie e diventare una vera rock star nel campo dell'ingegneria dei dati. E sì, puoi farcela anche senza competenze di programmazione o altre conoscenze tecniche. È difficile, ma possibile!

Quali sono i primi passi?

Dovresti avere un'idea generale di cosa è cosa.

Innanzitutto, Data Engineering si riferisce all’informatica. Più specificamente, è necessario comprendere algoritmi e strutture dati efficienti. In secondo luogo, poiché gli ingegneri dei dati lavorano con i dati, è necessario comprendere i principi dei database e le strutture che ne sono alla base.

Ad esempio, i database SQL B-tree convenzionali si basano sulla struttura dati B-Tree, così come, nei moderni repository distribuiti, LSM-Tree e altre modifiche delle tabelle hash.

*Questi passaggi si basano su un ottimo articolo Adilia Khashtamova. Quindi, se conosci il russo, sostieni questo autore e leggi il suo posto.

1. Algoritmi e strutture dati

L'utilizzo della giusta struttura dati può migliorare significativamente le prestazioni di un algoritmo. Idealmente, dovremmo tutti imparare a conoscere le strutture dei dati e gli algoritmi nelle nostre scuole, ma questo è raramente trattato. In ogni caso, non è mai troppo tardi per fare conoscenza.
Quindi ecco i miei corsi gratuiti preferiti per l'apprendimento di strutture dati e algoritmi:

Inoltre non dimenticare il classico lavoro di Thomas Corman sugli algoritmi: Introduzione agli algoritmi. Questo è il riferimento perfetto quando hai bisogno di rinfrescarti la memoria.

  • Per migliorare le tue abilità, usa codice.

Puoi anche tuffarti nel mondo dei database con i fantastici video della Carnegie Mellon University su Youtube:

2. Impara l'SQL

Tutta la nostra vita è fatta di dati. E per estrarre questi dati dal database, è necessario “parlare” con esso la stessa lingua.

SQL (Structured Query Language) è il linguaggio di comunicazione nel dominio dei dati. Indipendentemente da ciò che si dice, SQL è vissuto, è vivo e vivrà per molto tempo.

Se lavori nello sviluppo da molto tempo, probabilmente hai notato che periodicamente compaiono voci sulla morte imminente di SQL. Il linguaggio è stato sviluppato all'inizio degli anni '70 ed è ancora molto popolare tra analisti, sviluppatori e semplici appassionati.
Senza la conoscenza di SQL non c'è nulla da fare nell'ingegneria dei dati poiché dovrai inevitabilmente creare query per recuperare i dati. Tutti i moderni big data warehouse supportano SQL:

  • Amazon RedShift
  • HP Verticale
  • Oracle
  • SQL Server

... e molti altri.

Per analizzare un ampio strato di dati archiviati in sistemi distribuiti come HDFS, sono stati inventati i motori SQL: Apache Hive, Impala, ecc. Vedi, non va da nessuna parte.

Come imparare SQL? Fatelo e basta in pratica.

Per fare ciò, ti consiglio di dare un'occhiata all'eccellente tutorial, che, tra l'altro, è gratuito Modalità Analytics.

  1. SQL intermedio
  2. Unione dei dati in SQL

Ciò che rende speciali questi corsi è che dispongono di un ambiente interattivo in cui puoi scrivere ed eseguire query SQL direttamente nel tuo browser. Risorsa SQL moderno non sarà superfluo. E puoi applicare questa conoscenza a Compiti di Leetcode nella sezione Banche dati.

3. Programmazione in Python e Java/Scala

Perché dovresti imparare il linguaggio di programmazione Python, l'ho già scritto nell'articolo Python vs R. Scelta dello strumento migliore per AI, ML e Data Science. Quando si tratta di Java e Scala, la maggior parte degli strumenti per archiviare ed elaborare enormi quantità di dati sono scritti in questi linguaggi. Per esempio:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Per capire come funzionano questi strumenti è necessario conoscere le lingue in cui sono scritti. L'approccio funzionale di Scala consente di risolvere efficacemente i problemi di elaborazione parallela dei dati. Python, sfortunatamente, non può vantare velocità ed elaborazione parallela. In generale, la conoscenza di diversi linguaggi e paradigmi di programmazione è positiva per l'ampiezza degli approcci alla risoluzione dei problemi.

Per tuffarsi nella lingua scalare, si può leggere Programmazione in Scala dall'autore della lingua. Twitter ha anche pubblicato una buona guida introduttiva - Scuola scaligera.

Per quanto riguarda Python, credo Python fluente miglior libro di livello medio.

4. Strumenti per lavorare con i big data

Ecco un elenco degli strumenti più popolari nel mondo dei big data:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Puoi trovare ulteriori informazioni sulla creazione di blocchi di dati di grandi dimensioni in questo fantastico ambiente interattivo. Gli strumenti più popolari sono Spark e Kafka. Vale sicuramente la pena studiarli, è consigliabile capire come funzionano dall'interno. Jay Kreps (coautore di Kafka) ha pubblicato un'opera monumentale nel 2013 Il registro: ciò che ogni sviluppatore di software dovrebbe sapere sull'astrazione dell'aggregazione dei dati in tempo realeA proposito, le idee principali di questo Talmud furono utilizzate per creare Apache Kafka.

5. Piattaforme cloud

Chi sono gli ingegneri dei dati e come si diventa uno?

La conoscenza di almeno una piattaforma cloud è nell'elenco dei requisiti di base per i candidati alla posizione di ingegnere dei dati. I datori di lavoro preferiscono Amazon Web Services, con la piattaforma cloud di Google al secondo posto e Microsoft Azure a completare le prime tre posizioni.

È necessario avere una buona conoscenza di Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistemi distribuiti

Lavorare con i big data implica la presenza di cluster di computer che operano in modo indipendente, la comunicazione tra i quali viene effettuata tramite una rete. Più grande è il cluster, maggiore è la probabilità di guasto dei suoi nodi membri. Per diventare un grande scienziato dei dati, devi comprendere i problemi e le soluzioni esistenti per i sistemi distribuiti. Questa zona è vecchia e complessa.

Andrew Tanenbaum è considerato un pioniere in questo campo. Per coloro che non hanno paura della teoria, consiglio il suo libro "Sistemi distribuiti", può sembrare scoraggiante per i principianti, ma ti aiuterà davvero ad affinare le tue abilità.

Io considero Progettazione di applicazioni ad uso intensivo di dati di Martin Kleppmann miglior libro introduttivo. A proposito, Martin ha un meraviglioso blog. Il suo lavoro aiuterà a sistematizzare le conoscenze sulla costruzione di un'infrastruttura moderna per l'archiviazione e l'elaborazione dei big data.
Per coloro a cui piace guardare i video, c'è un corso su Youtube Sistemi informatici distribuiti.

7. Condutture di dati

Chi sono gli ingegneri dei dati e come si diventa uno?

Le pipeline di dati sono qualcosa di cui non puoi fare a meno come ingegnere dei dati.

Nella maggior parte dei casi, un ingegnere dei dati costruisce una cosiddetta pipeline di dati, ovvero crea un processo per fornire dati da un luogo a un altro. Potrebbero trattarsi di script personalizzati che vanno all'API di un servizio esterno o eseguono una query SQL, aumentano i dati e li inseriscono in un archivio centralizzato (data warehouse) o in un archivio dati non strutturato (data lake).

In sintesi: la checklist di base per un data engineer

Chi sono gli ingegneri dei dati e come si diventa uno?

Riassumendo è necessaria una buona conoscenza di quanto segue:

  • Sistemi di informazione;
  • Sviluppo software (Agile, DevOps, Tecniche di progettazione, SOA);
  • Sistemi distribuiti e programmazione parallela;
  • Fondamenti di database: pianificazione, progettazione, funzionamento e risoluzione dei problemi;
  • Progettazione di esperimenti: test A/B per dimostrare concetti, determinare l'affidabilità, le prestazioni del sistema e sviluppare percorsi affidabili per fornire rapidamente buone soluzioni.

Questi sono solo alcuni dei requisiti per diventare un ingegnere dei dati, quindi impara e comprendi i sistemi di dati, i sistemi informativi, la distribuzione/distribuzione/integrazione continua, i linguaggi di programmazione e altri argomenti di informatica (non tutte le aree tematiche).

E infine, l'ultima ma molto importante cosa che voglio dire.

Il percorso per diventare Data Engineering non è così semplice come potrebbe sembrare. Non perdona, frustra e tu devi essere preparato per questo. Alcuni momenti di questo viaggio potrebbero spingerti ad arrenderti. Ma questo è un vero lavoro e un processo di apprendimento.

Basta non addolcirlo dall'inizio. Lo scopo del viaggio è imparare il più possibile ed essere pronti per nuove sfide.
Ecco una bella immagine che ho trovato che illustra bene questo punto:

Chi sono gli ingegneri dei dati e come si diventa uno?

E sì, ricorda di evitare l'esaurimento e il riposo. Anche questo è molto importante. Buona fortuna!

Cosa ne pensate dell'articolo, amici? Ti invitiamo a webinar gratuito, che avrà luogo oggi alle ore 20.00. Durante il webinar discuteremo come costruire un sistema di elaborazione dati efficace e scalabile per una piccola azienda o startup a costi minimi. Come pratica, conosceremo gli strumenti di elaborazione dei dati di Google Cloud. Ci vediamo!

Fonte: habr.com

Aggiungi un commento