MammothDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:47, 17 января 2019.
Mammoth DB
MDB Logo.png
Разработчики: MammothDB Inc.
Постоянный выпуск: 2.13.0 / 27 February 2017 года; 3 years ago (2017-02-27)
Операционная система: кросс-платформенная
Локализация: Английский
Тип ПО: MySQL БД
Лицензия: GNU LGPL
Веб-сайт mammothdb.com

Mammoth DB — это комплексное решение, созданное для бизнес-пользователей. Представляет собой специализированную на аналитике базу данных (то есть не является системой обработки транзакций). MammothDB позволяет импортировать, запрашивать и структурировать данные, которые доступны в информационном поле организации, повышая тем самым эффективность бизнеса. Конкурирует с Teradata и Vertica, но имеет более низкую цену. [Источник 1] Mammoth DB - решение для корпоративных аналитиков, которое может быть спроектировано с нуля, с учетом потребностей бизнес-пользователей. Это позволяет обеспечить легкую интеграцию, гибкие настройки, а также снижает общие затраты. [Источник 2]

Консолидация с MariaDB

27 марта 2018 года корпорация MariaDB, предоставляющая услуги DBaaS (Database-as-a-service), объявила о том, что она приобрела компанию Mammoth DB. [Источник 3]

Ключевые характеристики

  • Объединение данных всего предприятия. Используя стандартные инструменты ETL, MammothDB объединяет все доступные данные организации в одно хранилище. [Источник 4]
  • Реляционная база данных.
  • SQL-native. Mammoth DB является "эластичной" облачной базой данных, совместимой с SQL (Structured Query Language).
  • Масштабируемость. Mammoth DB может изменять размеры для работы с данными от 50 GB до 50 TB, обеспечивая при этом высокую производительность, независимо от объемов данных.
  • Интегрированная отчетность. Предоставляет возможность не только использовать готовые, созданные по умолчанию шаблоны отчетов, но и разрабатывать специальные модели отчетов, адаптированные под используемые данные.
  • Широкий спектр совместимых инструментов отчетности. Может подключаться к любым инструментам визуализации от Microsoft Excel до Tableau MammothDB.
  • Высокая производительность. Работает до 25 раз быстрее, чем MySQL и до 7 раз быстрее, чем Oracle Berkeley DB. [Источник 5]
  • Доступность. MammothDB позволяет заменить современной аналитической базой данных более старые и дорогие решения, использующие NoSQL.

STORM

STORM является частью Mammoth DB и представляет собой облачный сервис бизнес-аналитики, включающий в себя интегрированное хранилище данных.[Источник 6] Состоит из следующих модулей:

  • Модуль визуализации данных
  • Модуль преобразования данных
  • Модуль моделирования данных
  • Система подготовки отчетов

Принципы работы

MammothDB - это SQL-совместимая RDBMS "на стероидах", предназначенная для запуска интерактивных аналитических приложений на кластере на базе Apache Hadoop.

MammothDB - недорогая бэкэнд-альтернатива существующим решениям RDBMS без совместного использования (например, Teradata), предназначенная для использования в качестве крупномасштабного хранилища данных и аналитики. Его задача - значительно снизить инвестиционный барьер для компаний, которые хотят начать применять бизнес-аналитику в своей работе. Комбинируя оборудование и сетевые компоненты, а также простой подход к распределению данных и обработке запросов, MammothDB, основанный на Hadoop, помогает снизить затраты на НИОКР и реализацию. Развертывание кластеров допускает плавное масштабирование и позволяет небольшими шагами добавлять новое оборудование, поскольку объемы обрабатываемых данных могут изменяться с относительно небольших (100 ГБ) до нескольких терабайтов (50TB).

MammothDB также отличается от существующих инструментов, таких как Hive, не только более высокой производительностью, но и и совместимостью с инструментами отчетности (например, Cognos, Microstrategy, MS Excel и т. д.).

Рисунок 1 – Схема архитектуры

Следует отметить, что MammothDB основана на MySQL и некоторых его производных.

База данных MammothDB "понимает" SQL-структурированный язык запросов; при этом язык определяется стандартом SQL ANSI/ISO.

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

Архитектура

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

  • Репликация: на каждом узле хранятся полные копии небольших таблиц.
  • Разделение: большие таблицы распределяются между узлами кластера так, что каждый узел содержит только подмножество всех строк каждой из таблиц. При таком распределении данных (работает с использованием хеширования) гарантируется, что каждый узел получает примерно одинаковое количество строк из каждой таблицы, так что ни одному узлу не придется обрабатывать значительно больше данных, чем другим во время запроса.

Стандартные инструкции SQL DDL используются для создания структуры таблицы, а команда LOAD DATA может использоваться для вставки записей из внешнего файла. В качестве альтернативы, данные могут быть загружены непосредственно через API.

На узле данные хранятся в локальном "движке данных". Им по умолчанию является Infobright Community Edition (ICE), но его можно заменить другим SQL-совместимым механизмом БД. Таким образом, распределяя данные между узлами, система при обработке запросов будет загружать центральный процессор, память и диск каждого из локальных узлов, тем самым сводя к минимуму необходимость перемещения данных по сети. Это существенно отличает данный продукт от большинства современных конкурентов, которые хранят данные как в распределенной файловой системе, а во время запроса перемещают огромные объемы данных через сеть.

Во время запроса MammothDB принимает стандартную инструкцию SQL DML. Клиент подключается к экземпляру сервера MySQL. Поддерживаются все методы клиентской связи с MySQL, такие как ODBC, JDBC, OLEDB и OLEDB.Net. Когда от клиента поступает SQL-запрос, он сначала перехватывается, анализируется и далее:

  • разбивается на части, которые будут выполняться на каждом узле с использованием их локальных данных;
  • с помощью спецификации MapReduce агрегируются промежуточные результаты;
  • части запускаются на экземпляре MySQL, обращенном к клиенту.

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

1. Запрос для запуска на каждом узле

1 SELECT A.attribute, SUM( M."data point" ) total
2   FROM metrics M
3   JOIN attributes A
4     ON metrics.lookup_id = attributes.lookup_id
5  GROUP 
6     BY A.attribute

2. Применение концепции MapReduce

1 map: run A, output key:=attribute, value:=total
2 reduce: output key:=attribute, value:=sum(total)

3. Запрос на запуск в MySQL

1 SELECT A.attribute, A.total
2   FROM mammothdb.vtableA A
3  ORDER 
4     BY A.total DESC

Следует отметить, что в зависимости от ожидаемых размеров результатов и времени выполнения на узлах кластера могут быть применены различные методы модели MapReduce:

  • Стандартные инструменты Hadoop MapReduce - для длительных (более одной минуты) задач, генерирующих большие наборы данных. В случае сбоя задача возобновится с момента его возникновения, с минимальными потерями промежуточных результатов.
  • Интерактивный MapReduce - для непродолжительных (менее одной минуты) задач. Использует API-интерфейс Hadoop, однако случае сбоя происходит повторный запуск всей работы.

Наличие интерактивного метода MapReduce позволяет Mammoth DB эффективно работать с малыми объемами данных (порядка 100 ГБ), на которых применение стандартных инструментов Hadoop может вызывать дополнительные задержки от нескольких до десятков минут. Кроме того, это также делает возможной интеграцию Mammoth DB с инструментами отчетности и анализа, которые обычно запускают десятки запросов к бэкэнду при каждом взаимодействии с пользователем и ожидают отклики в миллисекундах.

Обработка сбоев

Избыточные копии данных хранятся на нескольких узлах. Таким образом, таблицы имеют могут получить доступ к каждому своему разделу с помощью нескольких различных узлов (их количество зависит от общесистемного параметра, называемого «коэффициентом репликации»). Как только узел по каким-либо причинам перестает работать, другие узлы позволят временно получить доступ к своим данным до тех пор, пока не будет восстановлена работоспособность узла (или узлов), на котором произошел сбой. После решения проблемы MammothDB переместит данные из уже доступных узлов в новый (новые) и в конечном итоге достигнет той же конфигурации, что и до сбоя.

Служба облачных вычислений (CPS)

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

Поддерживаются следующие облачные системы:

  • Веб-службы Amazon
  • Microsoft Azure
  • OpenStack
  • VMWare vCenter или ESXi

Источники

  1. MammothDB is different // Dataconomy. [2008-2018]. Дата обновления: 20.03.2014. URL: https://dataconomy.com/2014/03/mammoth-db-different-4/ (дата обращения: 30.09.2018).
  2. MammothDB - Homepage // MammothDB. [2013-2018]. Дата обновления: 16.07.2016. URL: http://www.mammothdb.com (дата обращения: 30.09.2018).
  3. MariaDB Bolsters Analytics Capabilities Through MammothDB Acquisition // MariaDB. [2013-2018]. Дата обновления: 27.03.2018. URL: https://mariadb.com/about-us/newsroom/press-releases/mariadb-bolsters-analytics-capabilities-through-mammothdb (дата обращения: 30.09.2018).
  4. About MammothDB // MammothDB. [2013-2018]. Дата обновления: 16.07.2016. URL: http://www.mammothdb.com/about-mammothdb/ (дата обращения: 30.09.2018).
  5. Benchmarking MammothDB // MammothDB. [2013-2018]. Дата обновления: 16.07.2016. URL: http://www.mammothdb.com/mammothdb-speed-scale-benchmark/. (дата обращения: 30.09.2018).
  6. STORM // MammothDB Wiki. [2017-2017]. Дата обновления: 01.02.2017. URL: https://wiki.mammothdb.com/100storm:start (дата обращения: 30.09.2018).