Вы находитесь на странице: 1из 14

5 важнейших

критериев оценки
баз данных NoSQL
Июнь 2018 г.

Документ переведён и адаптирован


в Яндекс.Облаке в январе 2020 г.
Содержание

Введение 1
Модель данных 2
Документоориентированная модель 2
Графовая модель 3
Модели «ключ-значение» и «семейство столбцов»
(wide column) 3
Модель запросов 3
Документоориентированная база данных 4
Графовая база данных 4
Базы данных «ключ-значение» и «семейство
столбцов» 5
Согласованность данных и транзакционная модель 5
Согласованные системы 6
Системы согласованные в конечном счете 6
API-интерфейсы 7
Идиоматические драйверы 7
RESTful API-интерфейсы 7
SQL-подобные API-интерфейсы 8
Визуализация и отчетность 8
Коммерческая поддержка, ресурсы сообщества
разработчиков, независимость от поставщика 8
Коммерческая поддержка 9
Ресурсы сообщества разработчиков 9
Заключение 11
Мы можем помочь вам – управляемый сервис от
Яндекс.Облака 12
Преимущества 12
Ресурсы 12
Введение
Реляционные базы данных прочно Необходимо принимать во внимание следующие
зарекомендовали себя во многих компаниях, и на факторы:
то есть основания. Реляционные базы данных
§ Разработчики работают с приложениями,
лежат в основе существующих приложений,
создающими новые, быстро меняющиеся типы
отвечающих текущим потребностям бизнеса; они
данных — структурированные,
поддерживаются обширной экосистемой
полуструктурированные,
инструментов; также существует обширный
неструктурированные и полиморфные данные,
контингент профессионалов, обладающих
причем в огромных объемах.
квалификацией в области внедрения и
обслуживания таких систем.
§ Каскадная модель разработки с циклом от 12
до 18 месяцев давно осталась в прошлом.
Тем не менее, компании все чаще пытаются
Современные разработчики работают
подыскать альтернативу унаследованной
небольшими командами в рамках гибких
реляционной инфраструктуре. В каких-то случаях
спринтов, отгружая код небольшими
это стремление носит технический характер —
итерациями 1-2 раза в неделю, а некоторые —
например, когда перед компаниями встает задача
даже по нескольку раз в день.
обработки новых, мультиструктурированных
типов данных, не вписывающихся в табличную
§ Приложения, которые когда-то
модель реляционной БД. В других случаях
предназначались для ограниченного круга
требуется уровень масштабирования, выходящий
пользователей, сегодня предоставляются уже
за пределы возможностей существующих систем.
как услуги. Такие общедоступные сервисы
В других случаях компании пытаются найти
должны работать бесперебойно, быть
жизнеспособные альтернативы дорогостоящему
доступны с устройств разного типа и
проприетарному программному и аппаратному
поддерживать глобальное масштабирование,
обеспечению для СУБД. Третья причина —
которое допускает распределенное хранение
востребованность высоких темпов и гибкости
данных в непосредственной близости к
разработки: компании стремятся быстрее
пользователям с целью снижения задержки
приспособится к условиям на рынке путем
сигнала и соблюдения законодательства о
применения гибких методологий разработки,
суверенитете данных.
процессов DevOps и микросервисов.
§ Современные компании переходят к
Команды разработчиков оказывают сильное использованию масштабируемых архитектур
влияние на процесс выбора технологий. на базе открытого программного обеспечения,
Сообщество разработчиков, как правило, склонно работающего не на крупномасштабных
считать, что реляционная табличная модель монолитных серверах и инфраструктурах
данных не очень хорошо согласуется с хранения данных, а на коммерчески доступных
потребностями приложений. серверах и облачных вычислительных
платформах.

1
По сравнению с реляционными базами данных, представления данных. Документы обеспечивают
многие системы «NoSQL» имеют несколько общих интуитивно понятный и естественный способ
ключевых характеристик, включая более гибкую моделирования данных, который тесно связан с
модель данных, более высокую объектно-ориентированным программированием
масштабируемость и отличную – каждый документ фактически является
производительность. Тем не менее, большая часть объектом. Документы содержат одно или
NoSQL-решений также лишена фундаментальной несколько полей, при этом каждое поле содержит
основы, благодаря которой реляционные базы типизированное значение, например, строку,
данных принесли столько пользы для множества дату, двоичное значение, десятичное значение
поколений приложений — в них, как правило, либо массив. Вместо того чтобы сохранять запись
отсутствует поддержка выразительного языка в нескольких столбцах и таблицах, устанавливая
запросов, вторичных индексов и сильной связи между данными при помощи внешних
согласованности данных. По факту термин ключей, каждая запись и связанные (т.е.
«NoSQL» зачастую используется как синоним для ассоциированные) с ней данные обычно хранятся
нетабличных баз данных любого рода. Как мы все вместе в одном иерархическом документе.
увидим далее, этот термин определен нечетко и Данная модель повышает скорость разработки,
имеет слишком широкий смысл, чтобы быть упрощает доступ к данным, и во многих случаях
полезным. Специалисты, которые его используют, устраняет необходимость в дорогостоящих
часто упускают из вида те компромиссы, на операциях JOIN и сложных транзакциях с
которые пришлось пойти разработчикам баз участием нескольких записей.
данных NoSQL для достижения требуемой
гибкости, масштабируемости и В документоориентированной БД схема —
производительности. понятие динамическое: каждый документ может
содержать разные поля. Такая гибкость может
В данной статье мы постараемся помочь вам быть особенно полезна при моделировании
сориентироваться в сложной и быстро неструктурированных и полиморфных данных.
развивающейся области систем NoSQL баз Это также упрощает процесс развития
данных. Мы расскажем о пяти важнейших приложений в течение их жизненного цикла,
измерениях, которые вы сможете использовать например, позволяет легко добавлять новые поля.
для выбора оптимальной СУБД, отвечающей Кроме того, некоторые
требованиям ваших приложений и бизнеса в документоориентированные БД поддерживают
целом. выразительные языки запросов, которые, по
мнению разработчиков, являются характерным
признаком реляционных баз данных. В частности,
Модель данных запросы к данным могут включать любые
комбинации полей документа, а разнообразие
Основным отличием NoSQL баз данных от вторичных индексов реализует эффективные пути
реляционных является используемая в них модель доступа, позволяющие поддержать практически
данных. Несмотря на то, что существуют уже любые варианты запросов.
десятки NoSQL баз данных, в целом они делятся
на следующие три категории: Особенности применения:
Документоориентированные БД — это
общецелевые базы данных, имеющие широкий
Документоориентированная спектр применений в силу гибкости модели
данных, возможности выполнения запросов по
модель
любому полю, а также естественному
соответствию между документной моделью
В то время как реляционные БД хранят данные в
данных и объектами в современных языках
строках и столбцах, документоориентированные
программирования.
базы данных хранят данные в документах.
Эти документы обычно используют JSON-
Примеры: MongoDB и CouchDB.
подобную структуру (JavaScript Object Notation) —
популярный среди разработчиков формат

2
Графовая модель семействам столбцов. Также столбцы могут быть
распределены по нескольким семействам
В графовых базах данных информация столбцов. Данные извлекаются по первичному
представляется в виде графовых структур, ключу, существующему для каждого семейства
характеризующихся узлами, ребрами и столбцов.
свойствами. По сути данные моделируются в виде
сети взаимосвязей между конкретными Особенности применения: Хранилища «ключ-
элементами. Несмотря на то, что графовая значение» и хранилища с широкими столбцами
модель не всегда интуитивно понятна и порой имеют узкий круг применения — это именно те
требуется время, чтобы в ней разобраться, она случаи, когда требуется запрос данных по
может пригодиться для выполнения единственному ключу. Привлекательность такого
определенных видов запросов. Основная рода систем заключается в их
привлекательность этой модели в том, что она производительности и масштабируемости. Их
упрощает процесс моделирования сущностей и легко оптимизировать благодаря простоте схем
отслеживание связей между сущностями в доступа к данным и непрозрачности значений
приложении. данных.

