Hvem er dataingeniører, og hvordan bliver du det?

Hej igen! Artiklens titel taler for sig selv. I forventning om kursusstart Dataingeniør Vi foreslår, at du forstår, hvem dataingeniører er. Der er mange nyttige links i artiklen. God læselyst.

Hvem er dataingeniører, og hvordan bliver du det?

En simpel guide til, hvordan du fanger Data Engineering-bølgen og ikke lader den trække dig ned i afgrunden.

Det ser ud til, at alle ønsker at blive dataforskere i disse dage. Men hvad med Data Engineering? I det væsentlige er dette en slags hybrid af en dataanalytiker og en dataforsker; En dataingeniør er typisk ansvarlig for styring af arbejdsgange, behandling af pipelines og ETL-processer. På grund af vigtigheden af ​​disse funktioner er dette i øjeblikket en anden populær professionel jargon, der aktivt tager fart.

Høje lønninger og stor efterspørgsel er blot en lille del af det, der gør dette job yderst attraktivt! Hvis du vil slutte dig til rækken af ​​helte, er det aldrig for sent at begynde at lære. I dette indlæg har jeg samlet al den nødvendige information for at hjælpe dig med at tage dine første skridt.

Så lad os komme i gang!

Hvad er Data Engineering?

Helt ærligt, der er ingen bedre forklaring end denne:

"En videnskabsmand kan opdage en ny stjerne, men han kan ikke skabe en. Han bliver nødt til at bede en ingeniør om at gøre det for ham."

–Gordon Lindsay Glegg

Rollen som dataingeniør er således ret betydelig.

Som navnet antyder, er datateknik beskæftiget med data, nemlig dets levering, opbevaring og behandling. Derfor er ingeniørernes hovedopgave at levere en pålidelig infrastruktur til data. Hvis vi ser på AI-hierarkiet af behov, optager datateknik de første 2-3 stadier: indsamling, flytning og opbevaring, dataforberedelse.

Hvem er dataingeniører, og hvordan bliver du det?

Hvad laver en dataingeniør?

Med fremkomsten af ​​big data har ansvarsomfanget ændret sig dramatisk. Hvis disse eksperter tidligere skrev store SQL-forespørgsler og destillerede data ved hjælp af værktøjer som Informatica ETL, Pentaho ETL, Talend, er kravene til dataingeniører nu øget.

De fleste virksomheder med ledige stillinger til stillingen som dataingeniør har følgende krav:

  • Godt kendskab til SQL og Python.
  • Erfaring med cloud-platforme, især Amazon Web Services.
  • Gerne kendskab til Java/Scala.
  • God forståelse for SQL og NoSQL databaser (datamodellering, data warehousing).

Husk, dette er kun det væsentlige. Fra denne liste kan det antages, at dataingeniører er specialister inden for softwareudvikling og backend.
For eksempel, hvis en virksomhed begynder at generere en stor mængde data fra forskellige kilder, er din opgave som dataingeniør at organisere indsamlingen af ​​information, dens behandling og opbevaring.

Listen over værktøjer, der bruges i dette tilfælde, kan variere, det hele afhænger af mængden af ​​disse data, hastigheden på dens modtagelse og heterogenitet. De fleste virksomheder beskæftiger sig slet ikke med big data, så som et centraliseret repository, et såkaldt data warehouse, kan du bruge en SQL-database (PostgreSQL, MySQL osv.) med et lille sæt scripts, der føder dataene ind i lageret.

IT-giganter som Google, Amazon, Facebook eller Dropbox har højere krav: kendskab til Python, Java eller Scala.

  • Erfaring med big data: Hadoop, Spark, Kafka.
  • Kendskab til algoritmer og datastrukturer.
  • Forståelse af det grundlæggende i distribuerede systemer.
  • Erfaring med datavisualiseringsværktøjer såsom Tableau eller ElasticSearch vil være en fordel.

Det vil sige, at der er et tydeligt skift mod big data, nemlig i dens behandling under høje belastninger. Disse virksomheder har øgede krav til systemfejltolerance.

Dataingeniører vs. data scientists

Hvem er dataingeniører, og hvordan bliver du det?
Okay, det var en simpel og sjov sammenligning (intet personligt), men i virkeligheden er det meget mere kompliceret.

For det første bør du vide, at der er en masse tvetydighed i afgrænsningen af ​​en dataforskers og en dataingeniørs roller og færdigheder. Det vil sige, at du nemt kan blive forvirret over, hvilke kompetencer der skal til for at være en succesfuld dataingeniør. Selvfølgelig er der visse færdigheder, der overlapper med begge roller. Men der er også en række diametralt modsatte færdigheder.

Datavidenskab er seriøs forretning, men vi bevæger os mod en verden af ​​funktionel datavidenskab, hvor praktikere er i stand til at lave deres egne analyser. For at aktivere datapipelines og integrerede datastrukturer har du brug for dataingeniører, ikke dataforskere.

Er en dataingeniør mere efterspurgt end en dataforsker?

