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

Përsëri përshëndetje! Titulli i artikullit flet vetë. «Inxhiner i Të Dhënave» Me rastin e nisjes së kursit, ne propozojmë të sqarojmë se kush janë inxhinierët e të dhënave. Artikulli ka shumë lidhje të dobishme. Dëshironi lexim të këndshëm.

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

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 fundosë.

Duket se sot e gjithë bota dëshiron të bëhet Data Scientist. Por çfarë ndodh me Inxhinierinë e Të Dhënave? Në thelb, kjo është një lloj hibrid midis analizuesit të të dhënave dhe Data Scientist-it; inxhinieri i të dhënave përgjithësisht përgjigjet për menaxhimin e proceseve të punës, linjave të përpunimit dhe proceseve ETL.Duke qenë se këto funksione janë të rëndësishme, aktualisht ato përfaqësojnë një tjetër profesion të njohur që është në rritje.

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 me heronjtë, kurrë nuk është vonë të filloni të mësoni. Në këtë post, kam grumbulluar të gjitha informacionet e nevojshme për t'ju ndihmuar të bëni hapat e parë.

Pra, le të fillojmë!

ÇfarĂ« Ă«shtĂ« Inxhinieria e TĂ« DhĂ«nave?

Sinqë të jetë e vërteta, nuk ka shpjegim më të mirë se ky:

«Një shkencëtar mund të zbulojë një yll të ri, por nuk mund ta krijojë atë. Ai duhet të kërkojë që një inxhinier ta bëjë këtë për të.»

–Gordon Lindsay Glegg

Pra, roli i inxhinierit të të dhënave është mjaft i rëndësishëm.

Nga titulli, mund të kuptohet se inxhinieria e të dhënave lidhet me të dhënat, veçanërisht me transportin, ruajtjen dhe përpunimin e tyre. Si rezultat, detyra kryesore e inxhinierëve është të sigurojnë një infrastrukturë të besueshme për të dhënat. Nëse e shohim hierarkinë e nevojave të AI, inxhinieria e të dhënave zë dy ose tri nivellet e para: mbledhja, lëvizja dhe ruajtja, përpunimi i të dhënave.

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

ÇfarĂ« bĂ«n njĂ« inxhinier i tĂ« dhĂ«nave?

Me ardhjen e të dhënave të mëdha, fushat e përgjegjësisë janë ndryshuar ndjeshëm. Nëse më parë këta ekspertë shkruanin pyetje të mëdha SQL dhe transferonin të dhënat 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 pozita të hapura për inxhinierët e të dhënave kërkojnë këto aftësi:

  • Njohuri tĂ« shkĂ«lqyera nĂ« SQL dhe Python.
  • PĂ«rvoja me platformat nĂ« cloud, sidomos Amazon Web Services.
  • Preferohet njohja e Java/Scala.
  • Njohuri e mirĂ« e bazave tĂ« tĂ« dhĂ«nave SQL dhe NoSQL (modelimi i tĂ« dhĂ«nave, ruajtja e tĂ« dhĂ«nave).

Kujdes, kjo është vetëm e nevojshmja themelore. Nga ky listë mund të supozohet se inxhinierët e të dhënave janë specialistë në fushën e zhvillimit të software-it dhe backend-it.
Për shembull, nëse një kompani fillon të gjenerojë një volum të madh 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 që përdoren në këtë rast mund të ndryshojë, gjithçka varet nga volumi i këtyre të dhënave, shpejtësia e tyre në mbërritje dhe heterogjeniteti. Shumica e kompanive përgjithësisht nuk përballen me të dhëna të mëdha, kështu që si një depo centrale, e quajtur depo e të dhënave, mund të përdoret një bazë të dhënash SQL (PostgreSQL, MySQL etj.) me një grup të vogël skriptesh që drejtojnë të dhënat në depo.

Gigantët IT, si Google, Amazon, Facebook ose Dropbox, kanë kërkesa më të larta: njohuri në Python, Java ose Scala.

  • PĂ«rvoja me tĂ« dhĂ«na tĂ« mĂ«dha: Hadoop, Spark, Kafka.
  • Njohuri mbi algoritmet dhe strukturat e tĂ« dhĂ«nave.
  • Kuptimi i temave tĂ« sistemeve tĂ« shpĂ«rndara.
  • PĂ«rvoja me mjete tĂ« vizualizimit tĂ« tĂ« dhĂ«nave, si Tableau ose ElasticSearch, do tĂ« jetĂ« njĂ« avantazh i madh.

