Що означає "орієнтований на документ" проти "значення-значення", якщо говорити про MongoDB проти Кассандри?


Відповіді:


153

Ключ-значення магазин забезпечує найпростішу модель даних , і саме те , що підказує назва: це система зберігання даних , яка зберігає значення індексується з допомогою ключа. Ви обмежені запитом за ключем, і значення непрозорі , магазин не знає нічого про них. Це дозволяє дуже швидко читати і записувати (простий доступ до диска), і я розглядаю цю модель як своєрідний енергонезалежний кеш (тобто добре підходить, якщо вам потрібен швидкий доступ за ключем до довговічних даних).

Бази даних документ-орієнтований розширює попередню модель і значення зберігаються в структурованому форматі (документ, звідси і назва) , що база даних може зрозуміти. Наприклад, документом може бути публікація в блозі, а також коментарі та теги, що зберігаються денормалізованим способом. Оскільки дані прозорі , магазин може зробити більше роботи (наприклад, поля індексації документа), і ви не обмежуєтесь запитом за ключем. Як я натякав, такі бази даних дозволяють отримувати дані цілої сторінки за допомогою одного запиту і добре підходять для програм, орієнтованих на контент (саме тому великі сайти, такі як Facebook чи Amazon люблять їх).

Інші види баз даних NoSQL включають в себе колоноорієнтовані сховища , бази даних графіків і навіть бази даних об'єктів . Але це виходить за рамки питання.

Дивитися також


2
У сховищах ключових значень не потрібно робити доступ до диска, а в деяких реалізаціях їх називати енергонезалежними є неправильним. Ви можете створити сховище ключових значень у пам'яті без запису або повернення на енергонезалежний носій інформації. Викликання даних довготривалими також вводить в оману, оскільки термін експлуатації даних не має нічого спільного з способом їх отримання.
Ентоні

17

Ну, я сам досліджував NoSQL останній місяць або близько того. Я думаю, що це взагалі можна було б констатувати щось подібне

  • KV магазини не знають, який вміст цінності фактично зберігається для ключа
  • Документ на основі документа дозволяє визначити вторинні індекси у змістовному вмісті, оскільки db знає структуру документа (наприклад, теги публікації в блозі).
  • Кожен з рішень NoSQL має специфічні особливості, які слід враховувати, такі як
    • Спеціальні типи даних у магазині KV (наприклад, набори з лівим / правим попсом / натисканням, як у redis)
    • простий кластер масштабування вгору / вниз, як говорить Ріак (я ще не пробував цього ... ще)
    • модуль зберігання даних, як у Волдеморта
    • вбудована веб-конфігурація та підтримка веб-додатків, як у CouchDB / couchapp

2

База даних, орієнтована на документи, або сховище документів, призначена для зберігання, вилучення та управління документами, орієнтованими на документи, що є напівструктурованими даними. Сховище ключів-цінностей є спадщиною бази даних, орієнтованої на документи. Різниця полягає в способі обробки даних; у сховищі ключових значень дані вважаються непрозорими для бази даних, тоді як система, орієнтована на документ, покладається на внутрішню структуру в документі для отримання метаданих, які двигун бази даних використовує для подальшої оптимізації.

Якщо ми маємо справу про різницю між MOngoDb та Cassandra. MongoDB подібно до реляційної бази даних. Його модель даних складається з бази даних на верхньому рівні, потім колекцій, які є як таблиці в MySQL (наприклад), а потім документів, що містяться в колекції, як рядки в MySQL. Кожен документ має поле та значення, де це аналогічно стовпцям та значень у MySQL. Поля можуть бути простими ключами / значеннями, наприклад {'name': 'David Mytton'}, але вони можуть містити й інші документи, наприклад {'name': {'first': David, 'last': 'Mytton'}}. У Кассандрі документи відомі як "стовпчики", які насправді є лише одним ключем і значенням. наприклад, {'key': 'name', 'value': 'David Mytton'}. Також є поле часової позначки, яке призначене для внутрішньої реплікації та послідовності. Значення може бути одним значенням, але може містити ще один "стовпець". Ці колонки тоді існують у сімействах стовпців, які впорядковують дані на основі певного значення у стовпцях, на яке посилається ключ.

Але, на верхньому рівні є простір клавіш, схожий на базу даних MongoDB.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.