Big Data – pozyskiwanie, analizowanie i gromadzenie danych

Big Data – pozyskiwanie, analizowanie i gromadzenie danych

Big Data to ogromne zbiory danych pochodzących najczęściej z nowych źródeł. Jest to technologicznie rozbudowana metoda, gromadząca, pobierająca i przeprowadzająca analizę danych z rozmaitych źródeł. Celem jest realizacja różnych zamysłów, przede wszystkim komercyjnych.

Działanie Big Data

Technologia ta pozwala zautomatyzować proces gromadzenia i przetwarzania ogromnych zbiorów danych. Na podstawie zebranych i przeanalizowanych danych sporządza się tzw. profile (konsumenckie, psychologiczne). Przykładowo pod uwagę bierze się cechy takie jak wiek, najczęściej przeglądane strony (np. o podróżach) itp. Na tej podstawie tworzy się wtedy perfekcyjny profil osoby potencjalnie chętnej na zakup np. wycieczki. Big Data umożliwia także przewidywanie zachowań ludzi na podstawie pozostawianych w Internecie danych.

Pozyskiwanie danych

Dla działalności marketingowych najlepszym źródłem do pozyskiwania danych są portale społecznościowe. Dane gromadzone tam mają tą cechę, że dostarczane są przez samych użytkowników. Można je wtedy analizować pod kątem użytych fraz i reakcji (lajki). Mogą także utworzyć efektywne środowisko Big Data do realizacji niektórych działań biznesowych od analityki po obsługę klienta. Oto co umożliwia ta technologia:

Obsługa klienta – gromadzenie danych z mediów społecznościowych, wizyt na stronach internetowych, dzienników połączeń i innych źródeł w celu usprawnienia interakcji z klientami;

– gromadzenie danych z mediów społecznościowych, wizyt na stronach internetowych, dzienników połączeń i innych źródeł w celu usprawnienia interakcji z klientami; Oszustwa – identyfikowanie w danych wzorców wskazujących na oszustwa i gromadzenie dużej ilości informacji, aby znacznie przyspieszyć generowanie sprawozdań wymaganych przez organy regulacyjne;

– identyfikowanie w danych wzorców wskazujących na oszustwa i gromadzenie dużej ilości informacji, aby znacznie przyspieszyć generowanie sprawozdań wymaganych przez organy regulacyjne; Rozwój produktów – szacowanie wielkości sprzedaży w celu zorganizowania procesów produkcyjnych, zaplanowania czynności magazynowych i opracowania budżetów;

– szacowanie wielkości sprzedaży w celu zorganizowania procesów produkcyjnych, zaplanowania czynności magazynowych i opracowania budżetów; Efektywność operacyjna – dzięki wielkim zbiorom danych można analizować i oceniać produkcję, opinie klientów i zwroty oraz inne czynniki, aby zmniejszyć liczbę przestojów i przewidywać przyszłe wymagania;

– dzięki wielkim zbiorom danych można analizować i oceniać produkcję, opinie klientów i zwroty oraz inne czynniki, aby zmniejszyć liczbę przestojów i przewidywać przyszłe wymagania; Samo uczenie się maszyn – dzięki dostępności wielkich zbiorów danych możemy wykorzystywać je do trenowania modeli, uczyć je a nie programować;

– dzięki dostępności wielkich zbiorów danych możemy wykorzystywać je do trenowania modeli, uczyć je a nie programować; Stymulowanie innowacji – może pomóc we wprowadzaniu innowacji, umożliwiając badanie współzależności między ludźmi, instytucjami, podmiotami i procesami, a następnie określając nowe sposoby wykorzystania uzyskanych wniosków.

Olbrzymie zbiory danych stanowią kapitał przedsiębiorstwa. Korzyści płynące z Big Data pozwalają firmą analizować dane i działać efektywniej opracowując nowe produkty. W dzisiejszych czasach Big Data jest podstawą w działaniu wielu sektorów gospodarki, dla których umiejętność rozporządzania dużą ilością danych bezpośrednio przekłada się na:

lepszą administrację;

ciecie kosztów;

ulepszenie działań;

wyznaczanie kierunków rozwoju;

nabywanie elastyczności w przedsięwzięciach;

szybsza reakcja na zmienność oczekiwań klienta.

Big Data a RODO

Zagadnienie ochrony danych osobowych w kontekście big data jest dosyć złożone. Niektóre zasady i wymogi wynikające z podstawowych cech analityki Big Data mogą być trudne do zastosowania w odniesieniu do RODO. Dane często łączy się z wielu różnych źródeł i wiele podmiotów je udostępnia i wykorzystuje. Ilość źródeł, podmiotów i celów nie zawsze jest zgodna z wymogami prawnymi dotyczącymi ochrony danych osobowych.

Big Data oraz technologie służące analizie danych odnajdują zastosowanie w wielu różnych branżach. Dzięki nowoczesnym rozwiązaniom zarządzanie biznesem jest o wiele łatwiejsze, a podejmowanie decyzji nie zachodzi wskutek intuicji. Z technologią tą możesz wypracować najlepszą strategię dla swojego biznesu.

Jak stać się data engineerem

To jest ciekawa ścieżka dla programisty z zacięciem naukowo-badawczym.

Kim jest ten data engineer?

Zapotrzebowanie na inżynierów danych szybko rośnie. Według popyt wzrósł o 45% w 2019 roku. Ale czym oni się zajmują?

Inżynieria danych jest ściśle związana z danymi, jak widać po jej nazwie. Ale o ile „zwykła” analityka danych zwykle oznacza wydobywanie wniosków z istniejących danych, inżynieria danych oznacza proces budowania infrastruktury w celu dostarczania, przechowywania i przetwarzania danych. Zgodnie z The AI Hierarchy of Needs proces inżynierii danych znajduje się na samym dole: zbieranie, przenoszenie i przechowywanie, przygotowanie danych. Jeśli więc dana firma chce być silnie oparta na danych lub sztucznej inteligencji, powinna zatrudnić (przeszkolić) inżynierów danych.

Ale co właściwie robią inżynierowie danych? Ilość danych szybko rośnie każdego dnia. Nawet małe urządzenia są podłączone do Internetu. Inżynierowie danych z przeszłości byli odpowiedzialni za pisanie złożonych zapytań SQL, budowanie procesów ETL (extract, transform & load) przy użyciu dużych narzędzi korporacyjnych, takich jak Informatica ETL, Pentaho ETL czy Talend. Ale teraz rynek wymaga szerszego zestawu umiejętności.

Jeśli chcesz pracować jako inżynier danych…

To musi Cię cechować:

Średnio zaawansowana znajomość SQL i Python

Doświadczenie w pracy z dostawcami chmury, takimi jak AWS, Azure czy GCP

Znajomość Java / Scala (duży plus)

Zrozumienie SQL / NoSQL (modelowanie danych, hurtownie danych, optymalizacja wydajności)

Zestaw umiejętności jest więc całkiem podobny do tego, co zwykle znają programiści backendowi. W rzeczywistości, jeśli firma stopniowo rozwija się pod względem danych, idealnym kandydatem do przekształcenia w inżyniera danych jest właśnie backend developer. Oczywiście poszczególne technologie i narzędzia mogą się różnić w zależności od wielkości firmy, ilości danych i szybkości przesyłania danych.

Dane to bazy

Inżynieria danych to dziedzina inżynierska, dlatego wymagana jest znajomość podstaw informatyki, a zwłaszcza znajomość najpopularniejszych algorytmów i struktur danych. Ponieważ inżynierowie danych codziennie mają do czynienia z danymi, zrozumienie zasad działania baz danych jest ogromnym plusem. Na przykład najpopularniejsze bazy danych SQL, takie jak SQLite, PostgreSQL, MySQL, używają w rzeczywistości („pod maską”) struktury danych B-Tree - więc warto ją rozumieć.