Kjo do të thotë se ka një qartë zhvendosje drejt të dhënave të mëdha, sidomos në përpunimin e tyre nën ngarkesa të larta. Këto kompani kanë kërkesa të larta për qëndrueshmërinë e 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ë prej tyre?
Mirë, ky ishte një krahasim i thjeshtë dhe argëtues (asgjë personale), por në të vërtetë gjithçka është shumë më e komplikuar.

Së pari, duhet të dini se ka mjaft paqartësi në ndarjen e rolit dhe aftësive të shkencëtarit të të dhënave dhe inxhinierit të të dhënave. Kjo do të thotë se mund të jeni lehtë të ngatërruar me ato cilat aftësi janë të nevojshme për një inxhinier të suksesshëm të të dhënave. Sigurisht, ka disa aftësi që përputhen në të dyja rolet. Por gjithashtu ka një numër të madh të aftësive diametralisht të kundërta.

Shkenca e të dhënave është një çështje serioze, por ne po lëvizim drejt një bote me shkencë funksionale të të dhënave, ku praktikuesit janë në gjendje të bëjnë analizën e tyre. Për të aktivizuar sirenat e të dhënave dhe strukturat e integruara të të dhënave, ju nevojiten inxhinierët e të dhënave, jo shkencëtarët.

A është inxhinieri i të dhënave më i kërkuar se shkencëtari i të dhënave?

— Po, sepse pĂ«rpara se tĂ« mund tĂ« bĂ«ni njĂ« tortĂ« me karota, duhet sĂ« pari tĂ« mbledhni, pastroni dhe siguroni karotat!

Inxhinieri i të dhënave e kupton programimin më mirë se çdo shkencëtar të dhënash, por kur bëhet fjalë për statistika, gjithçka është e kundërta.

Por ja përparësia e inxhinierit të të dhënave:

pa të, vlera e modelit prototip, shpesh herë një copë kodi të dobët në një skedar Python, e cila është marrë nga shkencëtari i të dhënave dhe në njëfarë mënyre rezulton, tendon në zero.

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

Informacionet thelbësore 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ë prej tyre?

Pra ndaj, nĂ«se ky punĂ« ju zgjon dritĂ«n dhe jeni plot entuziazĂ«m — ju keni kapacitetin tĂ« mĂ«soni kĂ«tĂ«, mund tĂ« zotĂ«roni tĂ« gjitha aftĂ«sitĂ« e nevojshme dhe tĂ« bĂ«heni njĂ« yll i vĂ«rtetĂ« nĂ« fushĂ«n e zhvillimit tĂ« tĂ« dhĂ«nave. Dhe, po, mund ta realizoni kĂ«tĂ« edhe pa aftĂ«si programimi ose njohuri tĂ« tjera teknike. ËshtĂ« e vĂ«shtirĂ«, por e mundshme!

Cilat janë hapat e parë?

Ju duhet të keni një kuptim të përgjithshëm se çfarë është çfarë.

SĂ« pari, Inxhinieria e tĂ« DhĂ«nave i pĂ«rket informatikĂ«s. NĂ« veçanti — ju duhet tĂ« kuptoni algoritmet efikase dhe strukturat e tĂ« dhĂ«nave. SĂ« dyti, pasi inxhinierĂ«t e tĂ« dhĂ«nave punojnĂ« me tĂ« dhĂ«na, Ă«shtĂ« e nevojshme tĂ« kuptohet parimet e funksionimit tĂ« bazave tĂ« tĂ« dhĂ«nave dhe strukturave qĂ« qĂ«ndrojnĂ« nĂ« themel tĂ« tyre.

Për shembull, bazat e të dhënave SQL të zakonshme B-tree janë të bazuara në strukturën e të dhënave B-Tree, si dhe, në depo moderne të shpërndara, LSM-Tree dhe modifikime të tjera të tabelave të heshit.

* Këto hapa janë të bazuar në një artikull të shkëlqyer Adil Hashtamov. Pra, nëse e njihni gjuhën ruse, mbështesni këtë autor dhe lexoni postimin e tij.

1. Algoritmet dhe strukturat e të dhënave

Përdorimi i strukturave të duhura të të dhënave mund të përmirësojë ndjeshëm performancën e algoritmit. Në mënyrë ideale, të gjithë duhet të studiojmë strukturat e të dhënave dhe algoritmet në shkollat tona, por kjo rrallë sqarohet. Në çdo rast, nuk është kurrë vonë të informohesh.
Kështu që, këtu janë kurset e mia të preferuara falas për të studiuar strukturat e të dhënave dhe algoritmet:

Plus, mos e harrojmĂ« veprĂ«n klasike mbi algoritmet tĂ« Thomas Cormenit — Hyrja nĂ« Algoritme. Ky Ă«shtĂ« udhĂ«zuesi ideal kur keni nevojĂ« tĂ« oshtoni kujtesĂ«n tuaj.

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

Ju gjithashtu mund të zhytni veten në botën e bazave të të dhënave me videoklipa të mrekullueshëm nga Universiteti Carnegie Mellon në Youtube:

2. Mësimi i 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, ju nevojitet të "flisni" me to në një gjuhë të përbashkët.

SQL (Gjuha e Kërkesave të Strukturuara) është një gjuhë komunikimi në fushën e të dhënave. Pavarësisht se çfarë thonë të tjerët, SQL ka jetuar, jeton dhe do të vazhdojë të jetojë për shumë kohë.

Nëse keni qenë për një kohë të gjatë në zhvillim, ndoshta e keni vënë re se thashetheme për vdekjen e shpejtë të SQL shfaqen herë pas here. Gjuha u zhvillua në fillim të viteve '70 dhe ende gëzon një popullaritet të madh mes analistëve, zhvilluesve dhe thjesht entuziastëve.
Pa njohuri në SQL, nuk keni çfarë të bëni në inxhinierinë e të dhënave, pasi do t'ju duhet të krijoni kërkesa për ekstraktimin e të dhënave. Të gjithë depozitat moderne të të dhënave të mëdha mbështesin SQL:

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server


 dhe shumë të tjerë.

Për analizimin e një sërë të dhënash të ruajtura në sisteme të shpërndara, si HDFS, janë shpikur mekanizma SQL: Apache Hive, Impala etj. E sheh, ai nuk po shkon kudo.

Si mund të mësoni SQL? Thjesht praktikoni.

Për këtë, do t'ju rekomandoja të njiheni me një manual të shkëlqyer, i cili, për rastësinë, është falas, nga Mode Analytics.

  1. Niveli i Mesëm i SQL
  2. Bashkimi i të dhënave në SQL

Karakteristika e këtyre kurseve është prania e një mjedisi interaktiv, ku mund të shkruani dhe ekzekutoni kërkesa SQL direkt në shfletues. Burimi Modern SQL nuk do të ishte disi e tepruar. Dhe ju mund të aplikoni këto njohuri në detyrat Leetcode në seksionin e Bazave të të dhënave.

3. Programimi në Python dhe Java/Scala

Pse duhet të studiuesh një gjuhë programimi si Python, e kam shkruar tashmë në artikullin Python vs R. Zgjedhja e mjetit më të mirë për AI, ML dhe Shkencën e të Dhënave. Sa për Java dhe Scala, shumica e mjeteve për ruajtje dhe përpunim të sasisë së madhe 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, ju nevojitet të dini gjuhët në të cilat janë shkruar. Qasja funksionale e Scala lejon zgjidhjen efikase të detyrave të përpunimit paralel të të dhënave. Python, fatkeqësisht, nuk mund të mburret me shpejtësinë dhe përpunimin paralel. Në përgjithësi, njohuria e disa gjuhëve dhe paradigmat e programimit ka një influencë pozitive në gjerësinë e qasjeve për zgjidhjen e problemeve.

PĂ«r t'u thelluar nĂ« gjuhĂ«n Scala, mund tĂ« lexoni Programimi nĂ« Scala nga autori i gjuhĂ«s. Kompania Twitter gjithashtu ka publikuar njĂ« udhĂ«zues tĂ« mirĂ« hyrĂ«s — Scala School.

Sa i përket Python, mendoj Fluent Python libri më i mirë në nivel mesatar.

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

Ja lista e mjeteve më të njohura në botën e të dhënave të mëdha:

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

Më shumë informacion mbi ndërlikimin e blloqeve të mëdha të të dhënave mund të gjeni në këtë mjet interaktiv. Mjetet më të njohura janë Spark dhe Kafka. Definitivisht vlen të studiohen, preferohet të kuptoni se si funksionojnë nga brenda. Jay Kreps (bashkautor i Kafka) në vitin 2013 publikoi një vepër monumentale The Log: çfarë duhet të dijë çdo zhvillues softueri rreth abstraksionit të bashkimit të të dhënave në kohë reale, për shembull, ide kryesore nga ky talmud u përdorën për të krijuar Apache Kafka.

5. Platforma të cloud

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

Njohja e të paktën një platforme cloud është në listën e kërkesave themelore për aplikantët për pozitat e inxhinierëve të të dhënave. Punëdhënësit preferojnë Amazon Web Services, në vendin e dytë është platforma cloud Google, dhe në vendin e tretë Microsoft Azure.

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

6. Sistemet e shpërndara

