Czym jest Big Data?
Termin „Big Data” w języku polskim nie posiada zwięzłego tłumaczenia – słowniki internetowe tłumaczą wspomniany termin na „duży i różnorodny zbiór danych”. Polska wersja jest z pewnością mniej wygodna w użyciu, jednak moim zdaniem dużo lepiej oddaje charakter omawianego zagadnienia. Niemniej jednak, na potrzeby niniejszego artykułu, będziemy korzystać z wygodniejszej angielskiej wersji.
Z samej nazwy wynika, że jest to termin odnoszący się do dużych zbiorów danych. Czym właściwie są dane? Definicja danych pojawiła się już we wcześniejszym artykule dotyczącym Data Science, jednak warto ją sobie przypomnieć: wg angielskiej Wikipedii dane są faktami, statystykami oraz informacjami (często numerycznymi), na podstawie których możemy wnioskować i podejmować decyzje.
Wiemy już czym są dane, a z nazwy zagadnienia możemy wywnioskować, że Big Data dotyczy dużych i różnorodnych zbiorów. Możemy mieć już pewne wyobrażenia dotyczące Big Data, jednak gdybyśmy poprzestali na tym etapie, to termin ten nie zostałby przez nas w pełni zrozumiany. Zapraszam do przeczytania dalszej części artykułu, dzięki której Twoja wiedza dotycząca Big Data zostanie poszerzona i usystematyzowana.
Definicja
Big Data można rozumieć jako zbiory danych, które są na tyle duże i skomplikowane, że tradycyjne metody przetwarzania danych przestają sobie z nimi radzić. Są to dane, które są trudne do przetwarzania i analizowania, jednak można na ich podstawie wyciągnąć wartościowe wnioski, które pomagają biznesowi oraz wielu organizacjom w osiąganiu ich celów. Zbiory Big Data bardzo często są powiększane z każdą sekundą, a analiza odbywa się w czasie rzeczywistym.
Omawiany termin zyskał na popularności na początku XXI wieku, kiedy analityk Doug Laney zdefiniował trzy cechy, które odróżniają zwykłe dane od Big Data: ilość, prędkość, różnorodność (volume, velocity, variety). Podczas szukania informacji na temat Big Data w Internecie możemy spotkać się z terminem „3Vs of Big Data”, który oznacza wspomniane trzy elementy.
3Vs of Big Data oraz typy danych
Big Data od zwykłych zbiorów danych odróżnia ilość (volume). Ilość generowanych danych wzrasta z roku na rok, do czego przyczynia się każdy z nas – komentując film na YouTubie, reagując na post na Facebooku, wstawiając relację na Instagramie itd. Do znacznego wzrostu generowanych danych przyczynia się również biznes, który zbiera coraz więcej danych o swoich klientach, dzięki czemu może podejmować lepsze decyzje biznesowe i lepiej docierać do swoich odbiorców. Opisywane sytuacje przyczyniły się do tego, że dotychczasowe metody przechowywania, przetwarzania i analizowania danych stały się zawodne. Zbiory Big Data wyróżniają się tym, że do zarządzania nimi wymagane są specjalistyczne narzędzia, które zostały do tego celu stworzone (np. Apache Hadoop).
Prędkość (velocity) w Big Data oznacza fakt, że ilość danych przyrasta w coraz szybszym tempie, co utrudnia pracę z nimi przy pomocy tradycyjnych narzędzi. Prędkość generowania nowych danych jest na tyle duża, że problemem staje się również przechwytywanie nowowygenerowanych informacji. O jakiej prędkości mowa? Załóżmy, że przeczytanie dwóch ostatnich akapitów zajęło Ci minutę. W tym czasie na Facebooku utworzono 3,3 miliona postów, pojawiło się 450 tysięcy nowych tweetów, do Internetu przesłano 400 godzin nowych filmów, a wyszukiwarce Google zadano 3,1 miliona zapytań. Tradycyjne metody zbierania i przetwarzania danych przestały radzić sobie z opisywanym tempem, a narzędzia Big Data rozwiązują ten problem.
Różnorodność (variety) odnosi się do typów danych, które są zbierane na potrzeby Big Data. Wyróżniamy trzy typy danych: ustrukturyzowane, nieustrukturyzowane i częściowo ustrukturyzowane. Dane ustrukturyzowane można najprościej rozumieć jako informacje przedstawiane w postaci tabel. Nieustrukturyzowane dane to takie, które nie znajdują się w tabelach i ciężko określić ich organizację. Są to np.: wiadomości email, zdjęcia, strony internetowe. Dane częściowo ustrukturyzowane to te, które znajdują się pomiędzy danymi nieustrukturyzowanymi, a danymi ustrukturyzowanymi – można w nich odnaleźć pewien sposób organizacji, jednak nie są to dane w postaci tabelarycznej. Przykładowymi danymi częściowo ustrukturyzowanymi są pliki JSON oraz XML.
Geneza Big Data
Do powstania opisywanego terminu przyczynił się fakt, że w ostatnich kilkudziesięciu latach ilość wygenerowanych danych wzrastała z roku na rok w wykładniczym tempie. Przyczyniło się to do powstania nowych technologii umożliwiających pracę z taką ilością danych, a razem z rozwojem wspomnianych technologii zaczęły rozwijać się dwa nowe pojęcia – Data Science i Big Data. Problem wzrostu ilości danych został opisany w innym artykule dotyczącym Data Science. Jeżeli jesteś tym zainteresowany, to odsyłam do przywołanego artykułu.
Do niedawna systemy zarządzania relacyjnymi bazami danych (Relational Database Management Systems, RDBMS) dobrze radziły sobie z charakterem danych, jednak w ostatnich latach zaczęło się to zmieniać. Ilość danych zaczęła być problematyczna dla RDBMS, zaczęto zwiększać liczbę procesorów oraz pamięci w komputerach obsługujących relacyjne bazy danych, co znacznie zwiększyło koszty utrzymania. Prędkość generowania i przechwytywania danych zaczęła przerastać możliwości RDBMS, a 80% danych wygenerowanych w ostatnich kilku latach to dane nieustrukturyzowane lub w części ustrukturyzowane. Dla RDBMS jest to problematyczne z tego względu, że zostały one stworzone do obsługiwania ustrukturyzowanych zbiorów danych.
Popularność zaczęły zyskiwać nierelacyjne bazy danych (NoSQL databases), np. MongoDB. Są to systemy, które zostały stworzone z myślą o nieustrukturyzowanych danych. Do ich głównych zalet można zaliczyć: elastyczność w sposobach przechowywania danych, skalowalność, możliwość przechowywania i przetwarzania znacznie większych ilości danych, niższe koszty utrzymania komputerów obsługujących nierelacyjne bazy danych, możliwość przechowywania wszystkich typów danych (od ustrukturyzowanych do nieustrukturyzowanych).
Znaczny wzrost ilości generowanych danych oraz opisywane problemy relacyjnych baz danych przyczyniły się do powstania nowego terminu – Big Data. Termin ten był coraz częściej wykorzystywany do określania problematycznych zbiorów danych. Doczekał się kilku definicji i narzędzi, które zostały stworzone z myślą o przetwarzaniu zbiorów Big Data.
Przykładowe źródła Big Data
Źródeł Big Data jest wiele, jednak wyróżnić można kilka, które w szczególności przyczyniają się do wzrostu ilości danych.
Pod pojęciem czujników kryją się elektroniczne urządzenia, które są ukryte w sprzęcie codziennego użytku i zbierają wartości konkretnych parametrów. Przykładem takich czujników mogą być: czujniki w smartfonach monitorujące ruch użytkowników, czujniki w publicznych miejscach wykrywające obecność poszczególnych obiektów, czujniki w urządzeniach medycznych (np. pompach insulinowych), czujniki w samochodach.
Służba zdrowia generuje znaczne ilości danych. W ostatnich latach na popularności zyskały systemy gromadzące dane na temat zdrowia pacjentów, w których zawiera się informacje takie jak: historia chorób, recept, zabiegów i operacji, wyników laboratoryjnych.
Niezbyt oczywistym źródłem dużej ilości danych są czarne skrzynki w statkach powietrznych. Samoloty, helikoptery oraz odrzutowce rejestrują w każdej sekundzie wiele istotnych parametrów, które zapisywane są w czarnych skrzynkach. Do zapisywanych informacji należą między innymi rozmowy załogi oraz stan poszczególnych elementów statku powietrznego. Podczas lotu pojedynczy silnik w ciągu 30 minut może wygenerować ponad 10 terabajtów danych (ponad 10 000 GB).
Bardziej oczywistym źródłem Big Data są dane internetowe. Działalność użytkowników Internetu jest ściśle monitorowana przez wiele organizacji, dzięki czemu mogą one lepiej dotrzeć do klienta. Z internetowych danych można również lepiej poznać swojego klienta – jakie ma preferencje, przekonania i potrzeby.
Zbiorem Big Data mogą być również wewnętrzne dane każdej organizacji. Do takich danych zaliczyć można: adresy e-mail pracowników, faktury, rejestr wykonanych zleceń itd.
Cykl życiowy Big Data
Proces życiowy Big Data został uogólniony na poniższej grafice. Można wyróżnić 4 warstwy, przez które przechodzi Big Data: warstwa danych, warstwa zbierania, warstwa analizowania oraz warstwa informowania.
W pierwszej warstwie dane są generowane. Powstają one w różnych miejscach i cechują się różną strukturą. Mogą to być wyciągi z banków, posty na Facebooku, filmy na YouTubie, zdjęcia na Instagramie, ruch użytkowników rejestrowany przez smartfony itd.
W następnej warstwie – warstwie zbierania – dane są przechwytywane, przetwarzane i przekazywane do baz danych. Na samym początku znaczne ilości danych muszą zostać przechwycone. W procesie tym problematyczna jest nie tylko ilość danych, ale także tempo ich generowania. Gdy surowe dane zostaną zebrane, to muszą zostać przetworzone w taki sposób, żeby można było z nich skorzystać. Przetwarzanie danych obejmuje czynności takie jak: integracja, czyszczenie, redukowanie oraz przekształcenie. Podczas przetwarzania danych, sprawdzana jest ich jakość, kompletność oraz prawidłowość. Ważną kwestią jest również agregowanie poszczególnych części danych oraz usuwanie zbędnych rekordów, co znacząco zmniejsza wagę zbioru, dzięki czemu dalsze etapy przebiegają znacznie szybciej. Dane po procesie przetwarzania mogą zostać zapisane w bazie danych, skąd dalej zostaną pobrane w warstwie analizy.
Kolejną warstwą jest warstwa analizy. Jest to połączenie znanych od dawna metod statystycznych oraz najnowszej technologii w celu wydobycia z danych cennych informacji. Na podstawie wyników analizy trzeba wyciągnąć odpowiednie wnioski, które rozwiążą pewien problem lub ulepszą konkretne kwestie.
Warstwa informowania dopełnia cały cykl. Dane są w niej wizualizowane oraz monitorowane w czasie rzeczywistym. Dzięki niej wnioski z danych mogą wyciągać zwykli użytkownicy (np. nietechniczni pracownicy korporacji). Jest to warstwa, w której cały cykl Big Data zostaje podsumowany, a chaotyczne informacje zebrane na początku całego procesu są przedstawiane w przejrzysty sposób.
Narzędzia wykorzystywane do pracy z Big Data
Praca ze zbiorami Big Data nie jest możliwa bez znajomości języków programowania. Najpopularniejszymi językami wykorzystywanymi obecnie do przetwarzania, analizowania, wizualizowania danych są Python i R. Istotną kwestią jest również uczenie maszynowe, które umożliwiają oba języki.
Korzystanie ze zwykłych bibliotek języków programowania do przetwarzania Big Data może być nieefektywne, a czasami nawet niemożliwe. Do przetwarzania zbiorów Big Data stworzono odpowiednie narzędzia, które są znacznie bardziej efektywne i niezawodne. Przykładami takich rozwiązań jest Apache Spark i Apache Hadoop. Warto zaznaczyć, że możliwym jest korzystanie z obu narzędzi przy pomocy odpowiednich bibliotek dostępnych w Pythonie oraz R.
Zbiory Big Data przerastają możliwości relacyjnych baz danych, przez co na popularności zyskują nierelacyjne bazy danych. Powstało wiele narzędzi, które umożliwia efektywne i niezawodne przechowywanie dużych ilości nieustrukturyzowanych danych, np. MongoDB oraz Cassandra. Warto zaznaczyć, że Apache Hadoop nie tylko umożliwia efektywne przetwarzanie zbiorów Big Data, ale również ich składowanie.
Przydatne są również narzędzia stworzone do wizualizacji danych, takie jak: Tableau oraz PowerBI. Pod koniec cyklu życiowego Big Data, wielkość zbioru nie stanowi już problemu, więc najpopularniejsze narzędzia do wizualizacji danych są świetnym wyborem. Umożliwiają tworzenie przejrzystych, czytelnych oraz estetycznych wizualizacji, a korzystanie z nich jest bardzo intuicyjne i szybkie.
Podsumowanie
Big Data dotyczy zbiorów danych, które są duże i różnorodne. Ważną cechą Big Data jest to, że w każdej sekundzie generowane są znaczne ilości nowych informacji, które również muszą zostać przechwycone. Zbiory Big Data zaczęły przerastać możliwości tradycyjnych narzędzi wykorzystywanych do przetwarzania i analizowania danych (np. relacyjnych baz danych), co przyczyniło się do powstania nowych technologii, które sobie z tym radzą.
Big Data od zwykłych zbiorów danych wyróżniają trzy cechy: ilość, prędkość i różnorodność. Ilość danych w zbiorach Big Data jest ogromna i najczęściej liczona jest w petabajtach (czasami nawet w zettabajtach). Charakterystyczna jest również prędkość generowania nowych informacji – np. w każdej minucie powstaje 3,3 miliona nowych postów na Facebooku, a wyszukiwarka Google odpowiada na 3,1 miliona zapytań. Różnorodność danych można rozumieć jako zróżnicowaną strukturę oraz wszystkie typy danych. Tradycyjne zbiory danych są ustrukturyzowane oraz zawierają liczby i ciągi znaków. Nie jest to regułą w przypadku zbiorów Big Data, w których dane najczęściej są nieustrukturyzowane oraz przyjmują różne formaty – od zdjęć, przez filmy, po liczby i ciągi znaków.
Do powstania terminu Big Data przyczynił się znaczny wzrost ilości generowanych danych w ostatnich kilkudziesięciu latach. Zbiory danych stawały się coraz większe oraz bardziej zróżnicowane, przez co tworzono odpowiednie narzędzia, które były w stanie je obsługiwać. W ostatnich latach Big Data zaczęła przerastać możliwości relacyjnych baz danych, dzięki czemu na popularności zyskały nierelacyjne bazy danych. Zmienił się również charakter samych danych – do niedawna większość generowanych danych była ustrukturyzowana, a obecnie ok. 80% nowych danych jest nieustrukturyzowanych lub tylko w części ustrukturyzowanych. Jest to kolejna przyczyna wzrostu popularności nierelacyjnych baz danych, które radzą sobie znacznie lepiej ze wspomnianymi typami danych.
Jedną z głównych przyczyn wzrostu ilości danych w ostatnich latach jest digitalizacja każdej dziedziny życia. Można wyróżnić kilka źródeł danych, które generują szczególnie dużo nowych informacji: czujniki w samochodach i urządzeniach elektronicznych, służba zdrowia, Internet, czarne skrzynki oraz organizacje i ich wewnętrzne dane.
Zbiory Big Data przechodzą przez kilka warstw, w których poddawane są pewnym zabiegom. W pierwszej warstwie dane są tworzone; w drugiej warstwie dane są zbierane, przetwarzane i przekazywane do baz danych; w trzeciej warstwie na podstawie zebranych danych dokonuje się analizy; w czwartej warstwie dane są wizualizowane i przedstawiane odpowiednim odbiorcom.
Do pracy ze zbiorami Big Data powstało wiele narzędzi. Można do nich zaliczyć języki programowania (najpopularniejsze to Python i R), które umożliwiają przetwarzanie danych, analizowanie i wizualizację. Przy pomocy języków programowania tworzy się również modele uczenia maszynowego. Przetwarzanie zbiorów Big Data jest problematyczne z wielu względów, co przyczyniło się do powstania narzędzi przeznaczonych specjalnie do tego celu, np. Apache Hadoop i Apache Spark. Big Data musi być również przechowywana w odpowiedni sposób, co umożliwiają nierelacyjne bazy danych – np. MongoDB, Cassandra. Przydatnymi są również popularne narzędzia do wizualizowania danych (Tableau i PowerBI), w których tworzenie wykresów jest szybkie i intuicyjne.
Big Data to pojęcie, które staje się coraz bardziej popularne i jest to jedna z podstaw branży Data Science. Jeżeli swoją karierę chciałbyś związać właśnie z tą branżą, to zrozumienie czym jest Big Data jest jednym z fundamentów. Po przeczytaniu powyższego artykułu z pewnością nie będziesz miał problemu ze zdefiniowaniem opisywanego zagadnienia. Big Data i Data Science są ze sobą powiązane, jednak oba terminy oznaczają co innego. Nie powinny być stosowane zamiennie, a jest to dość częste zjawisko, więc zapraszam również do zapoznania się z artykułem: Czym jest Data Science?. Jeżeli chciałbyś zdobyć wiedzę praktyczną dotyczącą zbiorów Big Data oraz branży Data Science, to zapraszam również do zapoznania się z naszą ofertą szkoleń.