- Ja, for før du kan lave gulerodskage, skal du først høste, skrælle og lagre gulerødder!

En dataingeniør forstår programmering bedre end nogen dataforsker, men når det kommer til statistik, er det modsatte sandt.

Men her er fordelen ved en dataingeniør:

Uden ham/hende vil værdien af ​​prototypemodellen, som oftest består af et stykke forfærdelig kvalitetskode i en Python-fil, hentet fra en dataforsker og på en eller anden måde producere et resultat, være nul.

Uden en dataingeniør vil denne kode aldrig blive et projekt, og intet forretningsproblem vil blive effektivt løst. Dataingeniøren forsøger at gøre alt dette til et produkt.

Grundlæggende oplysninger, som en dataingeniør bør kende

Hvem er dataingeniører, og hvordan bliver du det?

Så hvis dette job får lyset frem i dig, og du er entusiastisk - kan du lære det, du kan mestre alle de nødvendige færdigheder og blive en rigtig rockstjerne inden for datateknik. Og ja, du kan klare dette selv uden programmeringsevner eller anden teknisk viden. Det er svært, men muligt!

Hvad er de første skridt?

Du skal have en generel idé om, hvad der er hvad.

Først og fremmest refererer Data Engineering til datalogi. Mere specifikt skal du forstå effektive algoritmer og datastrukturer. For det andet, da dataingeniører arbejder med data, er det nødvendigt at forstå principperne for databaser og de strukturer, der ligger til grund for dem.

For eksempel er konventionelle B-tree SQL-databaser baseret på B-Tree-datastrukturen, såvel som i moderne distribuerede lagre, LSM-Tree og andre ændringer af hash-tabeller.

*Disse trin er baseret på en fantastisk artikel Adilya Khashtamova. Så hvis du kan russisk, så støt denne forfatter og læs hans post.

1. Algoritmer og datastrukturer

Brug af den rigtige datastruktur kan forbedre ydeevnen af ​​en algoritme markant. Ideelt set burde vi alle lære om datastrukturer og algoritmer på vores skoler, men det er sjældent nogensinde dækket. Under alle omstændigheder er det aldrig for sent at stifte bekendtskab.
Så her er mine foretrukne gratis kurser til at lære datastrukturer og algoritmer:

Og glem ikke Thomas Cormans klassiske arbejde med algoritmer - Introduktion til algoritmer. Dette er den perfekte reference, når du har brug for at genopfriske din hukommelse.

  • For at forbedre dine færdigheder, brug Leetcode.

Du kan også dykke ned i databasernes verden med fantastiske videoer fra Carnegie Mellon University på Youtube:

2. Lær SQL

Hele vores liv er data. Og for at udtrække disse data fra databasen, skal du "tale" det samme sprog med det.

SQL (Structured Query Language) er kommunikationssproget i datadomænet. Uanset hvad nogen siger, har SQL levet, er i live og vil leve i meget lang tid.

Hvis du har været under udvikling i lang tid, har du sikkert lagt mærke til, at rygter om den forestående død af SQL dukker op med jævne mellemrum. Sproget blev udviklet i begyndelsen af ​​70'erne og er stadig meget populært blandt analytikere, udviklere og simpelthen entusiaster.
Uden kendskab til SQL er der intet at gøre i datateknik, da du uundgåeligt bliver nødt til at oprette forespørgsler for at hente data. Alle moderne big data warehouses understøtter SQL:

  • Amazon rødforskydning
  • HP Vertica
  • Oracle
  • SQL Server

... og mange andre.

For at analysere et stort lag af data, der er lagret i distribuerede systemer såsom HDFS, blev SQL-motorer opfundet: Apache Hive, Impala osv. Se, det går ingen vegne.

Hvordan lærer man SQL? Bare gør det i praksis.

For at gøre dette vil jeg anbefale at tjekke en fremragende tutorial ud, som i øvrigt er gratis fra Tilstandsanalyse.

  1. Mellemliggende SQL
  2. Sammenføjning af data i SQL

Det, der gør disse kurser specielle, er, at de har et interaktivt miljø, hvor du kan skrive og køre SQL-forespørgsler direkte i din browser. Ressource Moderne SQL vil ikke være overflødig. Og du kan anvende denne viden til Leetcode opgaver i afsnittet Databaser.

3. Programmering i Python og Java/Scala

Hvorfor du skal lære Python-programmeringssproget, har jeg allerede skrevet i artiklen Python vs R. Valg af det bedste værktøj til AI, ML og Data Science. Når det kommer til Java og Scala, er de fleste værktøjer til lagring og behandling af enorme mængder data skrevet på disse sprog. For eksempel:

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

For at forstå, hvordan disse værktøjer fungerer, skal du kende de sprog, de er skrevet på. Scalas funktionelle tilgang giver dig mulighed for effektivt at løse parallelle databehandlingsproblemer. Python kan desværre ikke prale af hastighed og parallel behandling. Generelt er kendskab til flere sprog og programmeringsparadigmer godt for bredden af ​​tilgange til problemløsning.