Puna me të dhëna të mëdha nënkupton ekzistencën e klastereve të kompjuterëve që funksionojnë në mënyrë të pavarur, ku lidhja midis tyre bëhet përmes rrjetit. Sa më i madh të jetë klasteri, aq më e madhe është mundësia e dështimit të nyjeve të tij. Për t'u bërë një ekspert i shkëlqyer në fushën e të dhënave, duhet të thellohet në problemet dhe zgjidhjet ekzistuese për sistemet e shpërndara. Kjo fushë është e vjetër dhe e ndërlikuar.

Andrew Tanenbaum konsiderohet një pionier në këtë fushë. Për ata që nuk e friksojnë teoria, unë rekomandoj librin e tij «Sistemet e shpërndara», për fillestarët mund të duket e komplikuar, por vërtet do t'ju ndihmojë të përmirësoni aftësitë tuaja.

Unë mendoj «Projektimi i aplikacioneve me përdorim intensiv të të dhënave» nga Martin Kleppmann libri më i mirë hyrës. Sidoqoftë, Martin ka një të mrekullueshme blog. Puna e tij do të ndihmojë në sistematizimin e njohurive mbi ndërtimin e infrastrukturës moderne për ruajtjen dhe përpunimin e të dhënave të mëdha.
Për ata që pëlqejnë të shikojnë video, në Youtube ka një kurs Sistemet 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ë prej tyre?

Tubacionet e të dhënave janë ato që nuk mund t'i shmangesh si një inxhinier të dhënash.

Një pjesë të madhe të kohës, inxhinieri i të dhënave ndërton atë që quhet tubacion i të dhënave, pra krijon një proces për dërgimin e të dhënave nga një vend në një tjetër. Këto mund të jenë skenarë përdoruesish që dërgojnë të dhëna në API të një shërbimi të jashtëm ose bëjnë kërkesa SQL, plotësojnë të dhënat dhe i vendosin ato në një depo qendrore (depo të dhënash) ose në një depo të dhënash jokonstruktuar (lago të dhënash).

Në përfundim: lista e kontrolleve për inxhinierin e të dhënave

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

Le tĂ« pĂ«rmbledhim — nevojitet njĂ« kuptim i mirĂ« i kĂ«saj:

  • Sistemet informative;
  • Zhvillimi i programeve (Agile, DevOps, Teknikat e Dizajnit, SOA);
  • Sistemet e shpĂ«rndara dhe programimi paralel;
  • Bazat e tĂ« dhĂ«nave — planifikimi, dizajni, operimi dhe pastrimi i problemeve;
  • Projektimi i eksperimenteve — Testet A/B pĂ«r tĂ« provuar konceptet, pĂ«r tĂ« pĂ«rcaktuar besueshmĂ«rinĂ« dhe performancĂ«n e sistemeve, si dhe pĂ«r tĂ« zhvilluar rrugĂ« tĂ« besueshme pĂ«r ofrimin e shpejtĂ« tĂ« zgjidhjeve cilĂ«sore.

Këto janë vetëm disa kërkesa për t'u bërë inxhinier të dhënash, prandaj hulumtoni dhe njihuni me sistemet e të dhënave, sistemet informative, dorëzimin e vazhdueshëm / implementimin / integrimin, gjuhët e programimit dhe tema të tjera në informatikë (jo në të gjitha fushat e studimit).

Dhe, më në fund, e fundit por shumë e rëndësishme, që dëshiroj të them.

Rruga drejt inxhinierisë së të dhënave nuk është aq e lehtë sa mund të duket. Ajo nuk fal, frustron, dhe ju duhet të jeni të përgatitur për këtë. Disa momente në këtë udhëtim mund t'ju nxisin të heqni dorë nga gjithçka. Por është një proces i vërtetë pune dhe mësimi.

Thjesht mos e zbukuroni nga fillimi. E gjithë kuptimi i udhëtimit është të mësoni sa më shumë të jetë e mundur dhe të jeni të gatshëm për sfida të reja.
Ja një imazh i shkëlqyer që kam hasur, i cili ilustron mirë këtë pikë:

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

Dhe, mos haroni të shmangni djegien dhe të pushoni. Kjo është gjithashtu shumë e rëndësishme. Suksese!

Si ju duket artikulli, miq? Ju ftojmë në webinarin falas, që do të zhvillohet sot në ora 20:00. Në këtë webinar do të diskutojmë si të ndërtosh një sistem të efektshëm dhe të shkallëzueshëm për përpunimin e të dhënave për një kompani të vogël ose start-up me kosto minimale. Si praktikë, do të njihemi me mjetet përpunuese të të dhënave të Google Cloud. Shihemi!

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster