Data Engineer at Data Scientist: ano ang pagkakaiba?

Ang mga propesyon ng Data Scientist at Data Engineer ay madalas na nalilito. Ang bawat kumpanya ay may sariling mga detalye ng pagtatrabaho sa data, iba't ibang layunin para sa kanilang pagsusuri at ibang ideya kung aling espesyalista ang dapat makitungo sa kung aling bahagi ng trabaho, samakatuwid ang bawat isa ay may sariling mga kinakailangan. 

Alamin natin kung ano ang pagkakaiba sa pagitan ng mga espesyalistang ito, kung anong mga problema sa negosyo ang kanilang nalulutas, anong mga kasanayan ang mayroon sila at kung magkano ang kanilang kinikita. Malaki pala ang materyal, kaya hinati namin ito sa dalawang publikasyon.

Sa unang artikulo, si Elena Gerasimova, pinuno ng faculty "Data Science at Analytics" sa Netology, ay nagsasabi kung ano ang pagkakaiba sa pagitan ng isang Data Scientist at isang Data Engineer at kung anong mga tool ang kanilang ginagamit.

Paano naiiba ang mga tungkulin ng mga inhinyero at siyentipiko

Ang isang inhinyero ng data ay isang espesyalista na, sa isang banda, ay bubuo, sumusubok at nagpapanatili ng imprastraktura ng data: mga database, imbakan at mga sistema ng pagpoproseso ng masa. Sa kabilang banda, ito ang naglilinis at "nagsusuklay" ng data para magamit ng mga analyst at data scientist, iyon ay, lumilikha ng mga pipeline sa pagproseso ng data.

Gumagawa at nagsasanay ang Data Scientist ng predictive (at iba pa) na mga modelo gamit ang mga machine learning algorithm at neural network, na tumutulong sa mga negosyo na makahanap ng mga nakatagong pattern, hulaan ang mga development at i-optimize ang mga pangunahing proseso ng negosyo.

Ang pangunahing pagkakaiba sa pagitan ng isang Data Scientist at isang Data Engineer ay karaniwang may iba't ibang layunin sila. Parehong gumagana upang matiyak na ang data ay naa-access at may mataas na kalidad. Ngunit ang isang Data Scientist ay nakahanap ng mga sagot sa kanyang mga tanong at sumusubok ng mga hypotheses sa isang data ecosystem (halimbawa, batay sa Hadoop), at ang isang Data Engineer ay gumagawa ng pipeline para sa pagseserbisyo sa isang machine learning algorithm na isinulat ng isang data scientist sa isang Spark cluster sa loob ng parehong ecosystem. 

Ang isang data engineer ay nagdudulot ng halaga sa isang negosyo sa pamamagitan ng pagtatrabaho bilang bahagi ng isang team. Ang gawain nito ay kumilos bilang isang mahalagang link sa pagitan ng iba't ibang kalahok: mula sa mga developer hanggang sa mga consumer ng negosyo ng pag-uulat, at upang pataasin ang produktibidad ng mga analyst, mula sa marketing at produkto hanggang sa BI. 

Ang isang Data Scientist, sa kabaligtaran, ay aktibong bahagi sa diskarte ng kumpanya at pagkuha ng mga insight, paggawa ng mga desisyon, pagpapatupad ng mga algorithm ng automation, pagmomodelo at pagbuo ng halaga mula sa data.
Data Engineer at Data Scientist: ano ang pagkakaiba?

Ang pagtatrabaho sa data ay napapailalim sa prinsipyo ng GIGO (garbage in - garbage out): kung ang mga analyst at data scientist ay haharap sa hindi handa at potensyal na hindi tamang data, kung gayon ang mga resulta kahit na gamit ang pinaka-sopistikadong mga algorithm ng pagsusuri ay magiging mali. 

Nilulutas ng mga inhinyero ng data ang problemang ito sa pamamagitan ng pagbuo ng mga pipeline para sa pagproseso, paglilinis at pagbabago ng data at pagpayag sa mga data scientist na magtrabaho gamit ang mataas na kalidad na data. 

Mayroong maraming mga tool sa merkado para sa pagtatrabaho sa data na sumasaklaw sa bawat yugto: mula sa hitsura ng data hanggang sa output hanggang sa isang dashboard para sa board of directors. At ito ay mahalaga na ang desisyon na gamitin ang mga ito ay ginawa ng isang inhinyero - hindi dahil ito ay naka-istilong, ngunit dahil siya ay talagang makakatulong sa gawain ng iba pang mga kalahok sa proseso. 

