Skip to content

Базы через JDBC ​

Официальный плагин Базы через JDBC добавляет базы, для которых в QueryLane нет встроенного драйвера. Он работает с ними через их JDBC-драйверы, поэтому подключение к Oracle или Snowflake работает в обозревателе, редакторе запросов, просмотре таблиц, импорте, экспорте и задачах так же, как подключение к PostgreSQL.

БазаК чему подключается
OracleOracle Database по имени сервиса
IBM Db2Db2 для Linux, UNIX и Windows
SnowflakeАккаунт и хранилище Snowflake
DatabricksSQL-хранилище или кластер с персональным токеном доступа
Google BigQueryПроект с ключом сервисного аккаунта
TeradataTeradata Vantage
Apache HiveHiveServer2
Apache Spark SQLThrift-сервер Spark
FirebirdСервер Firebird
TrinoКластеры Trino и Starburst
H2Файл базы H2
Свой JDBC-драйверЛюбая база, jar-файл JDBC-драйвера которой у вас есть

Плагину нужен QueryLane 1.4.0 или новее, он запрашивает Доступ к сети, Скачивание компонентов, Запуск программ и Файлы пользователя.

Установка плагина ​

  1. Откройте Настройки > Плагины и установите Базы через JDBC. Подробнее в разделе Работа с плагинами.
  2. Дождитесь, пока статус пройдёт Установка компонентов и Подготовка к работе. Плагин скачивает среду Java, Eclipse Temurin 21, с сайта Adoptium и сверяет её с контрольной суммой, которую публикует Adoptium, поэтому компьютер должен быть в сети. Если сеть работает через прокси, выберите его в Настройки > Обновления > Режим прокси: среда Java и драйверы скачиваются через него.

Если скачать не удалось, страница плагина покажет ошибку и кнопку Подготовить, чтобы попробовать снова. Среда Java и драйверы лежат в папке плагина и удаляются вместе с ним, поэтому устанавливать Java на компьютер не нужно.

Новое подключение ​

  1. В Подключения > Источники данных нажмите + (Добавить источник).
  2. Выберите базу или найдите её в поле Поиск или строка подключения. Базы через JDBC стоят в тех же группах, что и встроенные СУБД, а свой драйвер находится в Другие базы.
  3. Введите Название подключения и заполните поля базы на вкладке Основное, они перечислены ниже.
  4. Прочитайте лицензию драйвера по ссылке и включите Принимаю лицензию драйвера.
  5. Нажмите Тестировать, затем Создать.

При первом подключении QueryLane скачивает драйвер с Maven Central и сверяет его с контрольной суммой, записанной в плагине, поэтому изменённый файл не пройдёт проверку. У каждой базы свой драйвер, и скачивается он только после того, как вы приняли его лицензию, через тот же прокси, что и плагин. Драйверы скачиваются через HTTP-прокси, а если прокси спрашивает пароль, укажите имя и пароль в его адресе. Лицензия Teradata разрешает драйвер только с лицензированной базой Teradata, а для Db2 for z/OS и IBM i нужна ещё лицензия Db2 Connect.

БазаПоля
OracleХост, Порт (1521), Имя сервиса, например FREEPDB1, Пользователь, Пароль
IBM Db2Хост, Порт (50000), База, Пользователь, Пароль
SnowflakeАккаунт, например myorg-myaccount, Хранилище, База, Схема, Роль, Пользователь, Пароль
DatabricksИмя сервера, HTTP-путь из параметров подключения SQL-хранилища, Токен доступа, Каталог, Схема
Google BigQueryID проекта, Набор данных по умолчанию, Ключ сервисного аккаунта: JSON-файл ключа сервисного аккаунта
TeradataХост, Порт (1025), База по умолчанию, Пользователь, Пароль
Apache Hive, Apache Spark SQLХост, Порт (10000), База, Пользователь, Пароль
FirebirdХост, Порт (3050), База: путь на сервере или псевдоним, Пользователь, Пароль
TrinoХост, Порт (8080), Каталог, Схема, Пользователь, Пароль
H2Файл базы, Создать файл, если его нет, Пользователь, Пароль

У каждой базы на вкладке Дополнительно есть ещё JDBC URL и Свойства драйвера. Если указан URL, он заменяет поля выше, а свойства пишутся по одному key=value в строке, например ssl=true. Oracle, Db2, Teradata, Hive, Spark SQL, Firebird и Trino подключаются и через SSH-туннель.

Пароли, токены и другие секретные поля хранятся в зашифрованном хранилище, как у любого подключения. См. Где хранятся пароли.

Свой драйвер ​

Свой JDBC-драйвер подключает любую базу, у которой есть JDBC-драйвер:

  • Jar драйвера: путь к драйверу или несколько jar-файлов через запятую;
  • Класс драйвера, например com.example.jdbc.Driver;
  • JDBC URL, например jdbc:example://host:port/database;
  • Пользователь, Пароль и Свойства драйвера.

С таким драйвером QueryLane пользуется стандартными метаданными JDBC и стандартным SQL. Обозреватель, запросы, просмотр таблиц и экспорт работают с большинством драйверов, а плана запроса нет.

Что работает ​

Подключения через JDBC работают как встроенные:

  • обозреватель с каталогами, схемами, таблицами и представлениями, свойства объектов с колонками, ключами и DDL;
  • редактор запросов с подсказками, результаты таблицей или JSON и остановка выполняемого запроса;
  • просмотр таблиц с фильтрами, сортировкой и страницами, правка строк в таблицах с первичным ключом;
  • создание, переименование и удаление таблиц, импорт и экспорт;
  • SQL-шаги в задачах и схема базы для ассистента и агентов.

План показывает план запроса во всех базах, кроме BigQuery и своего драйвера. В Db2 для плана нужны таблицы EXPLAIN, создайте их один раз командой CALL SYSPROC.SYSINSTALLOBJECTS('EXPLAIN', 'C', NULL, CURRENT SCHEMA).

У некоторых баз есть свои ограничения:

  • Hive и Spark SQL меняют строки только в таблицах, которые это умеют, например в таблицах Hive ACID или Delta, и у них нет первичных ключей, по которым можно править строки.
  • Trino, Hive и Spark SQL фиксируют каждую команду отдельно, поэтому изменение или импорт, прерванные на середине, сохраняют то, что успели записать до ошибки.
  • Firebird не умеет переименовывать таблицы.

Все подключения через JDBC используют один процесс Java. Он запускается с первым подключением и завершается через пять минут после того, как закрылось последнее.

Агенты с доступом только на чтение ​

При Только чтение в блоке Агенты подключения QueryLane в любой базе отклоняет команды, которые меняют данные или структуру, см. Доступ агентов. Некоторые базы добавляют вторую защиту:

  • Oracle, Firebird и Trino выполняют такие запросы в транзакции только для чтения, и запись отклоняет сама база.
  • В Db2 транзакции только для чтения нет, поэтому QueryLane выполняет такие запросы в транзакции и всегда её откатывает.
  • У Snowflake, Databricks, BigQuery, Teradata, Hive, Spark SQL, H2 и своего драйвера есть только проверка команд. Блок Агенты об этом предупреждает, и настоящей границей там служит логин, который может только читать.