For at dykke ned i Scala-sproget kan du læse Programmering i Scala fra sprogets forfatter. Twitter udgav også en god introduktionsvejledning - Scala Skole.

Hvad angår Python, tror jeg Flydende Python bedste mellemniveau bog.

4. Værktøjer til at arbejde med big data

Her er en liste over de mest populære værktøjer i verden af ​​big data:

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

Du kan finde mere information om at bygge store datablokke i denne fantastiske interaktivt miljø. De mest populære værktøjer er Spark og Kafka. De er bestemt værd at studere, det er tilrådeligt at forstå, hvordan de fungerer indefra. Jay Kreps (medforfatter til Kafka) udgav et monumentalt værk i 2013 Loggen: Hvad enhver softwareudvikler bør vide om dataaggregation i realtidForresten blev hovedideerne fra denne Talmud brugt til at skabe Apache Kafka.

5. Cloud platforme

Hvem er dataingeniører, og hvordan bliver du det?

Kendskab til mindst én cloud-platform er på listen over grundlæggende krav til ansøgere til stillingen som dataingeniør. Arbejdsgivere foretrækker Amazon Web Services, med Googles cloud-platform på andenpladsen og Microsoft Azure runder top tre.

Du skal have godt kendskab til Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Distribuerede systemer

Arbejde med big data indebærer tilstedeværelsen af ​​klynger af uafhængigt fungerende computere, hvor kommunikationen mellem disse foregår over et netværk. Jo større klyngen er, desto større er sandsynligheden for fejl i dens medlemsknudepunkter. For at blive en stor dataforsker skal du forstå problemerne og eksisterende løsninger for distribuerede systemer. Dette område er gammelt og komplekst.

Andrew Tanenbaum betragtes som en pioner på dette område. Til dem, der ikke er bange for teori, anbefaler jeg hans bog "Distribuerede systemer", det kan virke skræmmende for begyndere, men det vil virkelig hjælpe dig med at finpudse dine færdigheder.

jeg tror Designing af data-intensive applikationer af Martin Kleppmann bedste introduktionsbog. Martin har i øvrigt en vidunderlig blog. Hans arbejde skal hjælpe med at systematisere viden om opbygning af en moderne infrastruktur til lagring og behandling af big data.
For dem, der kan lide at se videoer, er der et kursus på Youtube Distribuerede computersystemer.

7. Datapipelines

Hvem er dataingeniører, og hvordan bliver du det?

Datapipelines er noget, du ikke kan leve uden som dataingeniør.

Det meste af tiden bygger en dataingeniør en såkaldt datapipeline, det vil sige, at han laver en proces til at levere data fra et sted til et andet. Disse kunne være brugerdefinerede scripts, der går til en ekstern tjenestes API eller laver en SQL-forespørgsel, udvider dataene og lægger dem i et centraliseret lager (datavarehus) eller et ustruktureret datalager (datasøer).

For at opsummere: den grundlæggende tjekliste for en dataingeniør

Hvem er dataingeniører, og hvordan bliver du det?

For at opsummere kræves en god forståelse af følgende:

  • Informationssystemer;
  • Softwareudvikling (Agile, DevOps, Design Techniques, SOA);
  • Distribuerede systemer og parallel programmering;
  • Database Fundamentals - Planlægning, design, drift og fejlfinding;
  • Design af eksperimenter - A/B-tests for at bevise koncepter, bestemme pålidelighed, systemydelse og udvikle pålidelige stier til hurtigt at levere gode løsninger.

Dette er blot nogle få af kravene for at blive dataingeniør, så lær og forstå datasystemer, informationssystemer, kontinuerlig levering/implementering/integration, programmeringssprog og andre computervidenskabelige emner (ikke alle fagområder).

Og til sidst den sidste, men meget vigtige ting, jeg vil sige.

Vejen til at blive Data Engineering er ikke så enkel, som den måske ser ud til. Han tilgiver ikke, han frustrerer, og du skal være forberedt på dette. Nogle øjeblikke på denne rejse kan presse dig til at give op. Men dette er rigtigt arbejde og en læreproces.

Bare lad være med at sukkerlagre det fra starten. Hele pointen med at rejse er at lære så meget som muligt og være klar til nye udfordringer.
Her er et godt billede, jeg stødte på, der illustrerer dette godt:

Hvem er dataingeniører, og hvordan bliver du det?

Og ja, husk at undgå udbrændthed og hvile. Dette er også meget vigtigt. Held og lykke!

Hvad synes I om artiklen, venner? Vi inviterer dig til gratis webinar, som finder sted i dag klokken 20.00. Under webinaret vil vi diskutere, hvordan man bygger et effektivt og skalerbart databehandlingssystem til en lille virksomhed eller startup med minimale omkostninger. Som praksis vil vi stifte bekendtskab med Google Clouds databehandlingsværktøjer. Vi ses!

Kilde: www.habr.com

Tilføj en kommentar