Od dłuższego czasu słyszymy termin Big Data, ale czym właściwie jest ten Big Data? Ilość danych wytwarzanych przez Internet przedmiotów dramatycznie wzrosła na przestrzeni lat i stale rośnie w tempie wykładniczym. Przetwarzanie tych ogromnych ilości danych nieodpowiednich dla tradycyjnych metod obsługi jest określane jako Big Data. Ten rodzaj danych stanowi wyzwanie dla tradycyjnych systemów RDBMS używanych do przechowywania i przetwarzania danych. Moc przetwarzania potrzebna do przechowywania i przetwarzania tak dużej ilości danych w sposób terminowy i opłacalny jest ogromna. Aby rozwiązać ten problem, potrzebne są nowe i ulepszone rozwiązania Big Data, które są specjalnie zaprojektowane do przetwarzania dużych nieustrukturyzowanych danych. Spośród wielu technologii Hadoop i MongoDB to dwie popularne opcje przechowywania i przetwarzania dużych zbiorów danych. Chociaż oba są dość podobne w zasadzie w tym, co robią, ale ich podejście do tego, jak to robią, jest zupełnie inne. Spójrzmy.
MongoDB to otwarta baza danych dokumentów, która stała się de facto bazą danych NoSQL z milionami użytkowników, od małych startupów po firmy z listy Fortune 500. Wiodące przedsiębiorstwa i konsumenckie firmy informatyczne wykorzystują możliwości MongoDB w swoich produktach i rozwiązaniach. Napisana w C ++ MongoDB to wieloplatformowa, zorientowana na dokumenty baza danych, która skutecznie rozwiązuje ograniczenia baz danych opartych na schemacie SQL, zapewniając wysoką wydajność, wysoką dostępność i łatwą skalowalność. Jest to baza danych zaprojektowana dla nowoczesnej sieci. Podobnie jak inne bazy danych NoSQL, MongoDB nie jest zgodny z zasadami RDBMS bez koncepcji tabel, wierszy i kolumn. Przechowuje swoje dane w dokumentach BSON, w których wszystkie powiązane dane są umieszczone razem w jednym dokumencie.
Hadoop to platforma typu open source przeznaczona do przechowywania i przetwarzania ogromnych ilości danych w klastrach komputerów. Jest to aplikacja oparta na Javie i zbiór różnych programów tworzących ramy przetwarzania danych. Chodzi o to, aby przetwarzać dane na dużą skalę przy rozsądnych kosztach w jak najkrótszym czasie. Hadoop składa się z trzech podstawowych zasobów: rozproszonego systemu plików Hadoop (HDFS), platformy programistycznej MapReduce firmy Google oraz całego ekosystemu Hadoop. Ekosystem Hadoop składa się z modułów, które pomagają programować system, zarządzać i konfigurować klaster, zarządzać i przechowywać dane w klastrze oraz wykonywać zadania analityczne. Hadoop MapReduce pomaga w analizie danych przetwarzać bardzo duże ilości zarówno danych ustrukturyzowanych, jak i nieustrukturyzowanych. Hadoop jest zastrzeżonym znakiem towarowym firmy Apache Software Foundaton, a MapReduce to platforma do przetwarzania równoległego.
- Chociaż oba są uważane za rozwiązania Big Data, MongoDB jest zasadniczo platformą ogólnego przeznaczenia zaprojektowaną w celu zastąpienia lub ulepszenia istniejących systemów RDBMS. MongoDB to otwarta baza danych dokumentów i jedna z wiodących baz danych NoSQL, która wykorzystuje dokumenty zamiast wierszy i tabel, aby uczynić je elastycznym, skalowalnym i szybkim. Z drugiej strony Hadoop to platforma typu open source przeznaczona do przechowywania i przetwarzania ogromnych ilości danych w klastrach komputerów. Hadoop nie ma na celu zastąpienia istniejących systemów RDBMS; w rzeczywistości działa jako uzupełnienie, pomagając w analizie danych przetwarzać duże ilości danych zarówno ustrukturyzowanych, jak i nieustrukturyzowanych.
- Ekosystem Hadoop to zbiór narzędzi, które używają lub siedzą obok platformy programistycznej MapReduce firmy Google i HDFS (rozproszony system plików Hadoop) do przechowywania i organizowania danych oraz zarządzania komputerami z systemem Hadoop. HDFS jest przeznaczony do strumieniowego dostępu do danych. Z kolei MongoDB oferuje inne podejście; jest oparty na architekturze Nexus, która wykorzystuje możliwości NoSQL, zachowując jednocześnie fundament relacyjnych baz danych. Przechowuje dane jako dokumenty w reprezentacji binarnej o nazwie BSON (Binary JSON), gdzie zwykle są one zorganizowane jako zbiory.
- Największą siłą Hadoop jest MapReduce. Dzisiaj Hadoop jest najlepszą platformą MapReduce na rynku. Koncepcja MapReduce polega na tym, że dane wejściowe można podzielić na logiczne części, przy czym każda część może być niezależnie przetwarzana przez zadanie mapy. Zadanie mapowania może być uruchomione na dowolnym węźle obliczeniowym w klastrze, a wiele zadań mapowania może działać równolegle w klastrze. Z drugiej strony MongoDB to baza danych dokumentów, która może obsłużyć obciążenia od startowych MVP i POC po aplikacje korporacyjne z setkami serwerów. MongoDB wyrósł z niszowego rozwiązania bazodanowego na faktyczną bazę danych NoSQL. Pojęcie dokumentów jest naprawdę wyraziste i elastyczne.
Chociaż oba są dość podobne w zasadzie w tym, co robią, ale ich podejście do tego, jak to robią, jest zupełnie inne. MongoDB przechowuje dane jako dokumenty w postaci binarnej o nazwie BSON, podczas gdy w Hadoop dane są przechowywane w blokach o stałej wielkości, a każdy blok jest duplikowany wiele razy w całym systemie. Ekosystem Hadoop to zbiór narzędzi, które używają lub siedzą obok platformy programistycznej MapReduce Google, natomiast MongoDB oparty na architekturze Nexus, która wykorzystuje możliwości NoSQL, zachowując jednocześnie fundament relacyjnych baz danych.