Może zaczniesz od tego kursu (Data Structures and Algorithms Specialization)?

SQL został opracowany w latach 70-tych i nadal jest najpopularniejszym językiem do pracy z danymi. Zapewne pozostaniemy przy SQL przez następną dekadę lub dwie. W ekosystemie dużych zbiorów danych istnieje wiele różnych silników SQL: Presto (Trino), Hive, Impala itp.

Programowanie

Python to bardzo popularny język programowania do tworzenia aplikacji internetowych, ale także do analizy danych i nauki. Ma bardzo bogaty ekosystem i ogromną społeczność. Wiele systemów big data jest jednak napisanych w Javie lub Scali, np. Apache Kafka (Scala) czy Hadoop HDFS (Java). Aby zrozumieć, jak działają te systemy, warto znać język, w którym są napisane. Największym zmartwieniem Pythona jest jego słaba wydajność, dlatego znajomość bardziej wydajnego języka będzie dużym plusem dla Twojego zestawu umiejętności. A do tego jeszcze wybierz wygodne IDE?

Narzędziownia

W krajobrazie Big Data istnieje wiele różnych technologii. Najpopularniejsze to:

Apache Kafka - kolejka komunikatów / magistrala zdarzeń / przesyłanie strumieniowe zdarzeń Apache Spark - ujednolicony silnik analityczny do przetwarzania danych na dużą skalę Apache Hadoop - platforma do dużych zbiorów danych, która składa się z różnych narzędzi, bibliotek i struktur, w tym rozproszonego systemu plików (HDFS), Apache Hive, HBase itp. Apache Druid - baza danych do analiz w czasie rzeczywistym

Naprawdę trudno jest się wszystkiego nauczyć, dlatego skup się na najpopularniejszych i naucz się podstawowych pojęć, które się za nimi kryją.

Sprawdź oferty pracy na TeamQuest

Data Platform, czyli jak w 6 tygodni nauczyć się podstaw data engineering

Jak poradzić sobie z brakiem specjalistów Data Engineering na rynku? Przy dużej konkurencji i zapotrzebowaniu sama rekrutacja nie wystarczy. Wykształcenie nowego pokolenia specjalistów jest ważne, ale nie rozwiązuje problemu tu i teraz. Co pozostaje? Spojrzeć do wnętrza organizacji, poszukać ludzi z odpowiednim zestawem umiejętności i na kilka tygodni wrzucić ich do intensywnego świata inżynierii danych. Sprawdźcie, co można osiągnąć w tym czasie.

Data Engineers wanted!

Serwis Dice przeanalizował 6 milionów ofert pracy z branży technologicznej na amerykańskim rynku pracy od 2018 do końca 2019. Największy, 50% procentowy wzrost zanotowały oferty na stanowisko Data Engineer! Nic dziwnego, skoro wartość rynku big data wzrasta rocznie o około 10%. Obecnie na poziomie około 56 miliardów dolarów, do 2027 wartość ta może się podwoić.

Jak firmy mogą radzić sobie z zapotrzebowaniem na specjalistów data (I nie tylko)? Rekrutacja nie zaspokoi wszystkich potrzeb. A szkolenia? „Najlepsi nauczyciele jakich możesz znaleźć, pracują już w twojej firmie… Pozwól im przekazywać posiadaną wiedzę!” napisał Laszlo Bock, były szef HR w Google w swojej książce „Praca rządzi”. Najlepsi w firmie są nie tylko świetni w tym, co robią, ale lepiej niż ktoś z zewnątrz rozumieją specyfikę organizacji i jej klientów. Takie podejście do nauki zastosowaliśmy już przy programie PGS Upskill, który pozwala naszym pracownikom na praktyczne zdobywanie nowych umiejętności technicznych. Tym razem, zamiast pracy na linii Mentor-Mentee postawiliśmy na współpracę Mentor-Zespół. Efektem był Proof of Concept rozwiązania Data Platform. Zobaczcie, co udało się osiągnąć zespołowi w ciągu zaledwie 6 tygodni.

Dlaczego akurat Data Platform?

Google od lat mówi, że „Every company is a data company”. Każda firma dysponuje jakimiś danymi: często heterogenicznymi, przechowywanymi lub pochodzącymi z różnych źródeł. Przygotowanie prognoz na podstawie tych danych to efekt pracy analityków, ale żeby było to możliwe, potrzebne jest właśnie narzędzie typu data platform stworzone przez specjalistów data engineering.

Data Platform pozwala na łatwy dostęp do danych: pobiera je, organizuje, ujednolica formaty i dba o to, żeby były aktualne.

„Użycie takiej platformy może obniżyć koszty utrzymania źródeł danych, z których korzysta biznes. Szczególnie wtedy, gdy pochodzą od różnych dostawców, są w różnych formatach, trzeba je aktualizować i wiele obszarów firmy z nich korzysta” mówi Witold Ergietowski, Analityk Biznesowy w PGS Software. Przy pomocy Data Platform robimy to raz a dobrze dla wszystkich, którzy tego potrzebują, więc koszt rozwiązania rozkłada się na wszystkich beneficjentów u klienta.”

Data Engineering w praktyce

Co konkretnie, pod kątem technicznym zrobił zespół i jak wyglądała współpraca? W zespole Data Platform znaleźli się analitycy biznesowi, project manager, tester oraz oczywiście , którym bliska jest kultura DevOps i chmura AWS.

Celem było stworzenie platformy, która będzie:

przechowywać dane z różnych źródeł (m.in. CSV, SIP Calls, XML, ProtoBuff, grafiki z opisem metadata)

przetwarzać dane efektywnie pod względem kosztów,

umożliwiać łatwe analizowanie danych zapytaniami

unifikować format dat i radzić sobie ze strefami czasowymi.

Następnie, wszystkie dane miały być pokazane w formie raportu BI, z zagregowanymi na osi czasu wydarzeniami i możliwością interaktywnego zagłębiania się w szczegóły.

„Mieliśmy do rozwiązania realny problem – mówi Jerzy Dörfler, Solutions Architect, który w projekcie pełnił rolę klienta i mentora w jednym. „Chcieliśmy, aby zespół od podstaw wymyślił rozwiązanie, aby poeksperymentował z narzędziami, których do tej pory nie używał wcale lub znał w ograniczonym zakresie. Uczestnicy mieli też dowolność w doborze i testowaniu narzędzi. Nie prowadziłem ich za rękę, raczej dawałem bieżący feedback.”

Zespół mógł więc posmakować Data Engineering w praktyce. Od podstaw konfiguracji Kafki, budowę ETL z użyciem Kafka Connect, efektywne przetwarzanie dużych plików danych, wraz z ich segmentacją i łączeniem wyników, z wykorzystaniem AWS Lambda, aż po wizualizację przetransformowanych danych z bucketu S3 z wykorzystaniem narzędzia AWS QuickSight. Całość została dostarczona w wymaganym w warunkach produkcyjnych podejściu IaC.

Członkowie zespołu odpowiedzialni za testy i jakość również eksperymentowali z technikami weryfikacji spójności danych w przetwarzaniu strumieniowym, testami wydajnościowymi platformy, oraz poznawali narzędzia typu KafDrop (polecamy!) do podglądu przepływu zdarzeń w systemie.

Co poza tym? “Z perspektywy biznesowej nauczyliśmy się, jak jeszcze lepiej formułować uzasadnienia dla rozwiązań konkretnych problemów technicznych. Inżynierowie wiedzą, jak je ugryźć, ale biznes trzeba przekonać, że warto za to zapłacić” – podkreśla Witold Ergietowski. „Nawet tak mały PoC pokazał, jak ważna jest świadomość biznesowa u wszystkich członków zespołu, którzy mogą mieć dzięki temu lepszy wpływ na wymagania i decyzje techniczne.”