Karaniwan: kung ang isang kumpanya ay kailangang gumawa ng mga koneksyon sa pagitan ng BI at ETL - naglo-load ng data at nag-a-update ng mga ulat, narito ang isang karaniwang legacy na pundasyon na kailangang harapin ng isang Data Engineer (mabuti kung mayroon ding arkitekto sa team).

Mga Responsibilidad ng isang Data Engineer

  • Pag-unlad, pagtatayo at pagpapanatili ng imprastraktura sa pagpoproseso ng data.
  • Pangangasiwa ng mga error at paggawa ng maaasahang mga pipeline sa pagproseso ng data.
  • Ang pagdadala ng hindi nakabalangkas na data mula sa iba't ibang mga dynamic na mapagkukunan sa form na kinakailangan para sa gawain ng mga analyst.
  • Pagbibigay ng mga rekomendasyon para mapahusay ang pagkakapare-pareho at kalidad ng data.
  • Pagbibigay at pagpapanatili ng arkitektura ng data na ginagamit ng mga data scientist at data analyst.
  • Iproseso at iimbak ang data nang tuluy-tuloy at mahusay sa isang distributed cluster ng sampu o daan-daang server.
  • Suriin ang mga teknikal na trade-off ng mga tool upang lumikha ng simple ngunit matatag na mga arkitektura na maaaring makaligtas sa pagkagambala.
  • Kontrol at suporta ng mga daloy ng data at mga kaugnay na sistema (pagse-set up ng pagsubaybay at mga alerto).

May isa pang espesyalisasyon sa loob ng trajectory ng Data Engineer - ML engineer. Sa madaling sabi, ang mga inhinyero na ito ay dalubhasa sa pagdadala ng mga modelo ng machine learning sa pagpapatupad at paggamit ng industriya. Kadalasan, ang isang modelong natanggap mula sa isang data scientist ay bahagi ng isang pag-aaral at maaaring hindi gumana sa mga kondisyon ng labanan.

Mga Responsibilidad ng Data Scientist

  • Pag-extract ng mga feature mula sa data para maglapat ng mga machine learning algorithm.
  • Paggamit ng iba't ibang tool sa pag-aaral ng makina upang hulaan at pag-uri-uriin ang mga pattern sa data.
  • Pagpapabuti ng pagganap at katumpakan ng mga algorithm ng machine learning sa pamamagitan ng fine-tuning at pag-optimize ng mga algorithm.
  • Pagbuo ng "malakas" na hypotheses alinsunod sa diskarte ng kumpanya na kailangang masuri.

Parehong nagbabahagi ang Data Engineer at Data Scientist ng isang nasasalat na kontribusyon sa pagbuo ng kultura ng data, kung saan ang isang kumpanya ay maaaring makabuo ng mga karagdagang kita o mabawasan ang mga gastos.

Anong mga wika at tool ang ginagamit ng mga inhinyero at siyentipiko?

Ngayon, ang mga inaasahan para sa mga data scientist ay nagbago. Noong nakaraan, nakolekta ng mga inhinyero ang malalaking query sa SQL, manu-manong nagsulat ng MapReduce at nagproseso ng data gamit ang mga tool tulad ng Informatica ETL, Pentaho ETL, Talend. 

Sa 2020, hindi magagawa ng isang espesyalista nang walang kaalaman sa Python at modernong mga tool sa pagkalkula (halimbawa, Airflow), pag-unawa sa mga prinsipyo ng pagtatrabaho sa mga cloud platform (gamit ang mga ito upang makatipid sa hardware, habang sinusunod ang mga prinsipyo ng seguridad).

Ang SAP, Oracle, MySQL, Redis ay mga tradisyonal na tool para sa mga inhinyero ng data sa malalaking kumpanya. Ang mga ito ay mahusay, ngunit ang halaga ng mga lisensya ay napakataas na ang pag-aaral na magtrabaho sa kanila ay may katuturan lamang sa mga pang-industriyang proyekto. Kasabay nito, mayroong isang libreng alternatibo sa anyo ng Postgres - ito ay libre at angkop hindi lamang para sa pagsasanay. 

