/
Настройка SQL Backend

Настройка SQL Backend

SQL Backend представляет из себя отдельную настройку на ViQube, за счет которой запросы выполняются либо на данных ViQube (In-memory), либо в сторонней базе (далее SQL-СУБД).

Данная статья описывает как произвести настройку SQL Backend на ViQube, что позволит ретранслировать запросы в SQL-СУБД, например ClickHouse. Полный перечень поддерживаемых СУБД приведен в Поддерживаемые СУБД.

Основные этапы настройки SQL Backend

На момент настройки в SQL-СУБД уже должны быть таблицы, наполненные данными.

Основные этапы настройки SQL Backend:

  1. Создание в ViQube таблиц, идентичных в используемой SQL-СУБД
  2. Подготовка и применение структуры маппинга с помощью API

Создание таблиц, идентичных SQL-СУБД

В ViQube необходимо создать такие же таблицы, как и в используемой SQL-СУБД

  1. ViQube берет запрос и транслирует в SQL, запрос выполняется и возвращаются данные. Эти данные попадают в таблицу с результатом. Поэтому в ViQube должна быть точно такая же структура таблицы с точно такими же типами полей, чтобы можно было вывести результирующую таблицу.
  2. Наименования таблицы и столбцов могут отличаться, но типы данных должны быть одинаковыми. Это необходимо для корректного маппинга при трансляции запросов в SQL-СУБД.
  3. Если в таблице в SQL-СУБД есть дополнительные столбцы, которых нет в таблице в ViQube и их использовать не планируется, то такое расхождение а таблицах допустимо. ViQube просто будет их игнорировать, если не указывать их в настройках SQL Backend.

Создать таблицы можно с помощью стандартного механизма Загрузчиков. Например, загрузив только первые 10 строк. В дальнейшем при подключении этой таблицы к SQL-СУБД данные из ViQube будут игнорироваться. Описание создания таблиц с помощью загрузчиков приводится в разделе: Загрузка данных и формирование структуры в аналитической базе данных ViQube.


Настройка SQL Backend

Работа с SQL Backend на ViQube происходит с помощью запросов по API. 

Проверка текущих настроек - GET

  1. Чтобы просмотреть текущие настройки SQL Backend необходимо отправить GET-запрос:

    curl --location --request GET 'http://192.168.4.101/viqube/sqlbackend' \
    --header 'X-API-VERSION: 3.8' \
    --header 'Authorization: 'Bearer <token>'

    IP адрес, HTTP/HTTPS и <Bearer token> необходимо заменить на свои. Как получить <Bearer token> описано в разделе Получение токена аутентификации. 
    X-API-VERSION 3.8 актуальна для 2.27, и может быть другой для вашей версии платформы.
    На время тестирования авторизацию на ViQube можно отключить, в таком случае заголовок Authorization не нужен.

  2. В ответе получаем следующие настройки SQL Backend (по умолчанию):

    {
      "enabled": false,
      "jdbcOptions": {
        "connection": ""
      },
      "sqlMapping": {}
    }

Применение новых настроек - PUT

  1. Чтобы применить новые настройки SQL Backend необходимо отправить PUT-запрос с подготовленными настройками. Подробное описание структуры настроек приведено в разделе "Структура настроек SQL Backend".
  2. В случае успешного применения настроек будет возвращено "200".
  3. После успешного применения настроек все таблицы, которые были настроены на SQL-СУБД при запросах будут обращаться напрямую в SQL-СУБД, а не ViQube.

Структура настроек SQL Backend

Настройки SQL Backend состоят из:

  • строки подключения, параметров подключения
  • описания соответствия таблиц и колонок в ViQube и SQL-СУБД
ПараметрОписание
enabledВключен или выключен SQL Backend
jdbcOptionsНастройки и опции подключения к SQL-СУБД

connectionСтрока подключения для JDBC драйвера. Адрес в строке необходимо указать такой, чтобы он был доступен изнутри контейнера viqube-master

isResetUpdateTime

"true" - сбрасывать кэш при каждом запросе.

"false" - ответы кэшируются (может быть использован для ускорения работы дашбордов)


socket_timeout Таймаут для выполнения запросов в SQL-СУБД 
sqlMapping Перечисляются все таблицы, запросы для которых нужно транслировать в SQL-СУБД

Ключ Имя таблицы в ViQube (In-memory)

sqlTable

Имя таблицы в SQL-СУБД. Если имена совпадают можно не писать это поле, или указать ““.

Если таблица не указана, то запросы с участием этой таблицы не будут транслироваться в  SQL-СУБД


columns

Перечисляются все поля (столбцы) таблиц, запросы для которых нужно транслировать в SQL.

Если имя столбца в таблице в ViQube (In-memory) и в таблице в SQL-СУБД совпадают и это не столбец с типом "Дата" или "ДатаВремя", то указывать его в секции не нужно

Если имя столбца в таблице в ViQube (In-memory) и в таблице в SQL-СУБД НЕ совпадают и это НЕ столбец с типом "Дата" или "ДатаВремя",то указывать нужно:

"name_in_viqube": {"OFF": "name_in_sql"}

Для всех полей с типом "Дата" или "ДатаВремя" нужно задавать правила замещения колонок, так как в ViQube (In-memory) есть свои особенности в работе с датой.

Шаблоны для настроек поддерживаемых СУБД приведены в разделе: Примеры структур настроек для СУБД.

Отключение SQL Backend

Чтобы выключить режим SQL Backend на некоторых таблицах достаточно отправить обновленный PUT-запрос, в котором НЕ будет этих таблиц.

  1. Чтобы полностью выключить режим SQL Backend необходимо отправить PUT-запрос:

    {
        "enabled": false,
        "jdbcOptions": {
            "connection": ""
        },
        "sqlMapping": {}
    }
  2. В случае успешного применения настроек будет возвращено "200".
  3. Теперь при запросе настроек с помощью GET-запроса, будут возвращены исходные настройки:

    {
      "enabled": false,
      "jdbcOptions": {
        "connection": ""
      },
      "sqlMapping": {}
    }

Пример настройки

Пример настройки SQL Backend на ClikHouse:


Related content

Примеры структур настроек для СУБД
Примеры структур настроек для СУБД
Read with this
Настройка SQL Backend
Настройка SQL Backend
More like this
Настройка SQL Backend
Настройка SQL Backend
More like this
Настройка SQL Backend
Настройка SQL Backend
More like this
Настройка SQL Backend
Настройка SQL Backend
More like this
Настройка SQL Backend
Настройка SQL Backend
More like this