Co o projekcie mówią uczestnicy?

„Cieszę się, że mogłem dołączyć do projektu, bo bardzo interesowała mnie tematyka związana z Data Platform.” – mówi Robert Drewniak, programista Java w PGS Software. „Nigdy komercyjnie nie miałem okazji używać Kafki, znałem jedynie suche podstawy z jednego kursu online. Tutaj jednak mogłem pracować na żywym organizmie i rozwiązywać realne problemy.” Robert podkreśla też profesjonalne podejście do projektu, mimo że był to „tylko” proof of concept. „Pracowaliśmy w scrumie, pod wodzą project managera, biznes analityka i product ownera. Jak w rzeczywistym projekcie dla klienta.”

Dla niektórych, zwłaszcza seniorów, dużą wartością była możliwość pozwolenia sobie na błędy i eksperymentowanie, co nie jest oczywistością w codziennej pracy.

“Najbardziej podobało mi się używanie nowych, ciekawych technologii oraz dowolność w wyborze narzędzi” – dodaje Jakub Stanisławczyk, programista Java. „Wypróbowaliśmy wiele z nich i dzięki temu wiemy lepiej, co i gdzie dobrze wykorzystać, a czego lepiej w danym przypadku unikać.” Przykład? AWS Lambda ma ograniczenia czasowe i pamięciowe (maksymalnie 15 minut i 3GB). Mimo że świetnie się skaluje, nie nadaje się do zadań, które mogą przekroczyć powyższe limity. Takie zadania należy wcześniej podzielić lub użyć np. bardziej standardowej aplikacji działającej na ECS.

Krzysztof Dziuban, DevOps Engineer, docenia możliwość zaprojektowania całego rozwiązania od początku. „Znałem i używałem wcześniej AWS czy Kafkę, ale tym razem miałem okazję połączyć wszystko w całość w jednym projekcie. Teraz wiem, jak się zabierać za takie rzeczy w przyszłości.”

Piotr Zembura, Delivery Manager w PGS Software zaznacza, że przyjemnością było używać Scrum, w pełnym tego słowa znaczeniu, ze wszystkimi rolami i eventami. Jak można podejrzewać – Scrum świetnie się sprawdza przy takich inicjatywach.

Co dalej?

Czy 6 tygodni wystarczy, aby nauczyć się podstaw Data Engineering? “Tak, jeśli proces zostanie odpowiednio zorganizowany” – zaznacza Witold. “Trzeba najpierw określić czego chcemy się dowiedzieć i na jakie pytania znać odpowiedź. A to wcale nie jest takie oczywiste”.

Ważne jest też zebranie zespołu z odpowiednimi umiejętnościami wstępnymi, chęcią do nauki i odwagą w eksperymentowaniu. Nie można też zapominać o wkładzie Analityka i Project Managera, którzy prowadzą taki projekt.

Na koniec, nad całością czuwa mentor, który daje wskazówki i gra rolę klienta.

Czy planujemy kontynuację nauki w formie mini-projektów? „Zdecydowanie tak!” – odpowiada Jerzy Dörfler – „Ale tym razem pójdziemy o krok dalej i korzystając z wypracowanego rozwiązania, planujemy budować system do analityk i wizualizacji online oraz wpięcie elementów uczenia maszynowego. W końcu duży zestaw danych już mamy.”

Podobne proof of concepts realizujemy też w obszarze wizualizacji danych, 5G oraz MEC. Przestrzeń do eksploracji i podnoszenia umiejętności jest duża. Widzimy, że takie działania upskillowe przynoszą konkretne korzyści – pracownicy mają szansę rozwijać się w interesujących ich obszarach i zdobywać brakujące na rynku kompetencje. Z kolei firma może realizować więcej ciekawych projektów komercyjnych związanych z big data.

Jeśli interesujesz się tematyką danych sprawdź inne artykuły naszych ekspertów na blogu: