Inżynier danych a Data Scientist: jaka jest zasadnicza różnica?

Zawody Data Scientist i Data Engineer często są mylone. Każda firma ma swoją specyfikę pracy z danymi, różne cele analizy oraz różne wyobrażenia, która z profesji powinna zajmować się jaką częścią pracy, dlatego też wymagania każda firma stawia swoje. 

Zajmiemy się różnicą między tymi specjalistami, jakie zadania biznesowe rozwiązują, jakie umiejętności posiadają oraz ile zarabiają. Materiał okazał się obszerny, dlatego podzieliliśmy go na dwie publikacje.

W pierwszym artykule Elena Gerasimova, kierownik wydziału „Data Science i analityka” w Netologii, opowiada, na czym polega różnica między Data Scientist a Data Engineer oraz z jakimi narzędziami pracują.

Jak różnią się role inżynierów i naukowców danych

Inżynier danych to specjalista, który z jednej strony projektuje, testuje i utrzymuje infrastrukturę pracy z danymi: bazy danych, magazyny i systemy do przetwarzania masowego. Z drugiej strony to osoba, która oczyszcza i "uszlachetnia" dane do wykorzystania przez analityków i data scientistów, czyli tworzy potoki przetwarzania danych.

Data Scientist tworzy i szkoli modele predykcyjne (i nie tylko) za pomocą algorytmów uczenia maszynowego i sieci neuronowych, pomagając biznesowi odkrywać ukryte prawidłowości, prognozować rozwój wydarzeń i optymalizować kluczowe procesy biznesowe.

Główna różnica między Data Scientist a Data Engineer polega na tym, że zazwyczaj mają różne cele. Obydwoje pracują na to, aby dane były dostępne i jakościowe. Jednak Data Scientist szuka odpowiedzi na swoje pytania i weryfikuje hipotezy w ekosystemie danych (na przykład na bazie Hadoop), podczas gdy Data Engineer tworzy pipeline do obsługi algorytmu uczenia maszynowego napisanego przez data scientist w klastrze Spark w tym samym ekosystemie. 

Inżynier danych przynosi wartość dla biznesu, pracując w zespole. Jego zadaniem jest bycie ważnym ogniwem między różnymi uczestnikami: od programistów po użytkowników biznesowych raportów, oraz zwiększenie produktywności analityków - od marketingowych, przez produktowe, aż po BI. 

Data Scientist za to aktywnie uczestniczy w strategii firmy i wydobywaniu insightów, podejmowaniu decyzji, wdrażaniu algorytmów automatyzacji, modelowania oraz generowaniu wartości z danych.
Inżynier danych a Data Scientist: jaka jest zasadnicza różnica?

Praca z danymi podlega zasadzie GIGO (garbage in — garbage out): jeśli analitycy i data scientist mają do czynienia z nieprzygotowanymi i potencjalnie niepoprawnymi danymi, to wyniki nawet przy użyciu najbardziej wyrafinowanych algorytmów analizy będą błędne. 

Inżynierowie danych rozwiązują ten problem, tworząc rurociągi do przetwarzania, oczyszczania i transformacji danych, umożliwiając data scientistowi pracę z wysokiej jakości danymi. 

Na rynku istnieje wiele narzędzi do pracy z danymi, które pokrywają każdy etap: od pojawienia się danych po wyświetlenie na pulpicie nawigacyjnym dla zarządu. Ważne jest, aby decyzję o ich użyciu podejmował inżynier, nie dlatego, że jest to modne, ale dlatego, że naprawdę pomoże to innym uczestnikom procesu. 

Warunkowo: jeśli firmie zależy na połączeniu BI i ETL — ładowaniu danych i aktualizacjach raportów, oto typowa infrastruktura legacy, z którą będzie musiał się zmierzyć inżynier danych (dobrze, jeśli w zespole oprócz niego będzie także architekt).

Obowiązki Inżyniera Danych

  • Projektowanie, budowa i utrzymanie infrastruktury pracy z danymi.
  • Obsługa błędów i tworzenie niezawodnych rurociągów przetwarzania danych.
  • Przygotowanie niestrukturalnych danych z różnych dynamicznych źródeł do formy wymaganej przez analityków.
  • Zapewnienie rekomendacji dotyczących poprawy spójności i jakości danych.
  • Zarządzanie i wsparcie architektury danych używanej przez data scientistów i analityków danych.
  • Przetwarzanie i przechowywanie danych w sposób spójny i wydajny w rozproszonym klastrze składającym się z dziesiątek lub setek serwerów.
  • Ocena technicznych kompromisów narzędzi do budowy prostych, ale niezawodnych architektur, które mogą przetrwać awarie.
  • Nadzór i wsparcie strumieni danych i powiązanych systemów (konfiguracja monitorowania i alertów).

Istnieje jeszcze jedna specjalizacja w ramach ścieżki Inżyniera Danych — inżynier ML. Krótko mówiąc, tacy inżynierowie specjalizują się w wprowadzaniu modeli uczenia maszynowego do przemysłowej instalacji i użytkowania. Często model dostarczony przez data scientist jest częścią badań i może nie działać w warunkach bojowych.

