Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Оглавление
Информация

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

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

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

Примечание

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

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

  1. Создание в ViQube таблиц, идентичных в используемой

...

  1.  SQL-СУБД

  2. Подготовка и применение структуры маппинга с помощью API

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

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

  1. ViQube берет запрос и транслирует в SQL, запрос выполняется и возвращаются данные. Эти данные попадают в таблицу с результатом.

...

  1.  Поэтому в ViQube должна быть точно такая же структура таблицы с точно такими же типами полей, чтобы можно было вывести результирующую таблицу.

  2. Наименования таблицы и столбцов могут отличаться, но типы данных должны быть одинаковыми. Это необходимо для корректного маппинга при трансляции запросов в SQL-СУБД.

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

Информация

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

Настройка SQL Backend

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

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

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

    Блок кода
    languagexml
    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. Чтобы применить новые

...

  1. настройки SQL Backend необходимо отправить PUT-запрос с подготовленными настройками. Подробное описание структуры настроек приведено в разделе "Структура настроек SQL Backend".

  2. В случае успешного применения настроек будет возвращено "200".

  3. После успешного применения настроек все таблицы, которые были настроены на SQL-СУБД при запросах будут обращаться напрямую

...

  1. в 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) есть свои особенности в работе с датой.


Примечание

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

"sqlTable": "\"scheme\".\"table\""

Строка типа "sqlTable":"scheme.table" работать не будет.

Информация

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

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

Информация

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

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

    Блок кода
    languagexml
    {
        "enabled": false,
        "jdbcOptions": {
            "connection": ""
        },
        "sqlMapping": {}
    }
  2. В случае успешного применения настроек будет возвращено "200".

  3. Теперь при запросе настроек с помощью GET-запроса, будут возвращены исходные настройки:

    Блок кода
    {
      "enabled": false,
      "jdbcOptions": {
        "connection": ""
      },
      "sqlMapping": {}
    }

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

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

Multimedia
nameSQL Backend (общая настройка).mp4