Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Pershendetje perseri! Titulli i artikullit flet vetë. Në pritje të fillimit të kursit "Inxhinier i të dhënave" Ne ju sugjerojmë të kuptoni se cilët janë inxhinierët e të dhënave. Ka shumë lidhje të dobishme në artikull. Gëzuar lexim.

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Një udhëzues i thjeshtë se si të kapni valën e Inxhinierisë së të Dhënave dhe të mos lejoni që ajo t'ju tërheqë në humnerë.

Duket sikur të gjithë duan të bëhen shkencëtarë të të dhënave këto ditë. Por çfarë ndodh me Inxhinierinë e të Dhënave? Në thelb, ky është një lloj hibridi i një analisti të të dhënave dhe një shkencëtari i të dhënave; Një inxhinier i të dhënave zakonisht është përgjegjës për menaxhimin e rrjedhave të punës, tubacioneve të përpunimit dhe proceseve ETL. Për shkak të rëndësisë së këtyre funksioneve, ky është aktualisht një tjetër zhargon profesional popullor që po fiton në mënyrë aktive vrullin.

Pagat e larta dhe kërkesa e madhe janë vetëm një pjesë e vogël e asaj që e bën këtë punë jashtëzakonisht tërheqëse! Nëse dëshironi të bashkoheni në radhët e heronjve, nuk është kurrë vonë për të filluar të mësoni. Në këtë postim, unë kam mbledhur të gjithë informacionin e nevojshëm për t'ju ndihmuar të hidhni hapat e parë.

Le të fillojmë!

Çfarë është Inxhinieria e të Dhënave?

Sinqerisht, nuk ka shpjegim më të mirë se ky:

“Një shkencëtar mund të zbulojë një yll të ri, por ai nuk mund ta krijojë një të tillë. Ai do të duhet të kërkojë një inxhinier që ta bëjë atë për të."

– Gordon Lindsay Glegg

Kështu, roli i një inxhinieri të dhënash është mjaft domethënës.

Siç sugjeron emri, inxhinieria e të dhënave ka të bëjë me të dhënat, përkatësisht shpërndarjen, ruajtjen dhe përpunimin e tyre. Prandaj, detyra kryesore e inxhinierëve është të sigurojnë një infrastrukturë të besueshme për të dhënat. Nëse shikojmë hierarkinë e nevojave të AI, inxhinieria e të dhënave zë 2-3 fazat e para: grumbullimi, lëvizja dhe ruajtja, përgatitja e të dhënave.

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Çfarë bën një inxhinier i të dhënave?

Me ardhjen e të dhënave të mëdha, fushëveprimi i përgjegjësisë ka ndryshuar në mënyrë dramatike. Nëse më parë këta ekspertë shkruanin pyetje të mëdha SQL dhe distilonin të dhëna duke përdorur mjete të tilla si Informatica ETL, Pentaho ETL, Talend, tani kërkesat për inxhinierët e të dhënave janë rritur.

Shumica e kompanive me vende të lira pune për pozicionin e inxhinierit të të dhënave kanë kërkesat e mëposhtme:

  • Njohuri të shkëlqyera të SQL dhe Python.
  • Përvojë me platformat cloud, veçanërisht Shërbimet Ueb Amazon.
  • Preferohet njohja e Java/Scala.
  • Kuptimi i mirë i bazave të të dhënave SQL dhe NoSQL (modelimi i të dhënave, ruajtja e të dhënave).

Mbani në mend, këto janë vetëm gjërat thelbësore. Nga kjo listë, mund të supozohet se inxhinierët e të dhënave janë specialistë në fushën e zhvillimit të softuerit dhe backend.
Për shembull, nëse një kompani fillon të gjenerojë një sasi të madhe të dhënash nga burime të ndryshme, detyra juaj si inxhinier i të dhënave është të organizoni mbledhjen e informacionit, përpunimin dhe ruajtjen e tij.

Lista e mjeteve të përdorura në këtë rast mund të ndryshojë, gjithçka varet nga vëllimi i këtyre të dhënave, shpejtësia e marrjes së saj dhe heterogjeniteti. Shumica e kompanive nuk merren fare me të dhëna të mëdha, kështu që si një depo e centralizuar, e ashtuquajtura depo e të dhënave, mund të përdorni një bazë të dhënash SQL (PostgreSQL, MySQL, etj.) me një grup të vogël skriptesh që ushqejnë të dhënat në magazina.

Gjigantët e IT-së si Google, Amazon, Facebook ose Dropbox kanë kërkesa më të larta: njohuri të Python, Java ose Scala.

  • Përvojë me të dhëna të mëdha: Hadoop, Spark, Kafka.
  • Njohuri të algoritmeve dhe strukturave të të dhënave.
  • Kuptimi i bazave të sistemeve të shpërndara.
  • Përvoja me mjetet e vizualizimit të të dhënave si Tableau ose ElasticSearch do të jetë një plus.

