Vilka är dataingenjörer och hur blir man det?

Hej igen! Rubriken på artikeln talar för sig själv. I väntan på kursstart Dataingenjör Vi föreslår att du förstår vilka dataingenjörer är. Det finns många användbara länkar i artikeln. Glad läsning.

Vilka är dataingenjörer och hur blir man det?

En enkel guide om hur du fångar Data Engineering-vågen och inte låter den dra dig ner i avgrunden.

Det verkar som att alla vill bli dataforskare nuförtiden. Men hur är det med Data Engineering? I huvudsak är detta en sorts hybrid av en dataanalytiker och en datavetare; En dataingenjör är vanligtvis ansvarig för att hantera arbetsflöden, bearbetning av pipelines och ETL-processer. På grund av betydelsen av dessa funktioner är detta för närvarande en annan populär professionell jargong som aktivt tar fart.

Höga löner och stor efterfrågan är bara en liten del av det som gör detta jobb extremt attraktivt! Om du vill ansluta dig till hjältarna är det aldrig för sent att börja lära dig. I det här inlägget har jag samlat all nödvändig information för att hjälpa dig att ta dina första steg.

Så, låt oss börja!

Vad är datateknik?

Ärligt talat, det finns ingen bättre förklaring än denna:

"En vetenskapsman kan upptäcka en ny stjärna, men han kan inte skapa en. Han måste be en ingenjör att göra det åt honom."

–Gordon Lindsay Glegg

Således är rollen som dataingenjör ganska betydande.

Som namnet antyder handlar datateknik om data, nämligen dess leverans, lagring och bearbetning. Följaktligen är ingenjörernas huvuduppgift att tillhandahålla en pålitlig infrastruktur för data. Om vi ​​tittar på AI-hierarkin av behov, upptar datateknik de första 2–3 stegen: insamling, förflyttning och lagring, databeredning.

Vilka är dataingenjörer och hur blir man det?

Vad gör en dataingenjör?

Med tillkomsten av big data har ansvarets omfattning förändrats dramatiskt. Om dessa experter tidigare skrivit stora SQL-frågor och destillerat data med hjälp av verktyg som Informatica ETL, Pentaho ETL, Talend, så har nu kraven på dataingenjörer ökat.

De flesta företag med lediga tjänster för tjänsten som dataingenjör har följande krav:

  • Mycket goda kunskaper i SQL och Python.
  • Erfarenhet av molnplattformar, särskilt Amazon Web Services.
  • Kunskaper i Java/Scala är meriterande.
  • God förståelse för SQL- och NoSQL-databaser (datamodellering, datalager).

Tänk på att detta bara är det väsentliga. Från denna lista kan det antas att dataingenjörer är specialister inom området mjukvaruutveckling och backend.
Till exempel, om ett företag börjar generera en stor mängd data från olika källor, är din uppgift som dataingenjör att organisera insamlingen av information, dess bearbetning och lagring.

Listan över verktyg som används i det här fallet kan skilja sig åt, allt beror på volymen av dessa data, hastigheten på dess mottagande och heterogenitet. De flesta företag sysslar inte alls med big data, så som ett centraliserat arkiv, ett så kallat data warehouse, kan du använda en SQL-databas (PostgreSQL, MySQL, etc.) med en liten uppsättning skript som matar in datan in i lagret.

IT-jättar som Google, Amazon, Facebook eller Dropbox har högre krav: kunskap om Python, Java eller Scala.

  • Erfarenhet av big data: Hadoop, Spark, Kafka.
  • Kunskaper om algoritmer och datastrukturer.
  • Förstå grunderna för distribuerade system.
  • Erfarenhet av datavisualiseringsverktyg som Tableau eller ElasticSearch är meriterande.

Det vill säga att det sker en tydlig förskjutning mot big data, nämligen i dess bearbetning under hög belastning. Dessa företag har ökade krav på systemfeltolerans.

Dataingenjörer vs. datavetare

Vilka är dataingenjörer och hur blir man det?
Okej, det var en enkel och rolig jämförelse (inget personligt), men i verkligheten är det mycket mer komplicerat.

Först bör du veta att det finns en hel del oklarheter i avgränsningen av roller och färdigheter för en datavetare och en dataingenjör. Det vill säga, du kan lätt bli förvirrad över vilka färdigheter som behövs för att bli en framgångsrik dataingenjör. Naturligtvis finns det vissa färdigheter som överlappar med båda rollerna. Men det finns också ett antal diametralt motsatta färdigheter.

Datavetenskap är en seriös verksamhet, men vi går mot en värld av funktionell datavetenskap där praktiker kan göra sin egen analys. För att möjliggöra datapipelines och integrerade datastrukturer behöver du dataingenjörer, inte datavetare.