Особенности применения: Графовые базы данных Примеры: Redis и AWS DynamoDB (хранилища
полезны в тех случаях, когда прослеживание «ключ-значение»).
взаимоотношений между сущностями является HBase и Cassandra (хранилища семейств
основополагающей задаей приложений, — столбцов).
например, при отслеживании связей в
социальных сетях, планировании сетевых
топологий или цепочек поставок.
ВЫВОДЫ
§ Для всех приведенных моделей характерна
Примеры: Neo4j и AWS Neptune.
гибкая схема данных.
§ Модели данных для хранилищ «ключ-значение»
Модели «ключ-значение» и хранилищ семейств столбцов непрозрачны
и «семейство столбцов» (wide для системы — запрос может осуществляться
только по первичному ключу.
column)
§ Документная модель данных имеет наиболее
С точки зрения модели данных хранилища «ключ- широкую применимость.
значение» — это самый примитивный вид NoSQL § Документная модель данных является
баз данных. Каждый элемент базы данных наиболее естественной и продуктивной,
хранится в виде ключа (т.е. имени атрибута) — и поскольку она напрямую преобразуется в
его значения. Значение, однако, полностью объекты на современных объектно-
непрозрачно для системы: данные можно ориентированных языках программирования.
запросить только по ключу. Эта модель может
пригодится для представления полиморфных и § Модель хранилищ с широкими столбцами
неструктурированных данных, поскольку такая обеспечивает более детальный доступ к
база данных не накладывает заранее никакой данным по сравнению с моделью «ключ-
схемы на набор пар «ключ-значение». значение». Однако она дает меньшую гибкость,
Хранилища семейств столбцов, также чем документная модель данных.
называемые «хранилищами с широкими
столбцами» (wide column), используют, для
хранения данных, разреженное, распределенное Модель запросов
многомерное представление с сортировкой.
Каждая запись может отличаться по числу Каждое приложение имеет свои собственные
хранимых в ней столбцов. Столбцы могут быть требования к запросу. В некоторых случаях может
сгруппированы для обеспечения доступа по быть приемлема очень простая модель запроса, в
которой приложение обращается к записям

3
исключительно по их первичному ключу. обновления, позволяющие разработчикам
Однако для большинства приложений важна выполнять сложные манипуляции с
возможность выполнения запросов по различным соответствующими элементами документа (в том
значениям в каждой записи. Например, если числе, с элементами, находящимися во
приложение хранит данные о клиентах, в нем вложенных массивах) — все это в рамках единой
может использоваться поиск не только транзакционной операции update.
определенных клиентов, но и конкретных
компаний. Также может потребоваться поиск Графовая база данных
клиентов по заданным количественным
характеристикам, а также агрегирование суммы
Графовые СУБД, как правило, предоставляют
покупок клиентов по почтовому индексу или
полнофункциональные модели запросов,
региону.
позволяющие опрашивать простые и сложные
связи между данными и делать прямые и
Кроме того, приложения часто обновляют записи,
косвенные выводы о характере данных в системе.
изменяя одно или несколько полей. Чтобы
Анализ типа связей, как правило, дает очень
удовлетворять этим требованиям, СУБД должна
хорошие результаты в этих системах, при этом
иметь возможность запрашивать данные,
другие типы анализа могут оказаться менее
используя вторичные индексы. В таких случаях
оптимальными. В результате графовые базы
документоориентированная СУБД зачастую
данных редко используются в операционных
оказывается наиболее подходящим решением.
приложениях более общего назначения. Вместо
этого они объединяются с обычными
Документоориентированная база документоориентированными или реляционными
базами данных, где отвечают за материализацию
данных именно тех структур данных и запросов, где
использование графов может быть особенно
Документоориентированные СУБД как правило полезным.
предоставляют функционал для запроса и
обновления любого поля в документе, однако Чтобы немного обуздать всю ту сложность,
такого рода возможности разнятся в зависимости которая возникает в результате использования
от СУБД. Некоторые продукты, например, множества технологий хранения данных, отрасль
MongoDB, предоставляют богатый набор движется в направлении концепции
возможностей индексирования, позволяющих «мультимодельных» баз данных. В таких проектах
оптимизировать широкий спектр запросов используется сразу несколько моделей данных и
(включая текстовые, геопространственные, типов запросов в рамках единой СУБД-
составные, разреженные, TTL-запросы (Time-To- платформы, удовлетворяя таким образом всему
Live)), поддерживать уникальные индексы и т.д. разнообразию требований со стороны
Кроме того, некоторые из этих продуктов приложений.
предоставляют функционал локальной (in-place)
аналитики, не требующей репликации в Например, MongoDB поддерживает
специализированные аналитические или $graphLookup в качестве стадии агрегирования,
поисковые системы. Например, MongoDB позволяющей вести обработку графов внутри
предоставляет разработчикам систему MongoDB базы данных. $graphLookup позволяет
Aggregation Framework, позволяющую создавать эффективно обходить все графы, деревья и
сложные технологические конвейеры для анализа иерархические данные и затем выявлять
и преобразования данных, включая фасетный закономерности и ранее не идентифицированные
поиск, использование оператора JOIN, связи.
геопространственную обработку и обход графов.
Данная система также предоставляет
собственные возможности визуализации при
помощи диаграмм MongoDB Charts, а также
коннекторы для подключения Apache Spark и BI-
инструментария. Для обновления данных
MongoDB предоставляет выразительные методы