Kjo do të thotë, ka një zhvendosje të qartë drejt të dhënave të mëdha, përkatësisht në përpunimin e tyre nën ngarkesa të larta. Këto kompani kanë rritur kërkesat për tolerancën e gabimeve të sistemit.

Inxhinierët e të Dhënave Vs. shkencëtarët e të dhënave

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?
Mirë, ky ishte një krahasim i thjeshtë dhe qesharak (asgjë personale), por në realitet është shumë më e ndërlikuar.

Së pari, duhet të dini se ka shumë paqartësi në përcaktimin e roleve dhe aftësive të një shkencëtari të të dhënave dhe një inxhinieri të dhënash. Kjo do të thotë, ju lehtë mund të hutoheni se cilat aftësi nevojiten për të qenë një inxhinier i suksesshëm i të dhënave. Sigurisht, ka disa aftësi që mbivendosen me të dy rolet. Por ka edhe një sërë aftësish diametralisht të kundërta.

Shkenca e të dhënave është një biznes serioz, por ne po shkojmë drejt një bote të shkencës funksionale të të dhënave ku praktikuesit janë në gjendje të bëjnë analitikën e tyre. Për të aktivizuar tubacionet e të dhënave dhe strukturat e integruara të të dhënave, ju nevojiten inxhinierë të të dhënave, jo shkencëtarë të të dhënave.

A është një inxhinier i të dhënave më i kërkuar sesa një shkencëtar i të dhënave?

- Po, sepse para se të bëni tortë me karota, së pari duhet të grumbulloni, qëroni dhe grumbulloni karotat!

Një inxhinier i të dhënave e kupton programimin më mirë se çdo shkencëtar i të dhënave, por kur bëhet fjalë për statistikat, e kundërta është e vërtetë.

Por këtu është avantazhi i një inxhinieri të të dhënave:

Pa të, vlera e modelit prototip, më së shpeshti i përbërë nga një pjesë e kodit me cilësi të tmerrshme në një skedar Python, i marrë nga një shkencëtar i të dhënave dhe që disi prodhon një rezultat, priret në zero.

Pa një inxhinier të dhënash, ky kod nuk do të bëhet kurrë një projekt dhe asnjë problem biznesi nuk do të zgjidhet në mënyrë efektive. Inxhinieri i të dhënave po përpiqet ta kthejë të gjithë këtë në një produkt.

Informacioni bazë që duhet të dijë një inxhinier i të dhënave

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Pra, nëse kjo punë nxjerr dritën tek ju dhe jeni entuziast - mund ta mësoni atë, mund të zotëroni të gjitha aftësitë e nevojshme dhe të bëheni një yll i vërtetë rock në fushën e inxhinierisë së të dhënave. Dhe, po, ju mund ta arrini këtë edhe pa aftësi programimi ose njohuri të tjera teknike. Është e vështirë, por e mundur!

Cilat janë hapat e parë?

Ju duhet të keni një ide të përgjithshme se çfarë është çfarë.

Para së gjithash, Inxhinieria e të Dhënave i referohet shkencës kompjuterike. Më konkretisht, ju duhet të kuptoni algoritme efikase dhe struktura të të dhënave. Së dyti, meqenëse inxhinierët e të dhënave punojnë me të dhëna, është e nevojshme të kuptohen parimet e bazave të të dhënave dhe strukturat që qëndrojnë në themel të tyre.

Për shembull, bazat e të dhënave konvencionale të B-tree SQL bazohen në strukturën e të dhënave B-Tree, si dhe në depot moderne të shpërndara, LSM-Tree dhe modifikime të tjera të tabelave hash.

*Këta hapa bazohen në një artikull të mrekullueshëm Adilya Khashtamova. Pra, nëse dini rusisht, mbështesni këtë autor dhe lexoni postimin e tij.

1. Algoritmet dhe strukturat e të dhënave

Përdorimi i strukturës së duhur të të dhënave mund të përmirësojë ndjeshëm performancën e një algoritmi. Idealisht, ne të gjithë duhet të mësojmë rreth strukturave të të dhënave dhe algoritmeve në shkollat ​​tona, por kjo rrallë mbulohet ndonjëherë. Në çdo rast, nuk është kurrë vonë për t'u njohur.
Pra, këtu janë kurset e mia të preferuara falas për të mësuar strukturat dhe algoritmet e të dhënave:

Plus, mos harroni për punën klasike të Thomas Corman mbi algoritmet - Hyrje në Algoritme. Kjo është referenca e përsosur kur ju duhet të rifreskoni kujtesën tuaj.

  • Për të përmirësuar aftësitë tuaja, përdorni Leetcode.

