ToroDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:43, 16 октября 2020.

ToroDB - это технология, разработанная для устранения разрыва между документно-ориентированными базами данных и базами данных SQL. Существует два продукта, которые используют эту технологию: ToroDB Server и ToroDB Stampede.[Источник 1]

ToroDB Stampede

ToroDB Stempede
Toro.jpeg
Разработчики: 8Kdata
Постоянный выпуск: v1.0.0 / 2018 October 25 года; 3 years ago (25-10-2018)
Состояние разработки: Active
Написана на: Java
Операционная система: Все ОС с виртуальной машиной Java 7
Тип ПО: Технология репликации и отображения
Лицензия: Стандартная общественная лицензия GNU Affero v3.0
Веб-сайт www.torodb.com

ToroDB Stampede - это технология репликации и отображения, позволяющая поддерживать действующее зеркало базы данных MongoDB в базе данных SQL. ToroDB Stampede использует oplog набора реплик MongoDB для отслеживания изменений в MongoDB. На Рисунке 1 представлена схема организации взаимодействия MongoDB, ToroDB Stampede и SQL базы данных.

Рисунок 1 - Структура ToroBD Stempede

Во время репликации ToroDB Stempede преобразует документы JSON MongoDB в реляционную схему, которая позволяет быстрее выполнять определенные запросы (например, агрегаты) при выполнении документов JSON. На Рисунке 2 представлена схема логики перевода документов JSON MongoDB в реляционную схему.

Рисунок 2 - Процесс преобразования JSON документа в таблицу с помощью ToroBD Stempede


Текущие ограничения

1. На данный момент ToroDB Stampede поддерживают только бесплатные базы данных с открытым кодом PostgreSQL и MySQL (или совместимые с ними) в качестве целей.

2. ToroDB Stampede поддерживает только MongoDB 3.2 или 3.4 на данный момент.

Также, некоторые функции MongoDB не поддерживаются:

  • Capped collections (Коллекции с ограниченным размером).
  • Команда collMod.
  • Команда applyOps (остановит сервер репликации).
  • Символ "\0", так как PostgreSQL не поддерживает его.

Несовместимые форматы документов

Основное преимущество ToroDB Stampede - это объединение вложенных документов в таблицы. Есть несколько шаблонов, которые приводят к тому, что реляционные таблицы имеют очень большое количество столбцов - возможно, вплоть до ограничения серверной части SQLPostgreSQL около 1600 столбцов).

  • Шаблон "ключ как значение"

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

  • Слишком много полей в документе

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

Требования к системе для установки ToroDB Stampede

В соответствии с официальной документацией:[Источник 2]

MongoDB Действовать как источник репликации.
Конфигурация набора реплик ToroDB Stampede получает данные из набора реплик MongoDB. Достаточно одного набора реплик.
PostgreSQL Реляционный бэкэнд для хранения нормализованных данных.
Java ToroDB Stampede написан на Java, поэтому для его запуска требуется Java Runtime Environmen (JRE).

ToroDB Server

ToroDB Server
Toro.jpeg
Разработчики: 8Kdata
Постоянный выпуск: v0.40-alpha2 / 2016 April 30 года; 5 years ago (30-04-2016)
Состояние разработки: Active
Написана на: Java
Операционная система: Все ОС с виртуальной машиной Java 7
Тип ПО: NoSQL база данных с открытым исходным кодом
Лицензия: Стандартная общественная лицензия GNU Affero v3.0
Веб-сайт www.torodb.com

ToroDB Server - это проект с открытым исходным кодом, который превращает вашу СУБД в MongoDB-совместимый сервер, поддерживает API запросов MongoDB и репликацию MongoDB, но хранит ваши данные в надежной и надежной базе данных ACID. ToroDB в настоящее время поддерживает PostgreSQL в качестве бэкэнда, но другие будут добавлены в будущем.


ToroDB изначально реализует протокол MongoDB, поэтому вы можете использовать его с инструментами и драйверами MongoDB, а также имеет алгоритм преобразования документов в реляционные, который преобразует документы JSON в реляционные таблицы. ToroDB также предлагает собственный уровень SQL и автоматическую нормализацию и разбиение данных на основе неявной схемы документов JSON. [Источник 3]

Использование ToroDB Server

Требования к системе

  • JRE 7+
  • база данных PostgreSQL версии 9.4 или выше.

Установка

Есть три способа установки:

  • скачать скомпилированный файл
  • компилировать и установить их исходников

ToroDB основана на MongoWP[Источник 3][Источник 4] Запустить в корневой директории:

mvn package -P assembler

и выполните в из torodb/target/appassembler/bin или в другом удобном формате из torodb/target/dist/.

  • компилировать и создать образ докер

Для сборки образа в первый раз запустите в корневой директории

mvn package -P docker,assembler -Ddocker.skipbase=false

В следующий же раз вы сможете собирать образы ToroDB для докера с помощью команды

 mvn package -P docker,assembler

Чтобы запустить контейнеры с ToroDB с бэкэндом на PostgreSQL выполните следующую команду:

mvn docker:run -P docker,assembler -pl :standalone

ToroDB будет запущен на порте 27018 и будет возможность наблюдать за созданными таблицами в PostgreSQL на порте 15432 (user: postgres, password: postgres, database: torod).

Источники

  1. ToroDB // Github URL: https://github.com/torodb/torodb (дата обращения: 10.03.2017).
  2. ToroDB Stampede documentation // torodb.com URL: https://www.torodb.com/stampede/docs/1.0.0/ (дата обращения: 21.03.2017).
  3. 3,0 3,1 ToroDB Server // Github URL: https://github.com/torodb/server (дата обращения: 21.03.2017).
  4. MongoWP // Github URL: https://github.com/torodb/mongowp (дата обращения: 20.03.2017).