MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czynniki do rozważenia przy wyborze MongoDB dla aplikacji Big Data

Postęp technologiczny przyniósł korzyści, które organizacje biznesowe muszą wykorzystać w celu uzyskania maksymalnej wartości zysku i obniżonych kosztów operacyjnych. Dane były podstawą tych postępów technologicznych, z których wywodzą się zaawansowane procedury służące osiągnięciu określonych celów. Wraz z rozwojem technologii do systemów wprowadzanych jest coraz więcej danych. Poza tym, wraz z rozwojem firmy, zaangażowanych jest coraz więcej danych, a konfiguracja systemu obsługującego musi zapewniać szybkie przetwarzanie danych, niezawodną pamięć masową i zapewniać optymalne bezpieczeństwo tych danych. MongoDB jest jednym z systemów, którym można zaufać w osiąganiu tych czynników.

Wielkie dane odnoszą się do ogromnych danych, które szybko się zmieniają, do których można szybko uzyskać dostęp i które są wysoce dostępne w celu skutecznego zaspokajania potrzeb. Organizacje biznesowe mają tendencję do wzajemnego sprawdzania dostępnych konfiguracji baz danych, które zapewniłyby najlepszą wydajność w miarę upływu czasu i w konsekwencji realizowały pewną wartość z Big Data.

Na przykład rynki internetowe obserwują kliknięcia klientów, siłę nabywczą, a następnie wykorzystują uzyskane dane do sugerowania innych towarów jako sposobu reklamy lub wykorzystują te dane do ustalania cen. Roboty uczą się poprzez uczenie maszynowe, a proces ten oczywiście wymaga gromadzenia dużej ilości danych, ponieważ robot musiałby zachować to, czego się nauczył, w pamięci do późniejszego wykorzystania. Przechowywanie tego rodzaju złożonych danych za pomocą tradycyjnego oprogramowania bazodanowego jest uważane za niepraktyczne.

Charakterystyka Big Data

W systemach oprogramowania rozpatrujemy Big Data pod względem rozmiaru, szybkości dostępu i typów danych. Można to stosunkowo zmniejszyć do 3 parametrów: 

  1. Głośność
  2. Prędkość
  3. Różnorodność

Głośność

Objętość to rozmiar zaangażowanych Big Data i waha się od gigabajtów do terabajtów lub więcej. Na co dzień duże firmy pobierają terabajty danych ze swojej codziennej działalności. Na przykład firma telekomunikacyjna chciałaby prowadzić ewidencję połączeń wykonanych od początku swojej działalności, wysłanych wiadomości i czasu trwania każdego połączenia. Na co dzień odbywa się wiele takich czynności, co skutkuje dużą ilością danych. Dane mogą być wykorzystywane do analizy statystycznej, podejmowania decyzji i planowania taryf.

Prędkość

Rozważ platformy, takie jak handel na rynku Forex, które wymagają aktualizacji w czasie rzeczywistym na wszystkich podłączonych komputerach klienckich i wyświetlaj nowe aktualizacje giełdowe w czasie rzeczywistym. Wskazuje to, że obsługująca baza danych powinna być dość szybka w przetwarzaniu takich danych, mając na uwadze niewielkie opóźnienia. Niektóre gry online z udziałem graczy z różnych lokalizacji na świecie zbierają wiele danych z kliknięć, przeciągnięć i innych gestów użytkownika, a następnie przekazują je między milionami urządzeń w mikrosekundach. Zaangażowany system baz danych musi być wystarczająco szybki, aby wykonać to wszystko w czasie rzeczywistym.

Odmiana

Dane można kategoryzować według różnych typów, począwszy od liczb, ciągów, dat, obiektów, tablic, danych binarnych, kodu, danych geoprzestrzennych i wyrażeń regularnych, żeby wymienić tylko kilka. Optymalny system baz danych powinien zapewniać funkcje usprawniające manipulację tymi danymi bez ponoszenia dodatkowych procedur po stronie klienta. Na przykład MongoDB udostępnia operacje geolokalizacji do wykorzystania podczas pobierania lokalizacji w pobliżu współrzędnych podanych w zapytaniu. Tej możliwości nie można osiągnąć w przypadku tradycyjnych baz danych, ponieważ zostały one zaprojektowane tylko w celu obsługi niewielkich struktur objętości danych, mniejszej liczby aktualizacji i pewnych spójnych struktur danych. Poza tym, w przypadku tradycyjnych baz danych, potrzebne będą dodatkowe operacje, aby osiągnąć jakiś konkretny cel.