4
Базы данных «ключ-значение» и Согласованность данных
«семейство столбцов»
и транзакционная модель
Эти системы предоставляют возможность
Большинство NoSQL-систем обычно
получать и обновлять данные, используя
поддерживают несколько копий данных для
единственный ключ или ограниченный набор
обеспечения их доступности и
ключей. Для выполнения запроса по другим
масштабируемости. Такие СУБД могут применять
значениям пользователям рекомендуется
различные гарантии согласованности данных
создавать и поддерживать свои собственные
между копиями. NoSQL базы данных обычно
индексы. Некоторые продукты поддерживают
подразделяются на сильно согласованные — либо
ограниченный функционал вторичных индексов,
согласованные в конечном счете.
однако с определенными оговорками. Для
При использовании сильно согласованных
обновления данных в таких системах может
систем, результаты операций записи данных,
потребоваться несколько циклов обращения к
выполненных приложением, сразу же
данным: сначала найти запись, затем обновить ее,
отображаются в последующих запросах. В случае
и затем обновить индекс. В этих системах
же систем согласованных в конечном счете,
обновление может быть реализовано как полная
записи не всегда оказываются видны сразу:
перезапись всей записи на клиенте, вне
зависит это от того, какая реплика данных
зависимости от того, изменился ли только один
обслуживает запрос. Например, при
атрибут или вся запись целиком.
отображении уровней остатков товаров по
каталогу, в согласованной системе каждый
ВЫВОДЫ запрос будет видеть текущий уровень остатков
(т.к. остатки обновляются приложением), — а в
§ Самое большое различие между NoSQL базами случае системы, согласованной в конечном счете,
данных заключается в том, насколько уровни остатков могут оказаться неточными, если
эффективно выполнение запросов к данным. выполнять запрос на конкретный момент
времени; однако в конце концов они станут
§ Документоориентированные БД предоставляют
точными, потому что «в конечном счете» они
наиболее полный функционал запросов, что
будут реплицированы по всем узлам кластера
позволяет им взаимодействовать с широким
базы данных. По этой причине код приложений,
спектром операционных и аналитических
как правило, несколько отличается для систем,
приложений в режиме реального времени.
согласованных в конечном счете, — например,
§ Хранилища «ключ-значение» и «семейство вместо обновления остатков путем вычитания
столбцов» обеспечивают единый механизм единицы из текущего уровня остатков,
доступа к данным, а именно, по первичному разработчики должны формулировать
ключу. Такой доступ может быть очень идемпотентные запросы, в которых явно
быстрым, но предлагаемый при этом указывается уровень остатков. Разработчики
функционал запросов чрезвычайно ограничен. также вынуждены прописывать в своих
Поэтому если необходимо выйти за рамки приложениях дополнительную логику управления
базовых шаблонов запросов, то это может для обработки потенциально устаревших или
потребовать дополнительных затрат на удаленных данных.
разработку, в том числе, в контексте выработки Большая часть NoSQL-систем предлагает
новых требований на уровне приложений. гарантии атомарности на уровне отдельной
записи. Поскольку такие СУБД умеют объединять
данные, между которыми существуют связи (в
табличной схеме они бы моделировались
отдельными родительскими и дочерними
таблицами), — то атомарные операции,
затрагивающие одну запись, обеспечивают
транзакционную семантику, удовлетворяющую

5
требованиям целостности данных для Документоориентированные и графовые базы
большинства приложений. данных могут быть как согласованными, — так и
Тем не менее, некоторые разработчики и «согласованными в конечном счете». MongoDB
администраторы баз данных за 40-летнюю предоставляет настраиваемые уровни
историю моделирования реляционных БД согласованности данных. По умолчанию данные
привыкли считать, что транзакции с участием являются согласованными — все операции записи
нескольких записей являются обязательным и чтения данных обращаются к первичной копии
требованием для любой СУБД, независимо от данных. Также доступен вариант, когда запросы
модели данных, на которой она построена. на чтение обращаются к вторичным копиям
Некоторые разработчики обеспокоены тем, что данных. При этом данные окажутся согласованы в
несмотря на то, что транзакции с участием конечном счете, когда операция записи будет
нескольких документов не востребованы их синхронизирована со вторичной копией. Выбор
приложениями на сегодняшний день, они вполне варианта согласованности осуществляется на
могут понадобиться в будущем. Также при уровне запроса.
некоторых видах рабочих нагрузок требуется
поддержка ACID-транзакций, охватывающих
несколько записей. Системы согласованные
в конечном счете
Именно по этим причинам в MongoDB была
добавлена поддержка многодокументных ACID- В случае систем согласованных в конечном счете,
транзакций. Таким образом разработчикам существует период времени, в течение которого
оказывается еще проще охватить весь спектр все копии данных еще не успели
вариантов использования баз данных при помощи синхронизироваться. Такая ситуация может быть
MongoDB. Для разработчиков все выглядит приемлема для приложений, занимающихся
абсолютно так же, как и при транзакционной только чтением данных, а также хранилищ,
разработке в реляционных базах данных: которые меняются не так часто (например,
возможность использования сразу нескольких архивов исторических данных). Аналогичным
операторов, похожий синтаксис и простота образом такой подход целесообразен для
добавления в любое приложение. Благодаря сценариев интенсивной записи данных. При этом
snapshot-изоляции транзакции обеспечивают база данных собирает информацию, например, в
согласованное представление данных и виде журналов, а чтение данных будет
выполняются по принципу «все или ничего». СУБД проводиться уже позже. Хранилища «ключ-
MongoDB относительно уникальна в том, что она значение» и «семейство столбцов» обычно
предоставляет транзакционные гарантии на являются в конечном счете согласованными.
уровне, сравнимом с традиционными Системы согласованные в конечном счете
реляционными базами данных, сохраняя гибкость должны уметь обрабатывать конфликты
и возможности масштабирования, характерные обновлений на уровне отдельных записей.
для NoSQL баз данных. Поскольку операции записи данных могут
применяться к любой копии данных, весьма
вероятно, что они будут достаточно часто
Согласованные системы конфликтовать друг с другом, если один и тот же
атрибут будет обновляться на разных узлах.
Приложения могут предъявлять разные
Некоторые системы используют векторные часы
требования к согласованности данных. Для
для определения порядка событий: это позволяет
многих приложений крайне важно, чтобы данные
гарантировать, что самая последняя операция в
всегда были согласованными. Поскольку команды
случае конфликта выиграет. Тем не менее, может
разработчиков десятилетиями использовали
оказаться, что более старое значение возможно
реляционные СУБД, основанные на модели
уже было отдано в приложение. Другие системы
согласованности данных, такой подход является
сохраняют все конфликтующие значения и
более естественным и привычным для них. В ряде
перекладывают ответственность за разрешение
других случаев согласованность в конечном счете
конфликта на пользователя. По этим причинам
— это приемлемая плата за гибкость на уровне
операции вставки данных, как правило, работают
доступности системы.
быстро на системах согласованных в конечном

6
счете. Однако в операциях обновления и Идиоматические драйверы
удаления данных зачастую необходимо
предусмотреть компромиссы, значительно
Существует несколько популярных языков
усложняющие логику приложения.
программирования, и каждый из них использует
различные парадигмы для работы с данными и
ВЫВОДЫ сервисами. Идиоматические драйверы создаются
командами разработчиков-экспертов по
§ Согласно требованиям большинства конкретному языку. Эти специалисты отлично
прикладных программ и команд разработчиков разбираются в особенностях общепринятых
системы должны быть строго согласованы. стилей разработки на этом языке. Польза такого
подхода еще и в том, что при этом задействуются
§ Различные модели согласованности
конкретные возможности языка
используют различные модели с точки зрения
программирования, способные обеспечить
компромиссов согласованности и доступности
эффективность доступа к данным и их обработки.
данных приложений.
Программистам легче выучить и затем
§ MongoDB обеспечивает несколько уровней использовать идиоматические драйверы: при
согласованности, которые настраиваются на этом сокращается время ознакомления команд
уровне запроса. разработчиков с функционалом новой СУБД, — и
они могут быстро начать с ней работать.
§ Системы согласованные в конечном счете
Например, идиоматические драйверы
имеют ряд преимуществ с точки зрения вставки
предоставляют прямые интерфейсы для задания и
данных. Однако операции чтения, обновления и
получения как документов целиком, так и
удаления данных при этом усложняются. Также
отдельных полей в документах. В других типах
из-за необходимости разрешения конфликтов
интерфейса, если нужно задать или получить
при чтении, а также уплотнения данных, обычно
значение поля, то может потребоваться полное
страдает производительность.
извлечение документа с последующим его
§ Большинство NoSQL баз данных обеспечивает разбором и переходом к конкретному полю.
атомарность на уровне одной записи. Этого MongoDB поддерживает идиоматические
обычно достаточно для многих приложений, драйверы более чем для десяти языков: Java, .NET,
однако далеко не для всех. MongoDB Ruby, Node.js, Perl, Python, PHP, C, C++, C#,
предоставляет гарантии для многодокументных Javascript и Scala. Десятки других драйверов
ACID-транзакций, что упрощает решение поддерживаются силами сообщества
целого ряда задач с использованием единой разработчиков.
платформы данных.

RESTful API-интерфейсы

API-интерфейсы Некоторые системы предоставляют RESTful API-


интерфейсы. Такой подход, безусловно, многим
знаком и привлекателен своей простотой, однако
Не существует единого стандарта для интерфейса
ему присущи задержки, обусловленные
с NoSQL-системами. Каждая система
использованием протокола HTTP. Он также
предоставляет различные конструкции и
перекладывает задачу создания интерфейса на
возможности для команд прикладной разработки.
плечи разработчиков. Также, скорее всего, этот
Зрелость API-интерфейса может играть
интерфейс окажется несовместимым с
серьезную роль с точки зрения временных и
остальными разрабатываемыми программными
финансовых затрат, необходимых для разработки
интерфейсами.
и текущей поддержки приложений и баз данных.

7
SQL-подобные API-интерфейсы системы или использовать сторонние
инструменты. Поскольку MongoDB Charts
изначально понимает документную модель
Разработчики ряда нереляционных СУБД
MongoDB, пользователи могут создавать
попытались добавить SQL-подобный уровень
диаграммы, используя данные, которые имеют
доступа к базе данных в надежде, что это
различный формат или содержат вложенные
сократит кривую обучения для тех разработчиков
документы и массивы. При этом не нужно
и администраторов, которые знакомы с SQL.
предварительно приводить данные к плоской
Важно провести оценку всех этих вариантов
табличной структуре.
реализации еще до начала серьезной разработки,
принимая во внимание следующие факторы:
ВЫВОДЫ
§ Большинство этих реализаций значительно
уступают SQL по мощи и выразительности и
§ Зрелость и функциональность API-
требуют, чтобы пользователи, работающие с
интерфейсов существенно различаются в
SQL, изучили функционально-ограниченный
разных нереляционных продуктах.
диалект языка SQL.
§ Идиоматические драйверы MongoDB
§ Средства BI, отчетности и ETL, использующие
сокращают время освоения технологий
язык SQL, не будут совместимы с диалектной
новыми разработчиками и упрощают
реализацией SQL.
разработку приложений.
§ Притом что некоторые синтаксические
§ Не все SQL-системы созданы равными.
элементы могут оказаться знакомы SQL-
Тщательно оцените SQL-подобные API-
разработчикам, этого нельзя сказать о
интерфейсы, предлагаемые нереляционными
моделировании данных. Попытка навязать
базами данных и убедитесь в том, что они в
реляционную модель любой NoSQL базе
самом деле смогут удовлетворить
данных нанесет катастрофический урон
потребностям вашего приложения и ваших
производительности и текущему
разработчиков.
обслуживанию приложений.

Визуализация и отчетность Коммерческая поддержка,


Многие компании формируют визуализацию ресурсы сообщества
данных, аналитику и отчетность, используя такие
платформы BI на базе SQL, которые изначально не
разработчиков,
способны интегрироваться с NoSQL
технологиями. Чтобы решить эту проблему,
независимость от
организации обращаются к драйверам OBDC, поставщика
которые применяют индустриальные стандарты
для подключения сторонних аналитических Выбор СУБД — это серьезная инвестиция ваших
инструментов к NoSQL базам данных. Например, ресурсов. После того как приложение было
использование коннектора «MongoDB Connector построено на конкретной СУБД, его перенос на
for BI» позволяет аналитикам, исследователям другую СУБД является дорогостоящим, сложным
данных и бизнес-пользователям легко применять и рискованным делом.
наиболее популярные средства BI для
одновременной визуализации Компании обычно инвестируют свои ресурсы в
полуструктурированных и неструктурированных небольшое количество базовых технологий,
данных из баз MongoDB и традиционных данных чтобы иметь возможность наращивать опыт,
из SQL-баз. Система MongoDB Charts позволяет проводить интеграцию и развивать наработки,
пользователям быстро и легко создавать и которые можно будет затем успешно применять
обмениваться визуализациями своих данных во многих проектах. NoSQL-системы по-
MongoDB в режиме реального времени, без прежнему являются относительно молодыми,
необходимости перемещать данные в другие

8
и хотя на рынке существует много вариантов, данных везде, где это необходимо – на ноутбуке
только узкий круг технологий и поставщиков разработчика на ранней стадии внедрения, на
выдержит испытание временем. вашей собственной инфраструктуре при
внедрении в промышленную эксплуатацию и т.д.
Также очень важна возможность использования
Коммерческая поддержка базы данных в качестве сервиса от любого
публичного облака.
При оценке базы данных пользователи должны
учитывать жизнеспособность проекта СУБД и MongoDB предоставляет разработчикам и
компании-поставщика. Важно не только, чтобы командам DevOps свободу загружать и запускать
продукт продолжил существование в будущем: базу данных на своей собственной
также важно иметь гарантию, что он будет инфраструктуре. При использовании облачного
развиваться и предоставлять все новый сервиса MongoDB Atlas, СУБД MongoDB также
функционал. Еще один важный фактор — наличие доступна в виде полностью управляемого
сильной, опытной службы поддержки, способной облачного сервиса с поддержкой всех ведущих
оказывать услуги по всему миру. облачных поставщиков. Где бы вы ни решили
запустить MongoDB, вы получаете полную
переносимость платформы – вы используете одну
Ресурсы сообщества и ту же базу кода, API-интерфейсы и инструменты
разработчиков управления.

Наличие у технологии мощного сообщества


экспертов дает ей значительные преимущества, ВЫВОДЫ
особенно в случае СУБД. Если у СУБД мощное
сообщество пользователей, вам будет проще § Размер сообщества пользователей и
найти и нанять разработчиков, уже знакомых с коммерческая стабильность поставщика
продуктом. Также гораздо проще найти готовые являются важным компонентом оценки
наработки, документацию и примеры кода, что нереляционных баз данных.
снижает риск для новых проектов. Это также § MongoDB — одна из немногих компаний-
помогает компаниям удержать ключевые поставщиков нереляционных баз данных, акции
технические кадры. Наконец, сильное сообщество которой котируются на бирже. MongoDB
поощряет поставщиков других технологий к обладает самым крупным и самым активным
развитию интеграции со своей стороны и сообществом пользователей; группы
участию в работе экосистемы. технической поддержки работают по всему
миру и обеспечивают круглосуточное
обслуживание; группы пользователей работают
Независимость от поставщика в большинстве крупных городов; также имеется
Многие организации пали в прошлом жертвой подробная документация.
зависимости от поставщика СУБД и не вполне
добросовестных коммерческих практик ряда § Вы можете запустить MongoDB на вашей
поставщиков унаследованного корпоративного собственной инфраструктуре или в качестве
программного обеспечения. Использование полностью управляемого облачного сервиса на
открытого программного обеспечения и ведущих публичных облачных платформах,
коммерчески доступного оборудования стало в том числе в Яндекс.Облаке.
палочкой-выручалочкой для многих компаний, не
избавив их от опасения, что при переходе в
облако они могут, в конечном итоге, попасть из Почему именно MongoDB?
одной зависимости в другую.

СУБД MongoDB разработана для удовлетворения


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

9
Найти оптимальный способ работы с данными Разумно разместите свои данные там, где вы
хотите
§ Простота: Работайте с данными естественным,
интуитивно понятным способом, обеспечивая § Доступность: Предоставляйте своим
целостность данных благодаря ACID-гарантиям пользователям глобально устойчивые
платформы с использованием проработанных
§ Быстрота: Получите отличную
механизмов репликации и восстановления
производительность без больших усилий
после сбоев
§ Гибкость: Быстро адаптируйтесь к новым
§ Масштабируемость: Расширяйте свои
условиям и вносите изменения
хранилища горизонтально благодаря
§ Универсальность: Поддержка широкого встроенным механизмам шардирования
спектра типов данных и запросов
§ Изоляция рабочей нагрузки: Выполнение
операционных и аналитических рабочих
нагрузок на едином кластере
§ Локальность: Размещение данных на
конкретных устройствах и в определенных
географических зонах с целью обеспечения
управляемости, класса обслуживания и
доступа с низкой задержкой

10
Интеллектуальная операционная
платформа обработки данных

Найти оптимальный Разумно Свобода двигаться


способ работы разместить данные в любом выбранном
с данными там где вы хотите направлении

Рисунок 1: Интеллектуальная операционная платформа обработки данных на базе MongoDB

Свобода двигаться в любом выбранном


направлении
Заключение
§ Переносимость данных: База данных, которая По мере развития технологического ландшафта
везде работает одинаково организации все чаще сталкиваются с
§ Независимость от выбранного облака: необходимостью оценки новых СУБД с целью
Используйте преимущества многооблачной поддержки непрерывно меняющихся прикладных
стратегии, гарантирующей независимость от и бизнес-требований. Рекламная шумиха вокруг
провайдера NoSQL баз данных создает определенную
§ Глобальный охват: Поддержка всех основных неясность на рынке. Тем важнее компаниям
облачных провайдеров более чем в 50 понимать различия между имеющимися
регионах решениями. В этой статье мы обсудили ключевые
критерии, которые следует учитывать при оценке
Дополнительные подробности — в руководстве таких технологий, а именно: модель данных,
по архитектуре MongoDB (англ.яз). модель запросов, согласованность данных и
транзакционная модель, наличие API-
интерфейсов, а также коммерческой поддержки и
мощного сообщества пользователей. Многие
компании убедились в том, что
документоориентированные базы данных, такие
как MongoDB, лучше всего удовлетворяют этим
критериям. Тем не менее, мы рекомендуем, чтобы
лица, принимающие технологические решения в
вашей компании, провели самостоятельную
оценку указанных выше факторов.

11
Мы можем помочь вам Выбор типа хранилища:
Легко выбрать способ хранения данных:
Платформа Яндекс.Облако стала первым стандартное сетевое, быстрое сетевое и
официальным партнёром MongoDB в России и локальное хранилища. Сетевые более надёжные и
представила удобный сервис Managed Service for гибкие, а локальное обеспечивает более высокую
MongoDB на основе актуальной версии 4.2, скорость.
поддерживающей ACID-транзакции на уровне
Копии в разных зонах доступности:
шардированного кластера и другие возможности.
При любых изменениях будут меняться и копии
Управляемый сервис MongoDB позволит вам баз данных, в том числе в разных зонах
сосредоточиться на приложениях, а не на доступности.
операциях. Используя Managed Service for
MongoDB, вы платите только за фактически Быстрая обработка данных:
использованные ресурсы, исходя из удобной В Yandex Managed Service for MongoDB
почасовой модели оплаты. Одним нажатием применяются быстрые твердотельные
кнопки вы можете масштабироваться, когда накопители с поддержкой технологии NVMe. Они
удобно, без простоев и с гарантией безопасности обеспечивают высокую производительность
и высокой производительности. даже при обработке больших объёмов данных.

Техническая поддержка:
Преимущества Яндекс.Облако как официальный партнёр имеет
прямой доступ к технической поддержке
Устойчивость к сбоям: MongoDB и оказывает техподдержку клиентам в
Технологии автоматической репликации и России.
шардирования позволяют значительно повысить
отказоустойчивость кластера. При
проектировании сервиса учитывался Ресурсы
многолетний опыт эксплуатации MongoDB внутри
Яндекса. Посетите сайт cloud.yandex.ru или отправьте
письмо в отдел продаж: cloud-sales@yandex-
Лёгкость в обслуживании: team.ru.
Обслуживание СУБД, включая своевременные
§ Истории успеха
обновления, автоматизировано на стороне
(cloud.yandex.ru/cases)
платформы Яндекс.Облако, и вы получаете
готовую к эксплуатации базу данных. Вы можете § Вебинары и мероприятия
легко настраивать базы, восстанавливать их из (cloud.yandex.ru/events)
резервных копий, просматривать логи и следить
за ключевыми показателями на графиках. § Документация Яндекс.Облака
(cloud.yandex.ru/docs/managed-mongodb/)
Шифрование и изоляция:
§ Запись вебинара с обзором сервиса
В Yandex Managed Service for MongoDB все (youtube.com/watch?v=Y9x66DDnhsU&t=47s)
соединения с СУБД и резервные копии
содержимого баз шифруются при помощи § Бесплатное онлайн-обучение от MongoDB
протокола TLS и технологией GPG соответственно. (university.mongodb.com - англ. яз.)
Кроме того, базы разных клиентов Яндекс.Облака
полностью изолированы друг от друга. § Документация (docs.mongodb.com - англ. яз.)

Материалы разработаны командой MongoDB, переведены на русский язык и адаптированы командой


Яндекс.Облака в январе 2020 г.

12

Вам также может понравиться