Ju gjithashtu mund të zhyteni në botën e bazave të të dhënave me video të mahnitshme nga Universiteti Carnegie Mellon në Youtube:

2. Mësoni SQL

E gjithë jeta jonë është të dhëna. Dhe për të nxjerrë këto të dhëna nga baza e të dhënave, duhet të "flisni" të njëjtën gjuhë me të.

SQL (Structured Query Language) është gjuha e komunikimit në domenin e të dhënave. Pavarësisht se çfarë thotë dikush, SQL ka jetuar, është gjallë dhe do të jetojë për një kohë shumë të gjatë.

Nëse keni qenë në zhvillim për një kohë të gjatë, me siguri keni vënë re se thashethemet për vdekjen e afërt të SQL shfaqen periodikisht. Gjuha u zhvillua në fillim të viteve 70 dhe është ende shumë e popullarizuar në mesin e analistëve, zhvilluesve dhe thjesht entuziastëve.
Pa njohuri për SQL, nuk ka asgjë për të bërë në inxhinierinë e të dhënave pasi në mënyrë të pashmangshme do t'ju duhet të krijoni pyetje për të tërhequr të dhënat. Të gjitha magazinat moderne të të dhënave të mëdha mbështesin SQL:

  • Ndryshimi i Kuq i Amazonës
  • HP Vertica
  • Orakull
  • SQL Server

... dhe shume te tjere.

Për të analizuar një shtresë të madhe të dhënash të ruajtura në sisteme të shpërndara si HDFS, u shpikën motorët SQL: Apache Hive, Impala, etj. Shihni, nuk po shkon askund.

Si të mësoni SQL? Thjesht bëjeni në praktikë.

Për ta bërë këtë, unë do të rekomandoja të shikoni një tutorial të shkëlqyeshëm, i cili, nga rruga, është falas Analiza e modalitetit.

  1. SQL e ndërmjetme
  2. Bashkimi i të dhënave në SQL

Ajo që i bën këto kurse të veçanta është se ato kanë një mjedis interaktiv ku mund të shkruani dhe ekzekutoni pyetje SQL direkt në shfletuesin tuaj. Burim SQL moderne nuk do të jetë e tepërt. Dhe ju mund ta zbatoni këtë njohuri në Detyrat e Leetcode në seksionin Bazat e të dhënave.

3. Programimi në Python dhe Java/Scala

Pse duhet të mësoni gjuhën e programimit Python, kam shkruar tashmë në artikull Python vs R. Zgjedhja e mjetit më të mirë për AI, ML dhe shkencën e të dhënave. Kur bëhet fjalë për Java dhe Scala, shumica e mjeteve për ruajtjen dhe përpunimin e sasive të mëdha të të dhënave janë shkruar në këto gjuhë. Për shembull:

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

Për të kuptuar se si funksionojnë këto mjete, duhet të dini gjuhët në të cilat janë shkruar. Qasja funksionale e Scala ju lejon të zgjidhni në mënyrë efektive problemet e përpunimit paralel të të dhënave. Python, për fat të keq, nuk mund të mburret me shpejtësinë dhe përpunimin paralel. Në përgjithësi, njohja e disa gjuhëve dhe paradigmave të programimit është e mirë për gjerësinë e qasjeve për zgjidhjen e problemeve.

Për t'u zhytur në gjuhën Scala, mund të lexoni Programimi në Scala nga autori i gjuhës. Twitter gjithashtu publikoi një udhëzues të mirë hyrës - Shkolla Scala.

Sa për Python, besoj Python i rrjedhshëm libri më i mirë i nivelit të mesëm.

4. Mjetet për të punuar me të dhëna të mëdha

Këtu është një listë e mjeteve më të njohura në botën e të dhënave të mëdha:

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

Ju mund të gjeni më shumë informacion rreth ndërtimit të blloqeve të mëdha të të dhënave në këtë të mahnitshme mjedis interaktiv. Mjetet më të njohura janë Shkëndija dhe Kafka. Ata padyshim që ia vlen të studiohen, këshillohet të kuptoni se si funksionojnë nga brenda. Jay Kreps (bashkautor i Kafkës) botoi një vepër monumentale në 2013 Regjistri: Çfarë duhet të dijë çdo zhvillues i softuerit për Abstraksionin e grumbullimit të të dhënave në kohë realeNga rruga, idetë kryesore nga ky Talmud u përdorën për të krijuar Apache Kafka.

5. Platformat cloud

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Njohja e të paktën një platforme cloud është në listën e kërkesave bazë për aplikantët për pozicionin e inxhinierit të të dhënave. Punëdhënësit preferojnë Shërbimet Ueb Amazon, me platformën cloud të Google në vendin e dytë dhe Microsoft Azure që përmbyll treshen e parë.

