MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Фактори, които трябва да вземете предвид при избора на MongoDB за приложения за големи данни

Технологичният напредък доведе до предимства, отколкото трябва да бъдат използвани от бизнес организациите за максимална стойност на печалбата и намалени оперативни разходи. Данните са гръбнакът за тези технологични постижения, от които се извличат сложни процедури за постигане на конкретни цели. С напредването на технологиите има повече данни, въведени в системите. Освен това, когато бизнесът се разраства, се включват повече данни и настройката на обслужващата система трябва да бъде бърза обработка на данни, надеждна при съхранение и да предлага оптимална сигурност за тези данни. MongoDB е една от системите, на които може да се има доверие при постигането на тези фактори.

Големите данни се отнасят до масивни данни, които се променят бързо, могат да бъдат бързо достъпни и много достъпни за ефективно посрещане на нуждите. Бизнес организациите са склонни да проверяват кръстосано наличните настройки на базата данни, които биха осигурили най-добра производителност с течение на времето и следователно осъзнават известна стойност от Big Data.

Например онлайн пазарите наблюдават кликванията в мрежата на клиентите, покупателната способност и след това използват извлечените данни за предлагане на други стоки като начин за реклама или използват данните при ценообразуването. Роботите се учат чрез машинно обучение и процесът очевидно включва събиране на много данни, защото роботът ще трябва да запази наученото в паметта за по-късна употреба. Запазването на този вид сложни данни с традиционен софтуер за бази данни се счита за непрактично.

Характеристики на големите данни

В софтуерните системи разглеждаме големите данни по отношение на размера, скоростта на достъп и съответните типове данни. Това може да бъде относително намалено до 3 параметъра: 

  1. Обем
  2. Скорост
  3. Разнообразие

Обем

Обемът е размерът на участващите големи данни и варира от гигабайти до терабайти или повече. Ежедневно големите компании поглъщат терабайти данни от ежедневните си операции. Например телекомуникационна компания би искала да съхранява запис на обажданията от началото на тяхната работа, изпратените съобщения и колко време е отнело всяко обаждане. Ежедневно има много от тези дейности, които се извършват, което води до много данни. Данните могат да бъдат използвани при статистически анализ, вземане на решения и тарифно планиране.

Скорост

Помислете за платформи като Forex търговията, които се нуждаят от актуализации в реално време за всички свързани клиентски машини и показват нови актуализации на борсата в реално време. Това диктува, че обслужващата база данни трябва да бъде доста бърза в обработката на такива данни с малко забавяне. Някои онлайн игри, включващи играчи от различни места в света, събират много данни от потребителски кликвания, плъзгане и други жестове, след което ги предават между милиони устройства за микросекунди. Включената система за база данни трябва да е достатъчно бърза, за да прави всичко това в реално време.

Разнообразие

Данните могат да бъдат категоризирани в различни типове, вариращи от числа, низове, дата, обекти, масиви, двоични данни, код, геопространствени данни и регулярни изрази, само за да споменем някои. Оптималната система на база данни трябва да предоставя функции за подобряване на манипулирането на тези данни, без да се налагат допълнителни процедури от страна на клиента. Например, MongoDB предоставя операциите за геолокация за използване, докато извлича местоположения близо до координатите, предоставени в заявката. Тази способност не може да бъде постигната с традиционните бази данни, тъй като те са проектирани само да адресират малки структури от обем данни, по-малко актуализации и някои последователни структури от данни. Освен това ще са необходими допълнителни операции за постигане на някаква конкретна цел, в случай на традиционни бази данни.

MongoDB може да се изпълнява и от множество сървъри, което го прави евтин и безкраен, за разлика от традиционните бази данни, които са предназначени да работят само на един сървър.

Фактори, които трябва да имате предвид при избора на MongoDB за големи данни

Големите данни носят предимство на предприятието, когато са силно управлявани чрез подобрена мощност на обработка. Когато избирате система за база данни, трябва да вземете предвид някои фактори по отношение на вида данни, с които ще работите и дали избраната от вас система предоставя тази възможност. В този блог ще обсъдим предимствата, които MongoDB предлага за Big Data в сравнение с Hadoop в някои случаи.

  • Богат език за заявки за динамични заявки
  • Вграждане на данни
  • Висока наличност
  • Индексиране и мащабируемост
  • Ефективна машина за съхранение и работа с памет
  • Последователност и интегритет на данните

Разширен език за заявки за динамични заявки

MongoDB е най-подходящ за големи данни, където получените данни се нуждаят от допълнителни манипулации за желания резултат. Някои от мощните ресурси са CRUD операции, рамка за агрегиране, текстово търсене и функцията Map-Reduce. В рамките на агрегационната рамка MongoDB има допълнителна функционалност за геолокация, която може да позволи на човек да прави много неща с геопространствени данни. Например, като създадете индекс на 2Dsphere, можете да извлечете местоположения в рамките на определен радиус, като просто предоставите координатите за ширина и дължина. Позовавайки се на телекомуникационния пример по-горе, компанията може да използва функцията Map-reduce или рамката за агрегиране, за да групира повиквания от дадено местоположение, като изчислява средното време на разговори на дневна база за своите потребители или повече други операции. Вижте примера по-долу.

