ScholarGate
Ассистент

Хранилища данных NoSQL

Хранилища данных NoSQL — это нереляционные базы данных (ключ-значение, документные, ширококолоночные и графовые), которые используют гибкие модели данных и стратегии распределения для горизонтального масштабирования и обеспечения доступности за счет некоторых реляционных гарантий.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Хранилище данных NoSQL — это база данных, которая отходит от реляционной модели, организуя данные в виде пар ключ-значение, документов, широких разреженных столбцов или графов, и обычно распределяет их по кластеру с репликацией и ослабленной согласованностью для достижения масштабируемости и доступности.

Scope

Эта тема охватывает основные категории систем NoSQL и их модели данных: хранилища ключ-значение для простого поиска, документные хранилища для вложенных записей, ширококолоночные хранилища для разреженных, больших таблиц и графовые базы данных для сильно связанных данных. В ней рассматриваются общие для этих систем проектные решения — шардирование, репликация и настраиваемая согласованность — а также шаблоны доступа, которым соответствует каждая модель. Она исключает широкую теорию согласованности (CAP и модели согласованности) и фреймворки обработки, которые являются смежными темами.

Core questions

  • Какую модель данных предоставляет каждая категория NoSQL (ключ-значение, документная, ширококолоночная, графовая)?
  • Какие шаблоны доступа и рабочие нагрузки подходят для каждой категории?
  • Как хранилища NoSQL шардируют и реплицируют данные для масштабирования и доступности?
  • Какие реляционные функции (соединения, транзакции, схемы) они ослабляют и почему?
  • Как настраиваемые параметры согласованности позволяют приложениям балансировать между задержкой и актуальностью?

Key concepts

  • хранилище ключ-значение
  • документное хранилище
  • ширококолоночное хранилище
  • графовая база данных
  • шардирование и репликация
  • настраиваемая согласованность
  • гибкость схемы
  • денормализованные шаблоны доступа

Key theories

Модели ключ-значение и ширококолоночные
Хранилища ключ-значение сопоставляют непрозрачные ключи со значениями для простого и быстрого поиска, в то время как ширококолоночные хранилища организуют данные в строки с гибкими, разреженными семействами столбцов; обе, примером которых являются Dynamo и Bigtable, масштабируются до огромных кластеров с шардированием и репликацией.
Документные и графовые модели
Документные хранилища содержат самоописывающиеся вложенные записи (часто JSON) и поддерживают запросы к их структуре, в то время как графовые базы данных моделируют сущности и отношения как узлы и ребра, оптимизированные для обхода сильно связанных данных.
Ослабленные гарантии для масштабирования
Для горизонтального масштабирования и сохранения доступности многие хранилища NoSQL ослабляют схемы, отказываются от многострочных транзакций и соединений, а также предлагают настраиваемую или конечную согласованность, перекладывая часть ответственности за целостность на приложение.

Clinical relevance

Хранилища NoSQL широко используются в качестве строительных блоков интернет-сервисов: хранилища ключ-значение и ширококолоночные хранилища поддерживают состояние сеансов, каталоги и данные временных рядов в огромных масштабах, документные хранилища подходят для гибких данных приложений, а графовые базы данных обеспечивают работу систем рекомендаций и обнаружения мошенничества, что делает знание их моделей необходимым для инженерии данных.

History

Движение NoSQL выросло из потребности интернет-компаний масштабироваться за пределы одноузловых реляционных баз данных. Google Bigtable (2006/2008) представил ширококолоночную модель, а Amazon Dynamo (2007) — высокодоступную, в конечном итоге согласованную модель ключ-значение; эти влиятельные разработки породили поколение открытых хранилищ ключ-значение, документных, ширококолоночных и графовых баз данных в конце 2000-х и 2010-х годов.

Key figures

  • Werner Vogels
  • Jeffrey Dean
  • Sanjay Ghemawat

Related topics

Seminal works

  • decandia2007
  • chang2008

Frequently asked questions

Как выбрать между хранилищами ключ-значение, документными, ширококолоночными и графовыми?
Сопоставьте модель с шаблоном доступа: ключ-значение для простого поиска по известному ключу; документное для самодостаточных, вложенных записей, запрашиваемых по их полям; ширококолоночное для очень больших, разреженных таблиц с предсказуемым доступом по ключу строки; и графовое для данных, доминирующих отношениями и обходами, таких как социальные сети или рекомендации.
Поддерживают ли хранилища NoSQL транзакции?
Исторически многие хранилища NoSQL предлагали только атомарные операции с одним ключом и не имели многозаписных транзакций, обменивая их на масштабируемость. Это изменилось: ряд современных систем NoSQL и 'NewSQL' теперь предоставляют многодокументные или даже распределенные транзакции, поэтому поддержка транзакций сильно варьируется и должна проверяться для каждой системы.

Methods for this concept

Related concepts