Är en dataingenjör mer efterfrågad än en datavetare?

– Ja, för innan du kan göra morotskaka behöver du först samla, skala och lagra morötter!

En dataingenjör förstår programmering bättre än någon dataforskare, men när det kommer till statistik är det tvärtom.

Men här är fördelen med en dataingenjör:

Utan honom/henne tenderar värdet av prototypmodellen, som oftast består av en bit fruktansvärd kvalitetskod i en Python-fil, erhållen från en dataforskare och på något sätt producerar ett resultat, till noll.

Utan en dataingenjör kommer den här koden aldrig att bli ett projekt och inget affärsproblem kommer att lösas effektivt. Dataingenjören försöker förvandla allt detta till en produkt.

Grundläggande information som en dataingenjör bör känna till

Vilka är dataingenjörer och hur blir man det?

Så om det här jobbet tar fram ljuset i dig och du är entusiastisk - du kan lära dig det, du kan bemästra alla nödvändiga färdigheter och bli en riktig rockstjärna inom området datateknik. Och ja, du kan klara av detta även utan programmeringskunskaper eller annan teknisk kunskap. Det är svårt, men möjligt!

Vilka är de första stegen?

Du bör ha en allmän uppfattning om vad som är vad.

Först och främst hänvisar Data Engineering till datavetenskap. Mer specifikt måste du förstå effektiva algoritmer och datastrukturer. För det andra, eftersom dataingenjörer arbetar med data, är det nödvändigt att förstå principerna för databaser och de strukturer som ligger till grund för dem.

Till exempel är konventionella B-tree SQL-databaser baserade på B-Tree datastruktur, såväl som, i moderna distribuerade repositories, LSM-Tree och andra modifieringar av hashtabeller.

*Dessa steg är baserade på en bra artikel Adilya Khashtamova. Så om du kan ryska, stödja den här författaren och läs hans inlägg.

1. Algoritmer och datastrukturer

Att använda rätt datastruktur kan avsevärt förbättra prestandan hos en algoritm. Helst borde vi alla lära oss om datastrukturer och algoritmer i våra skolor, men detta täcks sällan. Det är i alla fall aldrig för sent att bekanta sig.
Så här är mina favoritkurser för att lära sig datastrukturer och algoritmer:

Glöm inte heller Thomas Cormans klassiska arbete med algoritmer - Introduktion till algoritmer. Detta är den perfekta referensen när du behöver fräscha upp ditt minne.

  • För att förbättra dina färdigheter, använd Leetcode.

Du kan också dyka in i databasernas värld med fantastiska videor från Carnegie Mellon University på Youtube:

2. Lär dig SQL

Hela vårt liv är data. Och för att extrahera dessa data från databasen måste du "tala" samma språk med den.

SQL (Structured Query Language) är kommunikationsspråket i datadomänen. Oavsett vad någon säger så har SQL levt, lever och kommer att leva under mycket lång tid.

Om du har varit i utvecklingen länge har du förmodligen märkt att rykten om den förestående döden för SQL dyker upp med jämna mellanrum. Språket utvecklades i början av 70-talet och är fortfarande väldigt populärt bland analytiker, utvecklare och helt enkelt entusiaster.
Utan kunskap om SQL finns det inget att göra inom datateknik eftersom du oundvikligen kommer att behöva skapa frågor för att hämta data. Alla moderna stordatalager stöder SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

... och många andra.

För att analysera ett stort lager av data lagrade i distribuerade system som HDFS, uppfanns SQL-motorer: Apache Hive, Impala, etc. Se, det går ingenstans.

Hur lär man sig SQL? Gör det bara i praktiken.

För att göra detta skulle jag rekommendera att kolla in en utmärkt handledning, som förresten är gratis Lägesanalys.

  1. Mellanliggande SQL
  2. Sammanfoga data i SQL

Det som gör dessa kurser speciella är att de har en interaktiv miljö där du kan skriva och köra SQL-frågor direkt i din webbläsare. Resurs Modern SQL kommer inte att vara överflödig. Och du kan tillämpa denna kunskap på Leetcode-uppgifter i avsnittet Databaser.

3. Programmering i Python och Java/Scala

Varför du ska lära dig programmeringsspråket Python skrev jag redan i artikeln Python vs R. Att välja det bästa verktyget för AI, ML och Data Science. När det kommer till Java och Scala är de flesta verktygen för att lagra och bearbeta enorma mängder data skrivna på dessa språk. Till exempel:

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

För att förstå hur dessa verktyg fungerar måste du känna till språken de är skrivna på. Scalas funktionella tillvägagångssätt gör att du effektivt kan lösa problem med parallell databehandling. Python kan tyvärr inte skryta med hastighet och parallell bearbetning. Generellt sett är kunskaper i flera språk och programmeringsparadigm bra för bredden av tillvägagångssätt för att lösa problem.

