ПРИМЕНИМОСТЬ НЕРЕЛЯЦИОННЫХ БАЗ ДАННЫХ В КОРПОРАТИВНОЙ СРЕДЕ. ОБЗОР NOSQL - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ПРИМЕНИМОСТЬ НЕРЕЛЯЦИОННЫХ БАЗ ДАННЫХ В КОРПОРАТИВНОЙ СРЕДЕ. ОБЗОР NOSQL

Фиронов Д.М. 1
1Московский Технический Университет Связи и Информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье рассматриваются перспективы использования технологий NoSQL при разработке информационных систем управления предприятием. Кратко изложены свойства NoSQL систем.

В связи с ростом предприятия, стремительно растет и объем данных, которые хранятся и обрабатывается в информационных системах управления предприятием, а также растет число пользователей информационных приложений и сервисов в корпоративной сети. Такое явление создает проблему эффективного представления информации, обеспечивающего быстрый доступ и надёжность хранения, целостность данных. Следовательно, реляционные базы данных не справляются с нагрузками, актуальными в настоящее время. Большинство предприятий нуждаются в поиске новых путей для хранения и масштабирования огромных массивов данных. Это обуславливает актуальность построения и применения моделей представления данных, отличных от реляционных. В качестве нереляционных баз данных, будет рассматриваться NoSQL.

Для сравнения NoSQL систем используются три основных параметра: масштабируемость, система хранения данных, модель данных и запросов.

Масштабируемость – автоматическое распределение данных между серверами. Распределенные БД поддерживают более одного датацентра и позволяют расширять работающий кластер серверов незаметно для клиентов. Сравнение распределенных систем управления базами данных отображено в таблице 1.

Сравнение распределенных СУБД[2] Таблица 1

СУБД

Прозрачное добавление в кластер

Поддержка нескольких датацентров

Cassandra

Да

Да

HBase

Да

Нет

Riak

Да

Да

Scalaris

Да

Нет

Voldemort

Нет

Необходима доработка

Основные достоинства NoSQL в распределенных системах заключаются в процедурах шардинга и репликации[3]. Под репликацией понимается копирование данных с одних серверов на другие, при их обновлении. Данная технология обеспечивает большую отказоустойчивость и масштабируемость системы. При шардинге массив информации разделяется по разным узлам сети. Каждый узел отвечает только за определенный набор данных и обрабатывает запросы на чтение и запись, относящиеся только к этому набору данных.

Сравнение моделей данных и запросов разных СУБД[4] Таблица 2

СУБД

Модель данных

API запросы

Cassandra

Семейства столбцов

Thrift

CouchDB

Документы

Map/Reduce

HBase

Семейства столбцов

Thrift, REST

MongoDB

Документы

Cursor

Neo4J

Графы

Graph

Redis

Коллекции

Collection

Riak

Документы

Nested hashes, REST

Scalaris

Ключ/Значение

get/pun

Tokyo Cabinet

Ключ/Значение

get/pun

Voldemort

Ключ/Значение

get/pun

Семейство столбцов – это строка, которая содержит множество столбцов, ассоциированных с ключом строки. Группируют взаимосвязанные данные, доступ к которым часто обеспечивается как к единому целому.

Рисунок 1. Модель данных в базе Cassandra, представляет собой семейство столбцов[1].

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

Хранилище типа ключ-значение – самое простое хранилище данных NoSQL с точки зрения интерфейса прикладного программирования. Клиент может либо получить значение по ключу, либо записать значение по ключу, либо удалить ключ из хранилища данных. Значение – это двоичный объект данных, записанный в хранилище без детализации его внутренней структуры; что именно хранится в этом объекте, определяется приложением. Так как хранилища типа ключ-значение всегда используют доступ к первичному ключу, они, как правило, имеют высокую производительность и легко масштабируются. Система ключ-значение не представляет сложности для реализации, но неэффективна, если необходим только запрос или обновление части данных. Также трудно реализовать сложные структуры поверх распределенных систем. Примеры использования: хранение информации о сессии, профили пользователей и предпочтения, корзины заказа. Данный тип хранилища использовать не следует в следующих случаях: отношения между данными, состоящие из многих операций транзакции, запрос по данным, операции с множествами.

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

Базы данных на основе графов позволяют хранить сущности и отношения между ними. Сущности моделируются узлами – экземплярами объекта в приложении. Отношения моделируются ребрами, которые могут иметь свойства. Ребра имеют направление, узлы организованы в соответствии с отношениями. Это позволяет находить требуемые шаблоны среди узлов. Организация графа позволяет один раз записать данные, а затем интерпретировать их разными способами в соответствии с отношениями.

Рисунок 2. Пример графовой структуры[1].

Примеры использования графовых баз данных: связанные данные, маршрутизация, диспетчеризация и геолокационные сервисы, справочные базы данных.

Система хранения данных – способ хранения данных внутри системы. Обеспечивает возможность выдерживания высоких нагрузок хранилищем.

Сравнение систем хранения данных[4] Таблица 3

СУБД

Модель данных

Cassandra

Memtable/SSTable

CouchDB

Append-only B-Tree

HBase

Memtable/SSTable on HDFS

MongoDB

B-Tree

Neo4J

On-disk linked lists

Redis

In-memory with background snapshots

Riak

Hash

Scalaris

In-memory only

Tokyo Cabinet

Hash or B-tree

Voldemort

Pluggable (primarily BDB MySQL)

Базы данных, хранящие данные в памяти, очень быстрые, но не способны работать с данными, превышающими размер свободной оперативной памяти. Проблематична также долговечность в версиях без поддержки append-only log. Количество данных, потенциально ожидающих записи на диск, может быть велико. Проблему с долговечностью можно решить, например, с помощью репликации, как в сисетеvt Scalaris, однако она неподдерживает масштабирования на несколько датацентров, что может привести к потере данных, в случае сбоя питания.

Memtables и SSTables после записи в commit лог с целью сохранности данных, буферируют запрос на запись в оперативной памяти. После того, как накопится достаточное количество записей, Memtable сортируется и записывается на диск как SSTable. Такая система лишена проблем, актуальных при хранении только в памяти, при этом имеет производительность, близкую к производительности памяти[2].

B-tree обеспечивают поддержку индексирования, но при использовании магнитных жестких дисков, в связи с техническими особенностями их работы, производительность резко падает.

Выводы:

В данной статье была рассмотрена возможность применения нереляционных баз данных на предприятиях. Описаны способы хранения данных, модели данных и масштабируемость NoSQL.

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

СПИСОК ЛИТЕРАТУРЫ

  1. Фаулер, Мартин, Садаладж, Прамодкумар Дж. NoSQL: новая методология разработки нереляционных баз данных. : Пер. с англ. - М.: ООО "И.Д. Вильяме", 2013. - 192 с.: ил. - Парал. тит. англ.

  2. Л.И. Воронова, В.И. Воронов Big Data. Методы и средства анализа: Учебное пособие / МТУСИ. – М., 2016 - 35 с.

  3. Г.А. Титоренко Информационные технологии управления: Учеб. пособие для вузов Под ред. проф. Г.А. Титоренко. – 2-е изд., доп. – М.: ЮНИТИ-ДАНА, 2003. - 439 с.

  4. S. Vijaykumar and S.G. Saravanakumar FUTURE ROBOTICS DATABASE MANAGEMENT SYSTEM ALONG WITH CLOUD TPS International Journal on Cloud Computing: Services and Architecture(IJCCSA),Vol.1, No.3, November 2011

Просмотров работы: 658