QuestDB — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:34, 22 мая 2020.
м
м
 
(не показаны 4 промежуточные версии этого же участника)
Строка 35: Строка 35:
 
| AsOf                  =  
 
| AsOf                  =  
 
}}
 
}}
'''QuestDB''' - реляционная, колонно-ориентированная база данных, которая одновременно справляется как с запросами, так и с аналитикой в режиме реального времени.
+
'''QuestDB''' - реляционная, колонно-ориентированная база данных<ref name="ref2" group="Источник">Documentation overview  // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/documentationOverview (дата обращения: 16.05.2020).</ref>, которая одновременно справляется как с запросами, так и с аналитикой в режиме реального времени.
  
 
==Общие сведения==
 
==Общие сведения==
*QuestDB - это кроссплатформенный пакет<ref name="ref2" group="Источник">Installation overview // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installationOverview (дата обращения: 16.05.2020).</ref> без каких-либо зависимостей, кроме Java Runtime.
+
QuestDB - это кроссплатформенный пакет<ref name="ref3" group="Источник">Installation overview // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installationOverview (дата обращения: 16.05.2020).</ref> без каких-либо зависимостей, кроме Java Runtime.<br />
*Размер ПО составляет 4МБ.
+
Для удобства работы QuestDB предоставляет пользователям множество интерфейсов<ref name="ref4" group="Источник">Interfaces // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/interfaces (дата обращения: 16.05.2020).</ref>, каждый из которых позволяет решать свою задачу:
*Помимо скачанного ПО также можно использовать Web консоль, которая позволяет визуализировать работу с БД.
+
*Протокол передачи данных [[PostgreSQL|Postgres]] позволяет взаимодействовать с QuestDB на любом языке, который поддерживает Postgres
 +
*Протокол Influx line для добавления новых записей в базу данных
 +
*[[Java]] позволяет использовать QuestDB как часть другой программы
 +
*[[REST|HTTP REST]] позволяет взаимодействовать с базой данных посредством удобного API. Например можно получать ответы на запросы сразу в формате CSV или [[JSON (JavaScript Object Notation)|JSON]]
 +
*Web консоль позволит взаимодействовать с базой данных посредством графического интерфейса. Например можно составлять SQL-запросы и сразу видеть результаты прямо на экране
 +
Кроме того разработчики смогли уменьшить QuestDB до 4МБ, что позволит установить его на любое современное устройство.
 +
С учетом написанных выше характеристик и того что QuestDB является бесплатным продуктом можно сказать, что данное ПО улучшит любой ваш проект, использующий базы данных, не усложняя его дополнительными зависимостями.
 +
 
 
==Модель хранения данных==
 
==Модель хранения данных==
Quest DB использует модель хранения данных на основе столбцов.<ref name="ref3" group="Источник">Storage model // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/storageModel (дата обращения: 16.05.2020).</ref> Данные хранятся в таблицах, причем каждый столбец хранится в своем собственном файле и собственном собственном формате. Новые данные добавляются в нижнюю часть каждого столбца, чтобы позволить извлекать их в том же порядке, в котором они были добавлены.
+
Quest DB использует модель хранения данных на основе столбцов.<ref name="ref5" group="Источник">Storage model // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/storageModel (дата обращения: 16.05.2020).</ref> Данные хранятся в таблицах, причем каждый столбец хранится в своем собственном файле и собственном собственном формате. Новые данные добавляются в нижнюю часть каждого столбца, чтобы позволить извлекать их в том же порядке, в котором они были добавлены.
  
 
QuestDB использует такие свойства как атомарность, последовательность, изоляция и долговечность для обеспечения целостности данных во время транзакции.  
 
QuestDB использует такие свойства как атомарность, последовательность, изоляция и долговечность для обеспечения целостности данных во время транзакции.  
 
После добавления всех данных функция commit() гарантирует, что вся информация будет обновляться атомарно как в многопоточной, так и в многопроцессной среде. Процесс обновления происходит без блокировок, чтобы обеспечить минимальное влияние на одновременное чтение.
 
После добавления всех данных функция commit() гарантирует, что вся информация будет обновляться атомарно как в многопоточной, так и в многопроцессной среде. Процесс обновления происходит без блокировок, чтобы обеспечить минимальное влияние на одновременное чтение.
 
==Установка==
 
==Установка==
Установить QuestDB очень просто. Инструкция по установке ПО из бинарного файла<ref name="ref4" group="Источник">Install from binary // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installFromBinary (дата обращения: 16.05.2020).</ref>:
+
Установить QuestDB очень просто. Инструкция по установке ПО из бинарного файла<ref name="ref6" group="Источник">Install from binary // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installFromBinary (дата обращения: 16.05.2020).</ref>:
 
===Шаг 1 Скачать и установить JAVA===
 
===Шаг 1 Скачать и установить JAVA===
 
Если у вас уже установлена подходящая версия [[Java|JAVA]], вы можете пропустить этот шаг. Вы можете найти пакет, соответствующий вашей архитектуре, на [https://www.oracle.com/java/technologies/javase-jre8-downloads.html странице загрузки Oracle].
 
Если у вас уже установлена подходящая версия [[Java|JAVA]], вы можете пропустить этот шаг. Вы можете найти пакет, соответствующий вашей архитектуре, на [https://www.oracle.com/java/technologies/javase-jre8-downloads.html странице загрузки Oracle].
Строка 53: Строка 60:
 
Вы можете скачать QuestDB с [https://www.questdb.io/getstarted официальной страницы загрузки]. Для установки просто распакуйте файлы в выбранную вами директорию.
 
Вы можете скачать QuestDB с [https://www.questdb.io/getstarted официальной страницы загрузки]. Для установки просто распакуйте файлы в выбранную вами директорию.
 
==Пример использования QuestDB==
 
==Пример использования QuestDB==
Чтобы запустить QuestDB на Windows используйте исполняемый файл questdb.exe, а для MacOS и Linux questdb.sh.<ref name="ref4" group="Источник">Install from binary // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installFromBinary (дата обращения: 16.05.2020).</ref>
+
Чтобы запустить QuestDB на Windows используйте исполняемый файл questdb.exe, а для MacOS и Linux questdb.sh.<ref name="ref6" group="Источник">Install from binary // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/installFromBinary (дата обращения: 16.05.2020).</ref>
 
<br />
 
<br />
 
Для перехода в каталог установки используйте:
 
Для перехода в каталог установки используйте:
Строка 95: Строка 102:
  
 
==Использование Web консоли==
 
==Использование Web консоли==
Для дополнительного удобства при работе с данными QuestDB предоставляет возможность использования Web консоли. Web консоль использует HTTP API<ref name="ref5" group="Источник">Using Web console // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/usingWebConsole (дата обращения: 16.05.2020).</ref>, но позволяет интуитивно взаимодействовать с QuestDB с помощью своего интерфейса.
+
Для дополнительного удобства при работе с данными QuestDB предоставляет возможность использования Web консоли. Web консоль использует HTTP API<ref name="ref7" group="Источник">Using Web console // Официальный сайт  QuestDB. URL: https://www.questdb.io/docs/usingWebConsole (дата обращения: 16.05.2020).</ref>, но позволяет интуитивно взаимодействовать с QuestDB с помощью своего интерфейса.
  
  

Текущая версия на 17:34, 22 мая 2020

QuestDB
QuestDB Logo.png
Создатели:

Nicolas Hourcard[Источник 1]

Vlad Ilyushchenko

Tancrède Collard
Операционная система: Windows, Unix, MacOS
Размер дистрибутива: 4MB
Веб-сайт https://www.questdb.io/

QuestDB - реляционная, колонно-ориентированная база данных[Источник 2], которая одновременно справляется как с запросами, так и с аналитикой в режиме реального времени.

Общие сведения

QuestDB - это кроссплатформенный пакет[Источник 3] без каких-либо зависимостей, кроме Java Runtime.
Для удобства работы QuestDB предоставляет пользователям множество интерфейсов[Источник 4], каждый из которых позволяет решать свою задачу:

  • Протокол передачи данных Postgres позволяет взаимодействовать с QuestDB на любом языке, который поддерживает Postgres
  • Протокол Influx line для добавления новых записей в базу данных
  • Java позволяет использовать QuestDB как часть другой программы
  • HTTP REST позволяет взаимодействовать с базой данных посредством удобного API. Например можно получать ответы на запросы сразу в формате CSV или JSON
  • Web консоль позволит взаимодействовать с базой данных посредством графического интерфейса. Например можно составлять SQL-запросы и сразу видеть результаты прямо на экране

Кроме того разработчики смогли уменьшить QuestDB до 4МБ, что позволит установить его на любое современное устройство. С учетом написанных выше характеристик и того что QuestDB является бесплатным продуктом можно сказать, что данное ПО улучшит любой ваш проект, использующий базы данных, не усложняя его дополнительными зависимостями.

Модель хранения данных

Quest DB использует модель хранения данных на основе столбцов.[Источник 5] Данные хранятся в таблицах, причем каждый столбец хранится в своем собственном файле и собственном собственном формате. Новые данные добавляются в нижнюю часть каждого столбца, чтобы позволить извлекать их в том же порядке, в котором они были добавлены.

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

Установка

Установить QuestDB очень просто. Инструкция по установке ПО из бинарного файла[Источник 6]:

Шаг 1 Скачать и установить JAVA

Если у вас уже установлена подходящая версия JAVA, вы можете пропустить этот шаг. Вы можете найти пакет, соответствующий вашей архитектуре, на странице загрузки Oracle.

Шаг 2 Скачать Quest DB

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

Пример использования QuestDB

Чтобы запустить QuestDB на Windows используйте исполняемый файл questdb.exe, а для MacOS и Linux questdb.sh.[Источник 6]
Для перехода в каталог установки используйте:

$ cd installation_directory

Для дальнейшей работы с ПО используйте следующую команду:

$ questdb.exe [start|stop|status|install|remove] [-d dir] [-f] [-j JAVA_HOME] [-t tag] 

Подробнее о каждом из параметров:

Команда Описание команды
Start Запускает службу questdb
Stop По умолчанию останавливает службу questdb или службу, указанную с параметром-t.
Status Показывает статус обслуживания. Печатает Running или Not running, если служба запущена или остановлена соответственно
Remove Удаляет службу questdb

Для команды Start есть дополнительные флаги:

Флаг Описание флага
-d Для указания корневого каталога QuestDB
-f Для перезагрузки веб-консоли
-j Для указания пути до JAVA_HOME
-t Для использования служебного тега

Пример:

$ questdb.exe start -d 'C:\Users\user\my_new_root_directory' -j 'C:\Program Files\Java\jdk1.8.0_141' -t 'mytag' 

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

Для дополнительного удобства при работе с данными QuestDB предоставляет возможность использования Web консоли. Web консоль использует HTTP API[Источник 7], но позволяет интуитивно взаимодействовать с QuestDB с помощью своего интерфейса.


После запуска QuestDB вы можете получить доступ к консоли по ссылке. Для работы с консолью используются два основных экрана:

  • Экран импорта
  • SQL Экран

Экран импорта

Доступ к экрану импорта можно получить, щелкнув на верхний значок в меню навигации слева.

Экран импорта позволяет вам:

  • Загружать данные с помощью перетаскивания или прямого копирования
  • Проверять результат добавления данных
  • Настроить что будет происходить с данными при их добавлении
  • Вносить изменения в уже готовые схемы, например менять тип данных определенных столбцов для дальнейшей работы с ними
Рисунок 1 – Экран импорта

SQL Экран

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

  • Верхняя половина экрана SQL - это окно ввода. Именно здесь вы можете вводить свои команды.
  • Нижняя половина экрана SQL - это область результатов, где будут отображаться результаты вашего запроса. Для большего удобства отображения информации можно переключаться между отображением результатов в виде таблиц и в виде диаграмм.
Рисунок 2 – SQL Экран

Источники

  1. About QuestDB // Официальный сайт QuestDB. URL: https://www.questdb.io/about (дата обращения: 16.05.2020).
  2. Documentation overview // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/documentationOverview (дата обращения: 16.05.2020).
  3. Installation overview // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/installationOverview (дата обращения: 16.05.2020).
  4. Interfaces // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/interfaces (дата обращения: 16.05.2020).
  5. Storage model // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/storageModel (дата обращения: 16.05.2020).
  6. 6,0 6,1 Install from binary // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/installFromBinary (дата обращения: 16.05.2020).
  7. Using Web console // Официальный сайт QuestDB. URL: https://www.questdb.io/docs/usingWebConsole (дата обращения: 16.05.2020).