För att dyka in i Scala-språket kan du läsa Programmering i Scala från språkets författare. Twitter publicerade också en bra introduktionsguide - Scala skola.

Vad gäller Python tror jag Flytande Python bästa medelnivåboken.

4. Verktyg för att arbeta med big data

Här är en lista över de mest populära verktygen i världen av big data:

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

Du kan hitta mer information om att bygga stora datablock i denna fantastiska interaktiv miljö. De mest populära verktygen är Spark och Kafka. De är definitivt värda att studera, det är tillrådligt att förstå hur de fungerar från insidan. Jay Kreps (medförfattare till Kafka) publicerade ett monumentalt verk 2013 Loggen: Vad varje mjukvaruutvecklare bör veta om realtidsdataaggregationsabstraktionFörresten användes huvudidéerna från denna Talmud för att skapa Apache Kafka.

5. Molnplattformar

Vilka är dataingenjörer och hur blir man det?

Kunskap om minst en molnplattform står på listan över grundläggande krav för sökande till tjänsten som dataingenjör. Arbetsgivare föredrar Amazon Web Services, med Googles molnplattform på andra plats och Microsoft Azure avrundar de tre bästa.

Du måste ha goda kunskaper i Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Distribuerade system

Att arbeta med big data innebär närvaron av kluster av självständigt fungerande datorer, mellan vilka kommunikationen sker över ett nätverk. Ju större klustret är, desto större är sannolikheten för fel på dess medlemsnoder. För att bli en stor dataforskare måste du förstå problemen och befintliga lösningar för distribuerade system. Detta område är gammalt och komplext.

Andrew Tanenbaum anses vara en pionjär inom detta område. För den som inte är rädd för teorin rekommenderar jag hans bok "Distribuerade system", det kan verka skrämmande för nybörjare, men det kommer verkligen att hjälpa dig att finslipa dina färdigheter.

Jag tror Designa dataintensiva applikationer av Martin Kleppmann bästa introduktionsboken. Martin har förresten en underbar blogg. Hans arbete ska hjälpa till att systematisera kunskap om att bygga en modern infrastruktur för lagring och bearbetning av big data.
För den som gillar att se filmer finns en kurs på Youtube Distribuerade datorsystem.

7. Datapipelines

Vilka är dataingenjörer och hur blir man det?

Datapipelines är något du inte kan leva utan som dataingenjör.

Oftast bygger en dataingenjör en så kallad datapipeline, det vill säga han skapar en process för att leverera data från en plats till en annan. Dessa kan vara anpassade skript som går till en extern tjänsts API eller gör en SQL-fråga, utökar data och lägger den i ett centraliserat lager (datalager) eller ett ostrukturerat datalager (datasjöar).

För att sammanfatta: den grundläggande checklistan för en dataingenjör

Vilka är dataingenjörer och hur blir man det?

För att sammanfatta krävs en god förståelse för följande:

  • Informationssystem;
  • Mjukvaruutveckling (Agile, DevOps, Design Techniques, SOA);
  • Distribuerade system och parallell programmering;
  • Grundläggande databas - planering, design, drift och felsökning;
  • Design av experiment - A/B-tester för att bevisa koncept, fastställa tillförlitlighet, systemprestanda och utveckla tillförlitliga vägar för att snabbt leverera bra lösningar.

Detta är bara några av kraven för att bli dataingenjör, så lär dig och förstå datasystem, informationssystem, kontinuerlig leverans/distribution/integration, programmeringsspråk och andra datavetenskapliga ämnen (inte alla ämnesområden).

Och till sist, det sista men mycket viktiga jag vill säga.

Vägen till att bli Data Engineering är inte så enkel som den kan verka. Han förlåter inte, han frustrerar, och du måste vara beredd på detta. Vissa ögonblick under denna resa kan få dig att ge upp. Men det här är verkligt arbete och en läroprocess.

Sockra bara inte det från början. Hela poängen med att resa är att lära sig så mycket som möjligt och vara redo för nya utmaningar.
Här är en fantastisk bild som jag stötte på som illustrerar detta väl:

Vilka är dataingenjörer och hur blir man det?

Och ja, kom ihåg att undvika utbrändhet och vila. Detta är också mycket viktigt. Lycka till!

Vad tycker ni om artikeln, vänner? Vi inbjuder dig till gratis webbseminarium, som äger rum idag kl 20.00. Under webbinariet kommer vi att diskutera hur man bygger ett effektivt och skalbart databehandlingssystem för ett litet företag eller startup till minimal kostnad. Som praktik kommer vi att bekanta oss med Google Clouds databehandlingsverktyg. Vi ses!

Källa: will.com

Lägg en kommentar