Inżynier danych i naukowiec danych: jaka jest różnica?

Zawody analityka danych i inżyniera danych są często mylone. Każda firma ma swoją specyfikę pracy z danymi, inne cele ich analizy i inny pomysł na to, który specjalista powinien zająć się którą częścią pracy, dlatego każda ma swoje wymagania. 

Zastanówmy się, jaka jest różnica między tymi specjalistami, jakie problemy biznesowe rozwiązują, jakie mają umiejętności i ile zarabiają. Materiał okazał się obszerny, dlatego podzieliliśmy go na dwie publikacje.

W pierwszym artykule Elena Gerasimova, kierownik wydziału „Nauka o danych i analityka" w Netology opowiada, jaka jest różnica między analitykiem danych a inżynierem danych oraz z jakimi narzędziami pracują.

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

Inżynier danych to specjalista, który z jednej strony rozwija, testuje i utrzymuje infrastrukturę danych: bazy danych, systemy przechowywania i przetwarzania masowego. Z drugiej strony to on oczyszcza i „przeczesuje” dane na użytek analityków i analityków danych, czyli tworzy potoki przetwarzania danych.

Data Scientist tworzy i szkoli modele predykcyjne (i inne) przy użyciu algorytmów uczenia maszynowego i sieci neuronowych, pomagając firmom znajdować ukryte wzorce, przewidywać rozwój sytuacji i optymalizować kluczowe procesy biznesowe.

Główna różnica między analitykiem danych a inżynierem danych polega na tym, że zazwyczaj mają oni różne cele. Obydwa dbają o to, aby dane były dostępne i wysokiej jakości. Jednak analityk danych znajduje odpowiedzi na swoje pytania i testuje hipotezy w ekosystemie danych (na przykład w oparciu o Hadoop), a inżynier danych tworzy potok obsługi algorytmu uczenia maszynowego napisanego przez analityka danych w klastrze Spark w tym samym ekosystem. 

Inżynier danych wnosi wartość do firmy, pracując jako część zespołu. Jego zadaniem jest pełnienie roli ważnego łącznika pomiędzy różnymi uczestnikami: od programistów po biznesowych odbiorców raportowania oraz zwiększanie produktywności analityków, od marketingu i produktu po BI. 

Data Scientist natomiast bierze czynny udział w strategii firmy i wydobywa wnioski, podejmuje decyzje, wdraża algorytmy automatyzacji, modeluje i generuje wartość z danych.
Inżynier danych i naukowiec danych: jaka jest różnica?

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

Inżynierowie danych rozwiązują ten problem, budując potoki przetwarzania, czyszczenia i przekształcania danych oraz umożliwiając analitykom danych pracę z danymi wysokiej jakości. 

Na rynku dostępnych jest wiele narzędzi do pracy z danymi, które obejmują każdy etap: od pojawienia się danych, poprzez dane wyjściowe, aż po dashboard dla zarządu. I ważne jest, aby decyzję o ich zastosowaniu podjął inżynier – nie dlatego, że jest to modne, ale dlatego, że naprawdę pomoże w pracy innym uczestnikom procesu. 

Konwencjonalnie: jeśli firma potrzebuje połączenia pomiędzy BI i ETL – ładowania danych i aktualizacji raportów, oto typowe podstawy, z którymi będzie musiał sobie poradzić Inżynier Danych (dobrze, jeśli w zespole jest też architekt).

Obowiązki inżyniera danych

  • Rozwój, budowa i utrzymanie infrastruktury przetwarzania danych.
  • Obsługa błędów i tworzenie niezawodnych potoków przetwarzania danych.
  • Doprowadzenie nieustrukturyzowanych danych z różnych źródeł dynamicznych do formy niezbędnej do pracy analityków.
  • Dostarczanie rekomendacji mających na celu poprawę spójności i jakości danych.
  • Dostarczanie i utrzymywanie architektury danych wykorzystywanej przez analityków danych i analityków danych.
  • Przetwarzaj i przechowuj dane w sposób spójny i wydajny w rozproszonym klastrze składającym się z dziesiątek lub setek serwerów.
  • Oceń techniczne kompromisy narzędzi w celu stworzenia prostych, ale solidnych architektur, które przetrwają zakłócenia.
  • Kontrola i wsparcie przepływów danych i systemów z nimi związanych (konfiguracja monitoringu i alertów).

W ramach ścieżki Inżyniera Danych istnieje jeszcze jedna specjalizacja – inżynier ML. Krótko mówiąc, inżynierowie ci specjalizują się we wdrażaniu i zastosowaniu modeli uczenia maszynowego w przemyśle. Często model otrzymany od analityka danych stanowi część badania i może nie sprawdzić się w warunkach bojowych.

Obowiązki analityka danych

  • Wyodrębnianie funkcji z danych w celu zastosowania algorytmów uczenia maszynowego.
  • Korzystanie z różnych narzędzi uczenia maszynowego do przewidywania i klasyfikowania wzorców w danych.
  • Poprawa wydajności i dokładności algorytmów uczenia maszynowego poprzez dostrajanie i optymalizację algorytmów.
  • Tworzenie „silnych” hipotez zgodnych ze strategią firmy, które należy przetestować.

Zarówno Inżynier Danych, jak i Data Scientist wnoszą wymierny wkład w rozwój kultury danych, dzięki której firma może generować dodatkowe zyski lub redukować koszty.

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

Dziś oczekiwania wobec analityków danych uległy zmianie. Wcześniej inżynierowie zbierali duże zapytania SQL, ręcznie pisali MapReduce i przetwarzali dane za pomocą narzędzi takich jak Informatica ETL, Pentaho ETL, Talend. 

W 2020 roku specjalista nie może obejść się bez znajomości Pythona i nowoczesnych narzędzi obliczeniowych (np. Airflow), zrozumienia zasad pracy z platformami chmurowymi (wykorzystywanie ich w celu oszczędzania na sprzęcie, przy zachowaniu zasad bezpieczeństwa).

SAP, Oracle, MySQL, Redis to tradycyjne narzędzia dla inżynierów 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. Jednocześnie istnieje darmowa alternatywa w postaci Postgresa - jest darmowa i nadaje się nie tylko do treningu. 

Inżynier danych i naukowiec danych: jaka jest różnica?
Historycznie rzecz biorąc, często spotykano prośby o Java i Scala, chociaż w miarę rozwoju technologii i podejść, języki te schodzą na dalszy plan.

Jednak hardcorowy BigData: Hadoop, Spark i reszta zoo nie jest już wymogiem wstępnym dla inżyniera danych, ale rodzajem narzędzi do rozwiązywania problemów, których nie da się rozwiązać tradycyjnym ETL. 

Trendem 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 Javy), a także udostępnianie gotowych usług przetwarzania danych strumieniowych (rozpoznawanie głosu czy rozpoznawanie obrazu na wideo ).

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

Inżynier danych i naukowiec danych: jaka jest różnica?
Możliwość samodzielnego budowania potoków pojawiła się wśród analityków i badaczy danych dopiero kilka lat temu: na przykład możliwe jest już wysyłanie danych do magazynu opartego na PostgreSQL za pomocą stosunkowo prostych skryptów. 

Zazwyczaj za wykorzystanie potoków i zintegrowanych struktur danych odpowiadają inżynierowie danych. Jednak dzisiaj trend na specjalistów w kształcie litery T, posiadających szerokie kompetencje w pokrewnych dziedzinach, jest silniejszy niż kiedykolwiek, ponieważ narzędzia są stale upraszczane.

Dlaczego inżynier danych i analityk danych współpracują ze sobą

Dzięki ścisłej współpracy z inżynierami badacze danych mogą skupić się na stronie badawczej, tworząc algorytmy uczenia maszynowego gotowe do produkcji.
Inżynierowie muszą skupić się na skalowalności, ponownym wykorzystaniu danych i zapewnieniu, że potoki wejściowe i wyjściowe danych w każdym indywidualnym projekcie są zgodne z globalną architekturą.

Taki podział obowiązków zapewnia spójność między zespołami pracującymi nad różnymi projektami uczenia maszynowego. 

Współpraca pomaga efektywnie tworzyć nowe produkty. Szybkość i jakość osiąga się poprzez równowagę pomiędzy stworzeniem usługi dla każdego (globalne przechowywanie lub integracja dashboardów) a realizacją każdej konkretnej potrzeby lub projektu (wysoko wyspecjalizowany rurociąg, łączenie źródeł zewnętrznych). 

Ścisła współpraca z analitykami danych i analitykami pomaga inżynierom rozwijać umiejętności analityczne i badawcze w celu pisania lepszego kodu. Poprawia się wymiana wiedzy między użytkownikami hurtowni i jezior danych, dzięki czemu projekty są bardziej elastyczne i zapewniają bardziej zrównoważone, długoterminowe wyniki.

W firmach, które stawiają sobie za cel rozwój kultury pracy z danymi i budowanie w oparciu o nie procesów biznesowych, Data Scientist i Data Engineer uzupełniają się i tworzą kompletny system analizy danych. 

W kolejnym artykule porozmawiamy o tym, jakie wykształcenie powinien posiadać Inżynier Danych i Data Scientist, jakie umiejętności muszą rozwijać i jak działa rynek.

Od redakcji Netology

Jeśli zastanawiasz się nad zawodem Inżyniera Danych lub Naukowca Danych, zapraszamy do zapoznania się z naszymi programami kursów:

Źródło: www.habr.com

Dodaj komentarz