Zawód Data Engineer

0

Czy ktoś mógłby w paru zdaniach przedstawić jak wygląda dzień osoby, która pracuje na stanowisku Data Engineer?

Domyślam się, że praca takiej osoby często powiązana jest z dużymi zbiorami danych trzymanych w rozproszonych bazach jak np. cassandra i przetwarzanych z pomocą takich narzędzi jak spark, storm, hadoop i języka Scala.

Widzę też pojęcie ETL (extract, transform & load) i mniej więcej mam przeczucie, że taka osoba raczej nie pracuje jak normalny developer (w sensie tworzenie docelowej aplikacji, czy usługi), lecz raczej produkuje skrypty do obróbki lub jakiś obliczeń, analiz dostępnych np. w trybie realtime.

Czy ktoś byłby w stanie opisać szerzej to stanowisko? Np. zwrócić uwagę na czym generalnie koncentruje się ta praca, jakiego typu zadania można tu realizować?

Tutaj dodatkowe pytania:

  1. Scala jest często używana (bo np. spark jest zrobiony w scala). W Scali mamy też platformę akka, która udostępnia możliwość programowania agentowego. No i tutaj pytanie, dlaczego programowanie agentowe tutaj się przyjeło? Czy tu chodzi o coś w stylu jak w Elixir, że jak mamy wiele połączeń to możemy je tanio obsłużyć i zebrać mnóstwo zdarzeń? Jeśli tak, to dlaczego scala oraz akka jednocześnie wpasowały się do przetwarzania danych (bo np. elixir to słabo sobie z tym radzi).

  2. Czy Data Engineer zajmuje się programowaniem ukierunkowanym w stronę współbieżności, asynchronicznych akcji? Czy raczej tym się zajmują tylko osoby tworzące rozwiązania takie jak Storm?

  3. Czy Data Engineer to również administrator, który studiuje konfiguracje np. cassandry i zajmuje się jej utrzymaniem?

  4. Czy można powiedzieć, że Data Engineer to również analityk? Jeśli tak to jakie tematy z matematyki warto znać i rozumieć?

Zapraszam do dyskusji osoby powiązane z wyżej wymienionymi technologiami, a szczególnie: @Wibowit @Krolik

0

Nie jestem Data Engineer, ale odpowiem na jedno pytanie (o Akce):

Scala jest często używana (bo np. spark jest zrobiony w scala). W Scali mamy też platformę akka, która udostępnia możliwość programowania agentowego. No i tutaj pytanie, dlaczego programowanie agentowe tutaj się przyjeło?

Akka jest praktycznie podstawą w Scali, jest używana w niej tak często jak np Spring w Javie albo nawet i częściej. Akka w połączeniu z funkcyjnymi strukturami danych dostępnymi standardowo w Scali pozwala na łatwe programowanie współbieżne i/ lub rozproszone. W typowym kodzie Akkowym nie ma zabawy z volatile, atomic, synchronized, etc Dane wymieniane między aktorami są serializowane automatycznie. Akka ma gotowe mechanizmy do przetwarzania rozproszonego (akka-cluster, akka-distributed-data, akka-streams będzie działać nawet zdalnie https://doc.akka.io/docs/akka/current/stream/stream-refs.html , alpakka do integracji z kolejkami itd). Krótko mówiąc w Akce jest komplet narzędzi do przetwarzania rozproszonego.

0

Świetny temat, też jestem ciekaw. Zwłaszcza ze mam szansę zmiany pracy z Testera Automatycznego w Pythonie na właśnie Big Data Engineera z Pythonem i właśnie rozważam tę kwestię.

0

Data engineer to tak szerokie pojęcie, że aż bez znaczenia. Matematyk, który zajmuje się generacją danych za pomocą metod statystycznych albo różnych wyspecjalizowanych bibliotek i zna tylko pythona, może być nazwany data engineerem. Data engineerem może być również nazwany javowiec siedzący w sparku, który przetwarza duże ilości danych w allegro. Jak dla mnie, nie da się odpowiedzieć na pytanie OPa. Rozrzut jest taki jak przy stanowisku "programista" - możesz klepać htmla, a możesz pisać algorytmy oparte na grafach w c++.

0

Nie w temacie, ale Akka to model aktorowy współbieżności a nie model agentowy. Model agentowy to jest coś co służy do robienia publikacji i męczenia studentów na studiach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1