Нека имаме колекция от местоположение с данните

{ 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"}

След това можем да намерим данни за местоположения, които са близо до [-73.00, 40.00] с помощта на рамката за агрегиране и на разстояние от 1 км със заявката по-долу:

db.places.aggregate( [

   {

      $geoNear: {

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

         spherical: true,

         query: { category: "Parks" },

         distanceField: "calcDistance",

   maxDistance: 10000

      }

   }

]

Операцията Map-Reduce също е налична в Hadoop, но е подходяща за прости заявки. Итеративният процес за големи данни, използващи Map-Reduce в Hadoop, е доста бавен, отколкото в MongoDB. Причината е, че итеративните задачи изискват много процеси на картиране и намаляване преди завършване. В процеса се генерират множество файлове между картата и намаляват задачите, което я прави доста неизползваема при разширен анализ. MongoDb въведе рамката на тръбопровода за агрегация, за да намали това забавяне и тя е най-използваната в близкото минало.

Вграждане на данни

MongoDB е базиран на документи с възможност за поставяне на повече полета в едно поле, което се нарича вграждане. Вграждането идва с предимството на минимални заявки, които се издават за един документ, тъй като самият документ може да съдържа много данни. За релационни бази данни, където може да има много таблици, трябва да издадете множество заявки към базата данни за една и съща цел.

Висока наличност

Репликацията на данни в множество хостове и сървъри вече е възможна с MongoDB, за разлика от релационната СУБД, където репликацията е ограничена до един сървър. Това е предимство, тъй като данните са много достъпни на различни места и потребителите могат да бъдат ефективно обслужвани от най-близкия сървър. Освен това процесът на възстановяване или разбивка се постига лесно, като се има предвид функцията за журналиране в MongoDB, която създава контролни точки, от които може да се направи препратка към процеса на възстановяване.

Индексиране и мащабируемост

Първичното и вторичното индексиране в MongoDB идва с много предимства. Индексирането прави заявките да се изпълняват първи, което е необходимо внимание за големите данни, както обсъдихме под характеристиката на скоростта за големите данни. Индексирането може да се използва и при създаване на фрагменти. Частите могат да бъдат дефинирани като подколекции, които съдържат данни, които са били разпределени в групи с помощта на ключ за сегменти. Когато се издаде заявка, ключът на сегмента се използва, за да се определи къде да се търси сред наличните фрагменти. Ако нямаше фрагменти, процесът щеше да отнеме доста време за Big Data, тъй като всички документи трябва да бъдат разгледани и процесът може дори да изтече, преди потребителите да получат това, което искат. Но с разделянето количеството данни, от които трябва да се извличат, се намалява и следователно намалява латентността при изчакване на връщане на заявка.

Ефективна машина за съхранение и работа с памет

Последните версии на MongoDB задават WiredTiger като машина за съхранение по подразбиране, която има изпълнителна способност за обработка на множество работни натоварвания. Този механизъм за съхранение има много предимства, за да служи за големи данни, както е описано в тази статия. Двигателят има функции като компресия, контролна точка и насърчава множество операции за запис чрез едновременното изпълнение на документи. Големите данни означават много потребители и функцията за едновременност на ниво документ ще позволи на много потребители да редактират в базата данни едновременно, без да причиняват спад в производителността. MongoDB е разработен с помощта на C++, което го прави добър за работа с памет.

Последователност и интегритет на данните

 инструментът за валидиране на JSON е друга функция, налична в MongoDB, за да се гарантира целостта и последователността на данните. Използва се, за да се гарантира, че невалидни данни няма да попаднат в базата данни. Например, ако има поле, наречено възраст, то винаги ще очаква целочислена стойност. JSON валидаторът винаги ще проверява дали низ или друг тип данни не е изпратен за съхранение в базата данни за това поле. Това е също така, за да се гарантира, че всички документи имат стойности за това поле в един и същ тип данни, следователно последователност на данните. MongoDB също така предлага функции за архивиране и възстановяване, така че в случай на повреда човек да може да се върне в желаното състояние.

Заключение

MongoDB обработва анализ на данни в реално време по най-ефективния начин, следователно подходящ за големи данни. Например, геопространственото индексиране позволява анализ на GPS данни в реално време.

Освен основната конфигурация за сигурност, MongoDB има допълнителен инструмент за валидиране на JSON данни, за да гарантира, че в базата данни влизат само валидни данни. Тъй като базата данни е базирана на документи и са вградени полета, много малко заявки могат да бъдат издадени към базата данни за извличане на много данни. Това го прави идеален за използване, когато става въпрос за големи данни.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB 4.2 Управление и наблюдение без блокиране на доставчик

  2. SQL RPAD()

  3. Процент на условията ИЛИ, съответстващи в mongodb

  4. Планирайте работата на Node.js на всеки пет минути

  5. Напишете първия си съветник