MongoDB może być również uruchamiany z wielu serwerów, co czyni go niedrogim i nieskończonym w przeciwieństwie do tradycyjnych baz danych, które są zaprojektowane do działania tylko na jednym serwerze.

Czynniki do rozważenia przy wyborze MongoDB dla Big Data

Big Data przynosi korzyści przedsiębiorstwu, gdy jest wysoce zarządzany dzięki zwiększonej mocy obliczeniowej. Wybierając system bazodanowy, należy wziąć pod uwagę kilka czynników dotyczących rodzaju danych, z którymi będziesz mieć do czynienia i czy system, który wybierasz zapewnia taką możliwość. W tym blogu omówimy zalety, jakie MongoDB oferuje w przypadku Big Data w porównaniu z Hadoop w niektórych przypadkach.

  • Bogaty język zapytań do zapytań dynamicznych
  • Osadzanie danych
  • Wysoka dostępność
  • Indeksowanie i skalowalność
  • Wydajny silnik pamięci i obsługa pamięci
  • Spójność i integralność danych

Bogaty język zapytań do zapytań dynamicznych

MongoDB najlepiej nadaje się do Big Data, gdzie dane wynikowe wymagają dalszych manipulacji w celu uzyskania pożądanego wyniku. Niektóre z potężnych zasobów to operacje CRUD, struktura agregacji, wyszukiwanie tekstu i funkcja Map-Reduce. W ramach agregacji MongoDB ma dodatkową funkcję geolokalizacji, która umożliwia wiele rzeczy z danymi geoprzestrzennymi. Na przykład, tworząc indeks sfery 2D, możesz pobierać lokalizacje w określonym promieniu, podając tylko współrzędne szerokości i długości geograficznej. Odnosząc się do powyższego przykładu telekomunikacyjnego, firma może wykorzystać funkcję Map-reduce lub platformę agregacji do grupowania połączeń z danej lokalizacji, obliczania średniego czasu połączenia dziennie dla swoich użytkowników lub innych operacji. Sprawdź poniższy przykład.

Zróbmy zbiór lokalizacji z danymi

{ name: "KE",loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, category: "Parks"}

{ name: "UG",loc: { type: "Point", coordinates: [ -45.97, 40.57 ] }, category: "Parks"}

{ name: "TZ",loc: { type: "Point", coordinates: [ -73.27, 34.43 ] }, category: "Parks"}

{ name: "SA",loc: { type: "Point", coordinates: [ -67.97, 40.77 ] }, category: "Parks"}

Możemy wtedy znaleźć dane dla lokalizacji, które są w pobliżu [-73.00, 40,00] za pomocą struktury agregacji i w odległości 1 km za pomocą poniższego zapytania:

db.places.aggregate( [

   {

      $geoNear: {

         near: { type: "Point", coordinates: [ -73.00, 40.00 ] },

         spherical: true,

         query: { category: "Parks" },

         distanceField: "calcDistance",

   maxDistance: 10000

      }

   }

]

Operacja Map-Reduce jest również dostępna w Hadoop, ale jest odpowiednia dla prostych żądań. Iteracyjny proces dla Big Data przy użyciu Map-Reduce w Hadoop jest dość powolny niż w MongoDB. Powodem jest to, że zadania iteracyjne wymagają wielu map i zmniejszają procesy przed ukończeniem. W trakcie tego procesu między mapą generowanych jest wiele plików, co zmniejsza liczbę zadań, co sprawia, że ​​jest ona całkowicie bezużyteczna w zaawansowanej analizie. MongoDb wprowadził strukturę potoku agregacji, aby ograniczyć to niepowodzenie i jest najczęściej używana w niedawnej przeszłości.

Osadzanie danych

MongoDB jest oparty na dokumencie z możliwością umieszczenia większej liczby pól w jednym polu, co określa się mianem osadzania. Osadzanie ma tę zaletę, że minimalna liczba zapytań, które należy wysłać dla pojedynczego dokumentu, ponieważ sam dokument może zawierać dużo danych. W przypadku relacyjnych baz danych, w których jedna może mieć wiele tabel, musisz wysłać wiele zapytań do bazy danych w tym samym celu.

Wysoka dostępność

Replikacja danych na wielu hostach i serwerach jest teraz możliwa dzięki MongoDB, w przeciwieństwie do relacyjnego DBMS, w którym replikacja jest ograniczona do jednego serwera. Jest to korzystne, ponieważ dane są wysoce dostępne w różnych lokalizacjach, a użytkownicy mogą być efektywnie obsługiwani przez najbliższy serwer. Poza tym proces przywracania lub awarii można łatwo osiągnąć, biorąc pod uwagę funkcję kronikowania w MongoDB, która tworzy punkty kontrolne, z których można się odwoływać do procesu przywracania.

Indeksowanie i skalowalność

Indeksowanie podstawowe i dodatkowe w MongoDB ma wiele zalet. Indeksowanie powoduje, że zapytania mają być wykonane jako pierwsze, co jest brane pod uwagę w przypadku Big Data, o czym pisaliśmy w opisie prędkości charakterystycznej dla Big Data. Indeksowania można również używać podczas tworzenia fragmentów. Fragmenty można zdefiniować jako kolekcje podrzędne zawierające dane, które zostały podzielone na grupy przy użyciu klucza fragmentu. Po wydaniu zapytania klucz fragmentu jest używany do określenia, gdzie szukać wśród dostępnych fragmentów. Gdyby nie było odłamków, proces trwałby dość długo w przypadku Big Data, ponieważ wszystkie dokumenty muszą zostać przejrzane, a proces może nawet wygasnąć, zanim użytkownicy dostaną to, czego chcą. Jednak dzięki shardingowi ilość danych do pobrania jest zmniejszona, a w konsekwencji zmniejsza się opóźnienie oczekiwania na zwrócenie zapytania.

Wydajny silnik pamięci masowej i obsługa pamięci

Najnowsze wersje MongoDB ustawiły WiredTiger jako domyślny silnik pamięci masowej, który ma funkcję wykonawczą do obsługi wielu obciążeń. Ten silnik pamięci ma wiele zalet, które mogą służyć do obsługi Big Data, jak opisano w tym artykule. Silnik ma takie funkcje, jak kompresja, punkty kontrolne i promuje wielokrotne operacje zapisu poprzez współbieżność dokumentów. Big Data oznacza wielu użytkowników, a funkcja współbieżności na poziomie dokumentu pozwoli wielu użytkownikom na równoczesną edycję w bazie danych bez pogorszenia wydajności. MongoDB został opracowany przy użyciu C++, dzięki czemu jest dobry do obsługi pamięci.

Spójność i integralność danych

 Narzędzie do sprawdzania poprawności JSON to kolejna funkcja dostępna w MongoDB, która zapewnia integralność i spójność danych. Służy do zapewnienia, że ​​nieprawidłowe dane nie dostaną się do bazy danych. Na przykład, jeśli istnieje pole o nazwie wiek, zawsze będzie oczekiwało wartości typu Integer. Walidator JSON zawsze sprawdzi, czy ciąg znaków lub inny typ danych nie jest przesyłany do przechowywania w bazie danych dla tego pola. Ma to również na celu zapewnienie, że wszystkie dokumenty mają wartości dla tego pola w tym samym typie danych, a zatem spójność danych. MongoDB oferuje również funkcje tworzenia kopii zapasowych i przywracania, dzięki którym w przypadku awarii można wrócić do pożądanego stanu.

Wnioski

MongoDB obsługuje analizę danych w czasie rzeczywistym w najbardziej efektywny sposób, dlatego nadaje się do Big Data. Na przykład indeksowanie geoprzestrzenne umożliwia analizę danych GPS w czasie rzeczywistym.

Oprócz podstawowej konfiguracji bezpieczeństwa, MongoDB ma dodatkowe narzędzie do sprawdzania poprawności danych JSON, które zapewnia, że ​​do bazy danych trafiają tylko prawidłowe dane. Ponieważ baza danych jest oparta na dokumentach, a pola zostały osadzone, do bazy danych można wysłać bardzo niewiele zapytań w celu pobrania dużej ilości danych. To sprawia, że ​​idealnie nadaje się do wykorzystania w przypadku Big Data.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB kontra DynamoDB:co musisz wiedzieć

  2. MongoDB — upuść kolekcję

  3. Jak przekazać ObjectId z MongoDB w MVC.net?

  4. MongoDB w AWS:Jak wybrać odpowiedni typ instancji EC2 dla serwera MongoDB?

  5. Pogrupuj wynik w 15-minutowym przedziale czasowym w MongoDb