Большие данные и NoSQL-системы
Большие данные и NoSQL-системы — это технологии управления данными, разработанные для обработки объемов, скорости и разнообразия, с которыми традиционные реляционные базы данных испытывали трудности, обменивая строгие реляционные гарантии на горизонтальную масштабируемость, гибкие схемы и высокую доступность.
Definition
Системы больших данных — это платформы управления данными, разработанные для наборов данных, слишком больших, быстрых или разнообразных для традиционных одноузловых баз данных; системы NoSQL — это нереляционные хранилища, которые используют гибкие модели данных и ослабленную согласованность для достижения горизонтальной масштабируемости и доступности.
Scope
Эта область охватывает системы данных, разработанные для массивных масштабов: хранилища NoSQL (ключ-значение, документоориентированные, ширококолоночные и графовые) и их гибкие модели данных; фреймворки параллельной обработки данных, произошедшие от MapReduce; компромиссы между согласованностью и доступностью, описываемые теоремой CAP, и спектр моделей согласованности; а также хранилища данных и OLAP для крупномасштабной аналитики. Она рассматривает, как эти системы ослабляют или реорганизуют реляционные предположения для масштабирования. Она исключает внутренние механизмы распределенной фиксации и параллельного выполнения запросов, которые рассматриваются в области распределенных и параллельных баз данных.
Sub-topics
Core questions
- Какие потребности в масштабируемости и гибкости привели к выходу за рамки реляционных баз данных?
- Какие модели данных предоставляют основные категории NoSQL?
- Как фреймворки параллельной обработки данных обрабатывают огромные наборы данных в кластерах?
- Какие компромиссы между согласованностью и доступностью описывает теорема CAP?
- Как хранилища данных и OLAP поддерживают крупномасштабные аналитические запросы?
Key concepts
- хранилища ключ-значение, документоориентированные, ширококолоночные, графовые
- горизонтальная масштабируемость
- гибкость схемы
- MapReduce и параллельная обработка данных
- теорема CAP
- конечная согласованность
- BASE против ACID
- хранилища данных и OLAP
Key theories
- Горизонтально масштабируемые NoSQL-хранилища
- NoSQL-системы отказываются от одноузловой реляционной модели в пользу моделей ключ-значение, документоориентированных, ширококолоночных или графовых, которые шардируют и реплицируют данные по кластерам из стандартных серверов, отдавая приоритет масштабируемости и доступности перед богатыми запросами и строгой согласованностью.
- Параллельная обработка данных
- Фреймворки, следующие модели MapReduce, выражают крупномасштабные вычисления как параллельные фазы map и reduce над секционированными данными, скрывая от программиста сложность распределения, планирования и отказоустойчивости.
- Компромисс CAP
- Теорема CAP утверждает, что распределенное хранилище данных не может одновременно гарантировать согласованность (Consistency), доступность (Availability) и устойчивость к разделению (Partition tolerance), вынуждая разработчиков выбирать, во время сетевого разделения, между согласованностью и доступностью.
Clinical relevance
Системы больших данных и NoSQL обеспечивают инфраструктуру данных современного Интернета: хранилища ключ-значение и ширококолоночные хранилища поддерживают высоконагруженные сервисы, фреймворки параллельной обработки данных обрабатывают логи и потоки кликов в масштабе, а хранилища данных служат для бизнес-аналитики, что делает эти системы центральными для инженерии данных и крупномасштабных приложений.
History
Нагрузки интернет-масштаба в 2000-х годах превысили возможности одноузловых реляционных баз данных. MapReduce (2004/2008) от Google и экосистема Hadoop с открытым исходным кодом обеспечили обработку данных в масштабе кластера; Dynamo (2007) от Amazon и Bigtable от Google вдохновили волну NoSQL-хранилищ; а теорема CAP Брюэра сформулировала компромиссы между согласованностью и доступностью, которые воплощают эти системы.
Debates
- Строгая против конечной согласованности
- NoSQL-системы часто выбирают доступность и конечную согласованность, чтобы оставаться отзывчивыми при разделениях, но это перекладывает обработку конфликтов на приложения; в этой области обсуждается, когда конечная согласованность приемлема, а когда новые системы должны восстанавливать более строгие гарантии.
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- Означает ли NoSQL полное отсутствие SQL?
- Нет. NoSQL обычно расшифровывается как 'не только SQL'. Это относится к хранилищам данных, которые не построены на реляционной модели и не ориентированы на SQL, но многие NoSQL-системы предлагают SQL-подобные интерфейсы запросов, и этот термин охватывает широкое семейство — базы данных ключ-значение, документоориентированные, ширококолоночные и графовые — а не единую технологию.
- Когда следует выбирать NoSQL-систему вместо реляционной базы данных?
- NoSQL-системы привлекательны, когда вам необходимо горизонтально масштабироваться на множество машин, хранить гибкие или быстро меняющиеся данные, или максимизировать доступность для простых шаблонов доступа. Реляционные базы данных остаются предпочтительными, когда вам нужны сложные запросы, сложные соединения и строгая транзакционная согласованность для структурированных данных.