Qui són els enginyers de dades i com ho fas?

Hola de nou! El títol de l'article parla per si sol. En previsió de l'inici del curs Enginyer de dades Us suggerim que entengueu qui són els enginyers de dades. Hi ha molts enllaços útils a l'article. Feliç lectura.

Qui són els enginyers de dades i com ho fas?

Una guia senzilla sobre com atrapar l'onada d'enginyeria de dades i no deixar-la arrossegar a l'abisme.

Sembla que tothom vol convertir-se en un científic de dades en aquests dies. Però, què passa amb l'enginyeria de dades? Essencialment, es tracta d'una mena d'híbrid entre un analista de dades i un científic de dades; Normalment, un enginyer de dades és responsable de gestionar els fluxos de treball, processar canalitzacions i processos ETL. A causa de la importància d'aquestes funcions, actualment aquesta és una altra argot professional popular que està guanyant impuls activament.

Els alts sous i la gran demanda són només una petita part del que fa que aquesta feina sigui extremadament atractiva! Si vols unir-te a les files d'herois, mai és massa tard per començar a aprendre. En aquesta publicació, he recopilat tota la informació necessària per ajudar-te a fer els teus primers passos.

Comencem, doncs,

Què és l'enginyeria de dades?

Sincerament, no hi ha millor explicació que aquesta:

"Un científic pot descobrir una nova estrella, però no pot crear-ne una. Haurà de demanar a un enginyer que ho faci per ell".

-Gordon Lindsay Glegg

Per tant, el paper d'un enginyer de dades és força important.

Com el seu nom indica, l'enginyeria de dades s'ocupa de les dades, és a dir, el seu lliurament, emmagatzematge i processament. En conseqüència, la tasca principal dels enginyers és proporcionar una infraestructura fiable per a les dades. Si ens fixem en la jerarquia de necessitats d'IA, l'enginyeria de dades ocupa les primeres 2-3 etapes: recollida, moviment i emmagatzematge, preparació de dades.

Qui són els enginyers de dades i com ho fas?

Què fa un enginyer de dades?

Amb l'arribada del big data, l'abast de la responsabilitat ha canviat dràsticament. Si anteriorment aquests experts escrivien grans consultes SQL i destil·laven dades mitjançant eines com Informatica ETL, Pentaho ETL, Talend, ara els requisits per als enginyers de dades han augmentat.

La majoria d'empreses amb vacants per a la plaça d'enginyer de dades tenen els requisits següents:

  • Excel·lent coneixement de SQL i Python.
  • Experiència amb plataformes en núvol, especialment Amazon Web Services.
  • Preferible coneixements de Java/Scala.
  • Bon coneixement de les bases de dades SQL i NoSQL (modelització de dades, emmagatzematge de dades).

Tingueu en compte que aquests són només els essencials. A partir d'aquesta llista, es pot suposar que els enginyers de dades són especialistes en el camp del desenvolupament de programari i backend.
Per exemple, si una empresa comença a generar una gran quantitat de dades de diverses fonts, la vostra tasca com a enginyer de dades és organitzar la recollida d'informació, el seu processament i emmagatzematge.

La llista d'eines utilitzades en aquest cas pot variar, tot depèn del volum d'aquestes dades, de la velocitat de recepció i de l'heterogeneïtat. La majoria de les empreses no tracten gens amb big data, de manera que com a repositori centralitzat, un anomenat magatzem de dades, podeu utilitzar una base de dades SQL (PostgreSQL, MySQL, etc.) amb un petit conjunt d'scripts que alimenten les dades a el magatzem.

Els gegants informàtics com Google, Amazon, Facebook o Dropbox tenen requisits més alts: coneixements de Python, Java o Scala.

  • Experiència amb big data: Hadoop, Spark, Kafka.
  • Coneixement d'algorismes i estructures de dades.
  • Entendre els fonaments dels sistemes distribuïts.
  • L'experiència amb eines de visualització de dades com Tableau o ElasticSearch serà un avantatge.

És a dir, hi ha un clar canvi cap al big data, és a dir, en el seu processament sota càrregues elevades. Aquestes empreses han augmentat els requisits de tolerància a errors del sistema.

Enginyers de dades vs. científics de dades

Qui són els enginyers de dades i com ho fas?
D'acord, va ser una comparació senzilla i divertida (res personal), però en realitat és molt més complicat.

En primer lloc, heu de saber que hi ha molta ambigüitat en la delimitació dels rols i les habilitats d'un científic de dades i d'un enginyer de dades. És a dir, us podeu confondre fàcilment sobre quines habilitats es necessiten per ser un enginyer de dades reeixit. Per descomptat, hi ha certes habilitats que es superposen amb ambdós rols. Però també hi ha una sèrie d'habilitats diametralment oposades.

La ciència de dades és un negoci seriós, però estem avançant cap a un món de ciències de dades funcionals on els professionals poden fer la seva pròpia anàlisi. Per habilitar canalitzacions de dades i estructures de dades integrades, necessiteu enginyers de dades, no científics de dades.

Té més demanda un enginyer de dades que un científic de dades?

- Sí, perquè abans de poder fer pastís de pastanaga, primer cal collir, pelar i emmagatzemar pastanagues!

Un enginyer de dades entén la programació millor que qualsevol científic de dades, però quan es tracta d'estadístiques, és cert el contrari.

Però aquí teniu l'avantatge d'un enginyer de dades:

Sense ell/ella, el valor del model de prototip, que sovint consisteix en una peça de codi de mala qualitat en un fitxer Python, obtingut d'un científic de dades i que d'alguna manera produeix un resultat, tendeix a zero.

Sense un enginyer de dades, aquest codi mai es convertirà en un projecte i cap problema empresarial es resoldrà de manera efectiva. L'enginyer de dades està intentant convertir tot això en un producte.

Informació bàsica que un enginyer de dades ha de conèixer

Qui són els enginyers de dades i com ho fas?

Per tant, si aquesta feina et fa sortir la llum i estàs entusiasmat, pots aprendre-la, dominar totes les habilitats necessàries i convertir-te en una autèntica estrella de rock en el camp de l'enginyeria de dades. I, sí, podeu fer-ho fins i tot sense habilitats de programació o altres coneixements tècnics. És difícil, però possible!

Quins són els primers passos?

Hauríeu de tenir una idea general de què és què.

En primer lloc, l'enginyeria de dades fa referència a la informàtica. Més concretament, heu d'entendre algorismes eficients i estructures de dades. En segon lloc, com que els enginyers de dades treballen amb dades, és necessari entendre els principis de les bases de dades i les estructures que les subjacen.

Per exemple, les bases de dades SQL convencionals de B-tree es basen en l'estructura de dades B-Tree, així com, en els dipòsits distribuïts moderns, LSM-Tree i altres modificacions de les taules hash.

*Aquests passos es basen en un gran article Adilya Khashtamova. Per tant, si sabeu rus, doneu suport a aquest autor i llegiu la seva publicació.

1. Algorismes i estructures de dades

L'ús de l'estructura de dades adequada pot millorar significativament el rendiment d'un algorisme. L'ideal seria que tots estiguem aprenent sobre les estructures de dades i els algorismes a les nostres escoles, però això rarament es tracta. En qualsevol cas, mai és massa tard per conèixer-se.
Així que aquí teniu els meus cursos gratuïts preferits per aprendre estructures de dades i algorismes:

A més, no us oblideu del treball clàssic de Thomas Corman sobre algorismes: Introducció als algorismes. Aquesta és la referència perfecta quan necessiteu refrescar la memòria.

  • Per millorar les teves habilitats, utilitza Leetcode.

També pots submergir-te en el món de les bases de dades amb vídeos sorprenents de la Universitat Carnegie Mellon a Youtube:

2. Aprèn SQL

Tota la nostra vida són dades. I per extreure aquestes dades de la base de dades, cal "parlar" el mateix idioma amb ella.

SQL (Structured Query Language) és el llenguatge de comunicació en el domini de les dades. Independentment del que digui algú, SQL ha viscut, és viu i viurà molt de temps.

Si heu estat en desenvolupament durant molt de temps, probablement haureu notat que els rumors sobre la mort imminent d'SQL apareixen periòdicament. El llenguatge es va desenvolupar a principis dels anys 70 i encara és molt popular entre analistes, desenvolupadors i simplement entusiastes.
Sense coneixements d'SQL no hi ha res a fer en enginyeria de dades, ja que inevitablement haureu de crear consultes per recuperar dades. Tots els magatzems de grans dades moderns admeten SQL:

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server

... i molts altres.

Per analitzar una gran capa de dades emmagatzemades en sistemes distribuïts com HDFS, es van inventar motors SQL: Apache Hive, Impala, etc. Mira, no va enlloc.

Com aprendre SQL? Només fes-ho a la pràctica.

Per fer-ho, recomanaria consultar un excel·lent tutorial, que, per cert, és gratuït Mode Analytics.

  1. SQL intermedi
  2. Unir dades en SQL

El que fa que aquests cursos siguin especials és que tenen un entorn interactiu on podeu escriure i executar consultes SQL directament al vostre navegador. Recurs SQL modern no serà superflu. I podeu aplicar aquests coneixements Tasques de Leetcode a la secció Bases de dades.

3. Programació en Python i Java/Scala

Per què hauríeu d'aprendre el llenguatge de programació Python, ja vaig escriure a l'article Python vs R. Escollint la millor eina per a IA, ML i Data Science. Quan es tracta de Java i Scala, la majoria de les eines per emmagatzemar i processar grans quantitats de dades estan escrites en aquests idiomes. Per exemple:

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

Per entendre com funcionen aquestes eines, cal conèixer els idiomes en què estan escrites. L'enfocament funcional de Scala us permet resoldre eficaçment problemes de processament de dades paral·lel. Python, malauradament, no pot presumir de velocitat i processament paral·lel. En general, el coneixement de diversos llenguatges i paradigmes de programació és bo per a l'amplitud d'enfocaments per resoldre problemes.

