Тип sql
При создании коннектора вам требуется задать значения для общих параметров коннектора и индивидуальных параметров подключения к базе данных.
Для коннектора на закладке Основные параметры вам требуется задать значения следующих параметров:
- Название (обязательно) – уникальное имя ресурса. Должно содержать от 1 до 128 символов Юникода.
- Тип (обязательно) – тип коннектора, sql.
- Тенант (обязательно) – название тенанта, которому принадлежит ресурс.
- Запрос по умолчанию (обязательно) – SQL-запрос, который выполняется при подключении к базе данных.
- Интервал запросов, сек. – интервал выполнения SQL-запросов. Указывается в секундах.
Значение по умолчанию: 10 секунд.
- Описание – описание ресурса: до 256 символов Юникода.
Для подключения к базе данных на закладке Основные параметры вам требуется задать значения следующих параметров:
- URL (обязательно) – секрет, в котором хранится список URL-адресов для подключения к базе данных.
При создании подключений могут некорректно обрабатываться строки с учетными данными, содержащими специальные символы. Если при создании подключения возникает ошибка, но вы уверены в том, что значения параметров корректны, укажите специальные символы в процентной кодировке.
- Столбец идентификатора (обязательно) – название столбца, содержащего идентификатор для каждой строки таблицы.
- Начальное значение идентификатора (обязательно) – значение в столбце идентификатора, по которому будет определена строка, с которой требуется начать считывание данных из SQL-таблицы.
- Запрос – поле для дополнительного SQL-запроса. Запрос, указанный в этом поле, выполняется вместо запроса по умолчанию.
- Интервал запросов, сек. – интервал выполнения SQL-запросов. Интервал, указанный в этом поле, используется вместо интервала, указанного по умолчанию для коннектора.
Указывается в секундах. Значение по умолчанию: 10 секунд.
Для коннектора на закладке Дополнительные параметры вам требуется задать значения следующих параметров:
- Кодировка символов – кодировка символов. Значение по умолчанию:
UTF-8
.KUMA конвертирует ответы SQL в кодировку UTF-8. Вы можете настроить SQL-сервер на отправку ответов в кодировке UTF-8 или выбрать их кодировку на стороне KUMA.
- Отладка – раскрывающийся список, в котором можно указать, будет ли включено логирование ресурса. По умолчанию указывается значение Выключено.
Поддерживаемые типы SQL и особенности их использования
Оператор UNION не поддерживается коннекторами типа SQL.
Поддерживаются следующие типы SQL:
- MSSQL
Примеры URL:
sqlserver://{user}:{password}@{server:port}/{instance_name}?database={database}
– (рекомендуемый вариант)sqlserver://{user}:{password}@{server}?database={database}
В качестве плейсхолдера в SQL-запросе используются символы
@p1
.Если вам требуется подключиться с доменными учетными данными, укажите имя учетной записи в формате
<домен>%5C<пользователь>
. Например:sqlserver://domain%5Cuser:password@ksc.example.com:1433/SQLEXPRESS?database=KAV
. - MySQL
Пример URL:
mysql://{user}:{password}@tcp({server}:{port})/{database}
В качестве плейсхолдера в SQL-запросе используются символ
?
. - PostgreSQL
Пример URL:
postgres://{user}:{password}@{server}/{database}?sslmode=disable
В качестве плейсхолдера в SQL-запросе используются символы
$1
. - CockroachDB
Пример URL:
postgres://{user}:{password}@{server}:{port}/{database}?sslmode=disable
В качестве плейсхолдера в SQL-запросе используются символы
$1
. - SQLite3
Пример URL:
sqlite3://file:{file_path}
В качестве плейсхолдера в SQL-запросе используется знак вопроса:
?
. - Oracle DB
Пример URL:
oracle://{user}/{password}@{server}:{port}/{service_name}
Используется синтаксис Easy Connect. В качестве плейсхолдера в SQL-запросе используется символы
:val
.При обращении к Oracle DB, если начальное значение идентификатора используется в формате datetime, в SQL-запрос нужно добавить преобразование даты с помощью функции Oracle
to_timestamp_tz
. Например,select * from connections where login_time > to_timestamp_tz(:val, 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
. В этом примереConnections
– это таблица Oracle DB, а значение переменной:val
берется из поля Начальное значение идентификатора, поэтому его требуется указывать в формате с timezone (например,2021-01-01T00:10:00+03:00
).Для обращения к Oracle DB необходимо установить пакет libaio1.
- Firebird SQL
Пример URL:
firebirdsql://{user}:{password}@{server}:{port}/{database}
В качестве плейсхолдера в SQL-запросе используется знак вопроса:
?
.
В SQL-запросах поддерживается последовательный запрос сведений из базы данных. Например, если в поле Запрос указать запрос select * from <название таблицы с данными> where id > <плейсхолдер>
, то при первом обращении к таблице в качестве значения плейсхолдера будет использоваться значение поля Начальное значение идентификатора. При этом в сервисе, в котором используется SQL-коннектор, сохраняется идентификатор последней прочитанной записи, и во время следующего обращения к базе данных в качестве значения плейсхолдера в запросе будет использоваться идентификатор этой записи.