Duhet të keni njohuri të mira të Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistemet e shpërndara

Puna me të dhëna të mëdha nënkupton praninë e grupeve të kompjuterëve që funksionojnë në mënyrë të pavarur, komunikimi midis të cilëve kryhet përmes një rrjeti. Sa më i madh të jetë grupi, aq më i madh është probabiliteti i dështimit të nyjeve anëtare të tij. Për t'u bërë një shkencëtar i shkëlqyer i të dhënave, ju duhet të kuptoni problemet dhe zgjidhjet ekzistuese për sistemet e shpërndara. Kjo zonë është e vjetër dhe komplekse.

Andrew Tanenbaum konsiderohet si një pionier në këtë fushë. Për ata që nuk kanë frikë nga teoria, unë rekomandoj librin e tij "Sistemet e Shpërndara", mund të duket e frikshme për fillestarët, por me të vërtetë do t'ju ndihmojë të përmirësoni aftësitë tuaja.

Mendoj Projektimi i aplikacioneve intensive të të dhënave nga Martin Kleppmann libri më i mirë prezantues. Nga rruga, Martin ka një të mrekullueshme blog. Puna e tij do të ndihmojë në sistematizimin e njohurive për ndërtimin e një infrastrukture moderne për ruajtjen dhe përpunimin e të dhënave të mëdha.
Për ata që duan të shikojnë video, ekziston një kurs në Youtube Sisteme kompjuterike të shpërndara.

7. Tubacionet e të dhënave

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Tubacionet e të dhënave janë diçka pa të cilën nuk mund të jetoni si inxhinier i të dhënave.

Shumicën e kohës, një inxhinier i të dhënave ndërton një të ashtuquajtur tubacion të dhënash, domethënë ai krijon një proces për dërgimin e të dhënave nga një vend në tjetrin. Këto mund të jenë skripte të personalizuara që shkojnë në API të një shërbimi të jashtëm ose bëjnë një pyetje SQL, shtojnë të dhënat dhe i vendosin në një dyqan të centralizuar (depo të dhënash) ose një dyqan të pastrukturuar të të dhënave (liqenet e të dhënave).

Për ta përmbledhur: listën bazë të kontrollit për një inxhinier të të dhënave

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Për ta përmbledhur, kërkohet një kuptim i mirë i sa vijon:

  • Sistemet e Informacionit;
  • Zhvillimi i softuerit (Agile, DevOps, Design Techniques, SOA);
  • Sisteme të shpërndara dhe programim paralel;
  • Bazat e bazës së të dhënave - Planifikimi, Projektimi, Operacioni dhe Zgjidhja e Problemeve;
  • Projektimi i eksperimenteve - Testet A/B për të vërtetuar konceptet, për të përcaktuar besueshmërinë, performancën e sistemit dhe për të zhvilluar shtigje të besueshme për të ofruar zgjidhje të mira shpejt.

Këto janë vetëm disa nga kërkesat për t'u bërë inxhinier i të dhënave, kështu që mësoni dhe kuptoni sistemet e të dhënave, sistemet e informacionit, shpërndarjen/vendosjen/integrimin e vazhdueshëm, gjuhët e programimit dhe tema të tjera të shkencës kompjuterike (jo të gjitha fushat lëndore).

Dhe në fund, gjëja e fundit por shumë e rëndësishme që dua të them.

Rruga për t'u bërë Inxhinieri e të Dhënave nuk është aq e thjeshtë sa mund të duket. Ai nuk fal, ai frustron dhe ju duhet të jeni të përgatitur për këtë. Disa momente në këtë rrugëtim mund t'ju shtyjnë të hiqni dorë. Por kjo është punë e vërtetë dhe një proces mësimor.

Thjesht mos e lyeni me sheqer që në fillim. E gjithë qëllimi i udhëtimit është të mësosh sa më shumë dhe të jesh gati për sfida të reja.
Këtu është një foto e mrekullueshme që kam hasur që ilustron mirë këtë pikë:

Kush janë inxhinierët e të dhënave dhe si mund të bëheni një?

Dhe po, mos harroni të shmangni djegien dhe pushimin. Kjo është gjithashtu shumë e rëndësishme. Paç fat!

Çfarë mendoni për artikullin miq? Ju ftojmë të webinar falas, e cila do të zhvillohet sot në orën 20.00. Gjatë webinarit, ne do të diskutojmë se si të ndërtojmë një sistem efektiv dhe të shkallëzuar të përpunimit të të dhënave për një kompani të vogël ose startup me kosto minimale. Si praktikë, ne do të njihemi me mjetet e përpunimit të të dhënave të Google Cloud. Shihemi!

Burimi: www.habr.com

Shto një koment