Per capbussar-vos en l'idioma Scala, podeu llegir Programació a Scala de l'autor de la llengua. Twitter també va publicar una bona guia introductòria: Escola Scala.

Pel que fa a Python, crec Python fluid millor llibre de nivell mitjà.

4. Eines per treballar amb big data

Aquí teniu una llista de les eines més populars al món del big data:

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

Podeu trobar més informació sobre la creació de grans blocs de dades en aquest sorprenent entorn interactiu. Les eines més populars són Spark i Kafka. Sens dubte val la pena estudiar-los, és aconsellable entendre com funcionen des de dins. Jay Kreps (coautor de Kafka) va publicar una obra monumental el 2013 El registre: el que tots els desenvolupadors de programari han de saber sobre l'abstracció d'agregació de dades en temps realPer cert, les idees principals d'aquest Talmud es van utilitzar per crear Apache Kafka.

5. Plataformes en núvol

Qui són els enginyers de dades i com ho fas?

El coneixement d'almenys una plataforma en núvol es troba a la llista de requisits bàsics per als sol·licitants a la posició d'enginyer de dades. Els empresaris prefereixen Amazon Web Services, amb la plataforma al núvol de Google en segon lloc i Microsoft Azure arrodonint els tres primers.

Heu de tenir bons coneixements d'Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistemes distribuïts

Treballar amb big data implica la presència de clústers d'ordinadors de funcionament independent, la comunicació entre els quals es realitza a través d'una xarxa. Com més gran és el clúster, més gran és la probabilitat de fallada dels seus nodes membres. Per convertir-se en un gran científic de dades, cal entendre els problemes i les solucions existents per als sistemes distribuïts. Aquesta zona és antiga i complexa.

Andrew Tanenbaum és considerat un pioner en aquest camp. Per a aquells que no tinguin por de la teoria, recomano el seu llibre "Sistemes distribuïts", pot semblar descoratjador per als principiants, però realment us ajudarà a perfeccionar les vostres habilitats.

Considero Disseny d'aplicacions intensives en dades de Martin Kleppmann millor llibre d'introducció. Per cert, Martin té una meravella Bloc. El seu treball ajudarà a sistematitzar el coneixement sobre la construcció d'una infraestructura moderna per emmagatzemar i processar grans dades.
Per als que els agradi veure vídeos, hi ha un curs a Youtube Sistemes informàtics distribuïts.

7. Conductes de dades

Qui són els enginyers de dades i com ho fas?

Les canalitzacions de dades són una cosa sense la qual no podeu viure com a enginyer de dades.

La majoria de les vegades, un enginyer de dades construeix l'anomenat pipeline de dades, és a dir, crea un procés per lliurar dades d'un lloc a un altre. Poden ser scripts personalitzats que van a l'API d'un servei extern o fan una consulta SQL, augmenten les dades i les posen en un magatzem centralitzat (magatzem de dades) o en un magatzem de dades no estructurat (llacs de dades).

En resum: la llista de verificació bàsica per a un enginyer de dades

Qui són els enginyers de dades i com ho fas?

En resum, cal una bona comprensió del següent:

  • Sistemes d'informació;
  • Desenvolupament de programari (Agile, DevOps, Design Techniques, SOA);
  • Sistemes distribuïts i programació paral·lela;
  • Fonaments de bases de dades: planificació, disseny, funcionament i resolució de problemes;
  • Disseny d'experiments: proves A/B per demostrar conceptes, determinar la fiabilitat, el rendiment del sistema i desenvolupar camins fiables per oferir bones solucions ràpidament.

Aquests són només alguns dels requisits per convertir-se en enginyer de dades, així que aprèn i entén els sistemes de dades, els sistemes d'informació, el lliurament/implementació/integració contínua, els llenguatges de programació i altres temes d'informàtica (no totes les àrees temàtiques).

I finalment, l'últim però molt important que vull dir.

El camí per convertir-se en enginyeria de dades no és tan senzill com podria semblar. Ell no perdona, frustra, i has d'estar preparat per a això. Alguns moments d'aquest viatge us poden impulsar a renunciar. Però això és un treball real i un procés d'aprenentatge.

Simplement no ho ensucrau des del principi. L'objectiu de viatjar és aprendre el màxim possible i estar preparat per a nous reptes.
Aquí hi ha una gran imatge que he trobat que il·lustra bé aquest punt:

Qui són els enginyers de dades i com ho fas?

I sí, recordeu evitar l'esgotament i el descans. Això també és molt important. Bona sort!

Què us sembla l'article, amics? Us convidem a seminari web gratuït, que tindrà lloc avui a les 20.00 hores. Durant el seminari web, parlarem de com crear un sistema de processament de dades eficaç i escalable per a una petita empresa o startup amb un cost mínim. Com a pràctica, ens familiaritzarem amb les eines de processament de dades de Google Cloud. Ens veiem!

Font: www.habr.com

Afegeix comentari