Data Engineer at Data Scientist: ano ang pagkakaiba?
Sa kasaysayan, ang mga kahilingan para sa Java at Scala ay madalas na matatagpuan, bagaman habang umuunlad ang mga teknolohiya at diskarte, ang mga wikang ito ay kumukupas sa background.

Gayunpaman, ang hardcore na BigData: Hadoop, Spark at ang iba pang bahagi ng zoo ay hindi na isang kinakailangan para sa isang data engineer, ngunit isang uri ng mga tool para sa paglutas ng mga problema na hindi malulutas ng tradisyonal na ETL. 

Ang trend ay mga serbisyo para sa paggamit ng mga tool nang walang kaalaman sa wika kung saan nakasulat ang mga ito (halimbawa, Hadoop na walang kaalaman sa Java), pati na rin ang pagbibigay ng mga handa na serbisyo para sa pagproseso ng streaming data (pagkilala sa boses o pagkilala sa imahe sa video. ).

Ang mga pang-industriyang solusyon mula sa SAS at SPSS ay sikat, habang ang Tableau, Rapidminer, Stata at Julia ay malawakang ginagamit ng mga data scientist para sa mga lokal na gawain.

Data Engineer at Data Scientist: ano ang pagkakaiba?
Ang kakayahang bumuo ng mga pipeline mismo ay lumitaw sa mga analyst at data scientist ilang taon na ang nakalipas: halimbawa, posible nang magpadala ng data sa isang PostgreSQL-based na storage gamit ang medyo simpleng mga script. 

Karaniwan, ang paggamit ng mga pipeline at pinagsama-samang istruktura ng data ay nananatiling responsibilidad ng mga inhinyero ng data. Ngunit ngayon, ang trend para sa mga espesyalista na hugis T na may malawak na kakayahan sa mga kaugnay na larangan ay mas malakas kaysa dati, dahil ang mga tool ay patuloy na pinasimple.

Bakit Nagtutulungan ang Data Engineer at Data Scientist

Sa pamamagitan ng malapit na pakikipagtulungan sa mga inhinyero, maaaring tumuon ang Data Scientists sa bahagi ng pananaliksik, na lumilikha ng mga algorithm sa pag-aaral ng makina na handa sa produksyon.
At kailangan ng mga inhinyero na tumuon sa scalability, muling paggamit ng data, at pagtiyak na ang data input at output pipeline sa bawat indibidwal na proyekto ay sumusunod sa pandaigdigang arkitektura.

Tinitiyak ng paghihiwalay na ito ng mga responsibilidad ang pagiging pare-pareho sa mga team na nagtatrabaho sa iba't ibang proyekto sa machine learning. 

Ang pakikipagtulungan ay nakakatulong na lumikha ng mga bagong produkto nang mahusay. Ang bilis at kalidad ay nakakamit sa pamamagitan ng balanse sa pagitan ng paglikha ng isang serbisyo para sa lahat (pandaigdigang imbakan o pagsasama ng mga dashboard) at pagpapatupad ng bawat partikular na pangangailangan o proyekto (highly specialized pipeline, pagkonekta sa mga panlabas na mapagkukunan). 

Ang pakikipagtulungan nang malapit sa mga data scientist at analyst ay tumutulong sa mga inhinyero na bumuo ng mga kasanayan sa analitikal at pananaliksik upang magsulat ng mas mahusay na code. Ang pagbabahagi ng kaalaman sa mga user ng warehouse at data lake ay nagpapabuti, ginagawang mas maliksi ang mga proyekto at naghahatid ng mas napapanatiling pangmatagalang resulta.

Sa mga kumpanyang naglalayong bumuo ng kultura ng pagtatrabaho sa data at pagbuo ng mga proseso ng negosyo batay sa mga ito, ang Data Scientist at Data Engineer ay nagpupuno sa isa't isa at lumikha ng kumpletong sistema ng pagsusuri ng data. 

Sa susunod na artikulo ay pag-uusapan natin kung anong uri ng edukasyon ang dapat magkaroon ng Data Engineer at Data Scientist, kung anong mga kasanayan ang kailangan nilang paunlarin at kung paano gumagana ang merkado.

Mula sa mga editor ng Netology

Kung tinitingnan mo ang propesyon ng Data Engineer o Data Scientist, inaanyayahan ka naming pag-aralan ang aming mga programa sa kurso:

Pinagmulan: www.habr.com

Magdagdag ng komento