SiriDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:24, 1 марта 2019.
SiriDB
SiriDB logo.png
Разработчики: Transceptor Technology
Выпущена: 2017
Написана на: C
Операционная система: Linux, Mac OS X
Платформа: x86-64
Локализация: Английский
Тип ПО: NoSQL база данных
Лицензия: BSD лицензия
Веб-сайт siridb.net

SiriDB-это база данных временных рядов, первоначально разработанная как доказательство концепции для платформы мониторинга ИТ-инфраструктуры Oversight. В течение нескольких месяцев после создания первоначальной версии SiriDB основное внимание уделялось оптимизации SiriDB для масштабирования и избыточности. В 2017 году Siri DB была выпущена в свободный доступ[Источник 1].

Особенности

SiriDB-это масштабируемая, надежная и сверхбыстрая база данных временных рядов. Собранная с нуля, SiriDB использует уникальный механизм для работы без глобального индекса и позволяет добавлять серверные ресурсы на лету. Язык запросов SiriDB включает динамическую группировку временных рядов для упрощения анализа больших объемов временных рядов. SiriDB оказывает услуги:

  • хостинг[1]
  • поддержка
  • консультирование
  • справка по интеграции
  • разработка пользовательских дополнений

Сравнение с иными популярными решениями[Источник 2]

Сравним SiriDB с решением MariaDB:

Сравнение решений SiriDB и MariaDB
SiriDB MariaDB
Первичная модель базы данных Time Series DBMS Relational DBMS
Вторичные модели базы данных не указано Graph DBMS, хранилище ключ-значение, хранилище документов
Ранг баз данных 325 13
Язык реализации C С и C++
Операционная система Linux Linux, FreeBSD, Solaris, Windows
Схема данных есть есть
Предопределенные типы данных, такие как float или date есть есть
Поддержка XML нет есть
Поддержка SQL нет есть
APIs и другие методы доступа HTTP API ADO.NET, JDBC, ODBC
Поддерживаемые языки программирования C, C++, Go, Python Ada, C, C#, C++, D, Eiffel, Erlang, Go, Haskell, Java, JavaScript (Node.js), Objective-C, OCaml, Perl, PHP, Python, Ruby, Scheme, Tcl
Сохраняемые процедуры нет есть
Триггеры нет есть
Методы хранения различных данных на разных узлах sharding горизонтальное секционирование, сегментирование с помощью Spider storage engine или кластера Galera
Методы избыточного хранения данных на нескольких узлах есть Master-master, Master-slave
MapReduce нет нет
Методы обеспечения согласованности в распределенной системе не указано немедленная согласованность
Ссылочная целостность нет есть
Поддержка для обеспечения целостности данных после манипуляций с данными нет ACID
Возможности памяти есть есть
Контроль доступа простое управление правами через учетные записи пользователей детализированные права доступа согласно SQL-стандарту

Установка[Источник 3]

Для пользователей операционной системы Ubuntu разработчики подготовили пакет .deb, который можно скачать здесь. Стоит также упомянуть, что для работы с SiriDB необходимы библиотеки libexpat1, libuv1, libpcre2-8-0 и libcleri0, которые можно установить при помощи следующей команды в терминале:

apt install libexpat1 libuv1 libpcre2-8-0 libcleri0

Для пользователей Ubuntu 18.04 необходимо также установить библиотеки libcleri-dev, libpcre2-dev, libuv1-dev, uuid-dev при помощи следующих консольных команд в терминале:

sudo apt install libcleri-dev
sudo apt install libpcre2-dev
sudo apt install libuv1-dev
sudo apt install uuid-dev

Далее необходимо разархивировать и скомпилировать скачанный ранее пакет siridb-server.zip, используя консольные команды, показанные ниже, в терминале:

cd ./siridb-server-2.0.30/Release
make clean
make test
make

Данный набор команд заменит в папку Release папкой Debug для отладочной сборки. SiriDB потребуется запуск файла конфигурации для запуска. По умолчанию SiriDB будет искать файл конфигурации в /etc/siridb/siridb.conf. Запустить данный файл можно при помощи команды ниже:

$ siridb-server -c /my/path/siridb.conf

Сборка Debian пакета

Необходимо установить следующие пакеты devscripts, lintian, help2man, autopkgtest при помощи команды ниже:

apt-get install devscripts lintian help2man autopkgtest

Создаём архив следующей командой:

git archive -o ../siridb-server_2.0.30.orig.tar.gz master

Запускаем тесты следующей командой:

autopkgtest -B -- null

Собираем пакет следующей командой:

debuild -us -uc

Запуск тестов объединения

Согласно советам разработчика, лучше всего использовать для запуска тестов объединения утилиту docker. Создаём тестовый образ объединения при помощи следующей команды:

docker build -t siridb/itest -f itest/Dockerfile

Запускаем тесты объединения следующей командой:

docker run siridb/itest:latest

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

Для подключения к базе данных SiriDB необходимо использовать коннектор SiriDB HTTP. SiriDB HTTP предоставляет HTTP-интерфейс HTTP API для SiriDB и поддерживает форматы JSON, MsgPack, Qpack, CSV and Socket.io. SiriDB HTTP также имеет дополнительный веб-интерфейс и поддержку протокола SSL.

Настройка SiriDB HTTP

SiriDB HTTP 2.x может быть скомпилирован из источника, или же,для большинства систем, можно загрузить предварительно скомпилированный исходный код. Здесь можно загрузить исходный код для необходимой операционной системы. Для операционных систем Linux и OSX может понадобиться установить флаг запуска следующей командой:

$ chmod +x siridb-http_X.Y.Z_OS_ARCH.bin

После загрузки необходимо заменить файл X.Y.Z_OS_ARCH скачанным файлом исходного кода(например, 2.0.0_linux_amd64). Перед компиляцией из источника следует убедиться, что пакеты go, npm, git установлены. Также необходимо наличие установленной среды $GOPATH. Скопируйте проект при помощи следующей команды:

git clone https://github.com/SiriDB/siridb-http

Убедитесь, что библиотека less установлена, при помощи следующей команды:

$ sudo npm install -g less less-plugin-clean-css

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

$ ./gobuild.py -i -l -w -b -p

Для запуска SiriDB HTTP необходим файл конфигурации, который может быть предоставлен, используя аргументы -c и --config. Получаем права суперпользователя следующей командой:

$ sudo su -

Сохраняем файл шаблона конфигурации при помощи следующей команды:

$ siridb-http > ~/.siridb-http.conf

Теперь запускаем сервер при помощи следующей команды:

$ siridb-http -c ~/.siridb-http.conf

Видео

Примечания

  1. Хостинг - это услуга по предоставлению ресурсов для размещения информации на сервере, постоянно находящемся в сети (обычно Интернет).

Источники

  1. SiriDB. [2015-2019]. Дата обновления: 12.01.2019. URL: https://siridb.net (дата обращения: 02.10.2018)
  2. MariaDB vs. SiriDB Comparison // DB-Engines - Knowledge Base of Relational and NoSQL Database Management Systems. [2012-2019]. Дата обновления: 07.05.2018. URL: https://db-engines.com/en/system/MariaDB%3BSiriDB (дата обращения: 24.01.2019)
  3. GitHub // SiriDB/siridb-server. [2007-2019]. Дата обновления:27.09.2018. URL: https://github.com/SiriDB/siridb-server (дата обращения: 02.10.2018)