Obowiązki Data Scientist

  • Ekstrakcja cech z danych do zastosowania algorytmów uczenia maszynowego.
  • Wykorzystanie różnych narzędzi uczenia maszynowego do przewidywania i klasyfikacji wzorców w danych.
  • Zwiększenie wydajności i dokładności algorytmów uczenia maszynowego poprzez dostosowywanie i optymalizację algorytmów.
  • Formułowanie „silnych” hipotez zgodnie z strategią firmy, które należy przetestować.

Zarówno inżynier danych, jak i naukowiec danych łączy zauważalny wkład w rozwój kultury pracy z danymi, dzięki której firma może osiągać dodatkowe zyski lub redukować koszty.

Z jakimi językami i narzędziami pracują inżynierowie i naukowcy?

Dziś oczekiwania wobec specjalistów zajmujących się przetwarzaniem danych uległy zmianie. Kiedyś inżynierowie budowali duże zapytania SQL, ręcznie pisali MapReduce i przetwarzali dane za pomocą takich narzędzi jak Informatica ETL, Pentaho ETL, Talend. 

W 2020 roku specjalista nie może obyć się bez znajomości Pythona i nowoczesnych narzędzi przeprowadzania obliczeń (np. Airflow), a także zrozumienia zasad pracy z platformami chmurowymi (wykorzystania ich do oszczędzania na „sprzęcie”, przy zachowaniu zasad bezpieczeństwa).

SAP, Oracle, MySQL, Redis — to tradycyjne narzędzia dla inżyniera danych w dużych firmach. Są dobre, ale koszt licencji jest na tyle wysoki, że nauka pracy z nimi ma sens tylko w projektach przemysłowych. Istnieje jednak darmowa alternatywa w postaci Postgresa — jest darmowy i nadaje się nie tylko do nauki. 

Inżynier danych a Data Scientist: jaka jest zasadnicza różnica?
Historycznie często pojawia się zapotrzebowanie na Java i Scala, chociaż wraz z rozwojem technologii i podejść te języki odchodzą na dalszy plan.

Niemniej jednak, hardcore'owa BigData: Hadoop, Spark i reszta zoo — to już nie jest obowiązkowy warunek dla inżyniera danych, a rodzaj narzędzi do rozwiązywania problemów, które nie mogą być rozwiązane tradycyjnym ETL. 

W trendzie są usługi umożliwiające korzystanie z narzędzi bez znajomości języka, w którym są napisane (np. Hadoop bez znajomości Java), a także oferowanie gotowych usług do przetwarzania danych strumieniowych (rozpoznawanie głosu lub obrazów w wideo).

Popularne są rozwiązania przemysłowe od SAS i SPSS, przy czym Tableau, Rapidminer, Stata i Julia również są szeroko stosowane przez naukowców danych do lokalnych zadań.

Inżynier danych a Data Scientist: jaka jest zasadnicza różnica?
Analicy i data scientisty zyskali możliwość samodzielnego tworzenia pipeline'ów zaledwie kilka lat temu: na przykład, przy użyciu stosunkowo prostych skryptów można teraz kierować dane do magazynu opartego na PostgreSQL. 

Zwykle korzystanie z konwejrów i zintegrowanych struktur danych pozostaje w gestii inżynierów danych. Jednak dzisiaj, jak nigdy wcześniej, silny jest trend na specjalistów w profilu T — posiadających szerokie umiejętności w pokrewnych dziedzinach, ponieważ narzędzia ciągle się upraszczają.

Dlaczego Data Engineer i Data Scientist powinni pracować razem

Pracując w bliskiej współpracy z inżynierami, Data Scientist mogą skoncentrować się na części badawczej, tworząc gotowe do użycia algorytmy uczenia maszynowego.
Inżynierowie mogą skupić się na skalowalności, ponownym wykorzystaniu danych oraz zapewnieniu, że pipeline'y wejścia i wyjścia danych w każdym projekcie odpowiadają globalnej architekturze.

Takie podział obowiązków zapewnia spójność działań między grupami specjalistów pracujących nad różnymi projektami uczenia maszynowego. 

Współpraca sprzyja efektywnemu tworzeniu nowych produktów. Szybkość i jakość są osiągane dzięki równowadze między tworzeniem serwisów dla wszystkich (globalny magazyn lub integracja pulpitów) a realizacją każdej konkretnej potrzeby lub projektu (wyspecjalizowany pipeline, podłączenie zewnętrznych źródeł). 

Bliska praca z data scientistami i analitykami pomaga inżynierom rozwijać umiejętności analityczne i badawcze, co prowadzi do lepszego kodu. Ulepsza to wymianę wiedzy między użytkownikami magazynów i jezior danych, co sprawia, że projekty są bardziej elastyczne oraz zapewnia długoterminowe rezultaty.

W firmach, które mają na celu rozwój kultury pracy z danymi oraz budowanie procesów biznesowych w oparciu o nie, Data Scientist i Data Engineer wzajemnie się uzupełniają, tworząc kompleksowy system analizy danych. 

W następnym artykule opowiemy o tym, jakie wykształcenie powinni mieć Data Engineer i Data Scientists, jakie umiejętności powinni rozwijać oraz jak wygląda rynek.

Od redakcji Netologii

Jeśli rozważasz karierę jako Data Engineer lub Data Scientist, zapraszamy do zapoznania się z programami naszych kursów:

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster