Драйвер JDBC#
Драйвер JDBC Trino позволяет пользователям получать доступ к Trino из приложений на Java, а также из других приложений не на Java, работающих в JVM. Драйвер JDBC используют как настольные, так и серверные приложения, например инструменты отчетности и разработки баз данных.
Драйвер JDBC использует Клиентский протокол поверх HTTP/HTTPS для взаимодействия с координатором в кластере.
Требования#
Драйвер JDBC Trino предъявляет следующие требования:
Java версии 11 или выше. Java 22 или выше рекомендуется для лучшей производительности распаковки.
Всем пользователям, подключающимся к Trino с помощью драйвера JDBC, должен быть предоставлен доступ к запросам таблиц в схеме
system.jdbc.Сетевой доступ по HTTP/HTTPS к координатору кластера Trino.
Сетевой доступ к настроенному объектному хранилищу, если включен Протокол спулинга.
Версия драйвера JDBC должна совпадать с версией кластера Trino или быть новее. Более старые версии обычно работают, но регулярно тестируется только часть комбинаций. Версии до 350 не поддерживаются.
Установка#
Скачайте trino-jdbc-latest.jar и добавьте его в classpath вашего Java-приложения.
Драйвер также доступен из Maven Central:
<dependency>
<groupId>io.trino</groupId>
<artifactId>trino-jdbc</artifactId>
<version>latest</version>
</dependency>
Рекомендуется использовать последнюю версию драйвера JDBC. Список всех
доступных версий можно найти в Maven Central Repository.
Перейдите в каталог нужной версии и выберите для скачивания файл
trino-jdbc-xxx.jar, где xxx — номер версии.
После скачивания необходимо добавить JAR-файл в каталог classpath пользователей на системах, где они будут обращаться к Trino.
После скачивания драйвера JDBC и добавления его в classpath обычно требуется перезапустить приложение, чтобы оно распознало новый драйвер. Затем, в зависимости от приложения, может потребоваться вручную зарегистрировать и настроить драйвер.
Регистрация и настройка драйвера#
Обычно приложения автоматически загружают драйверы после добавления их в classpath. Если ваше приложение этого не делает, например некоторые GUI-редакторы SQL, прочитайте этот раздел. Шаги регистрации драйвера JDBC в UI или командной строке зависят от конкретного используемого приложения. Обратитесь к документации вашего приложения.
После регистрации также необходимо настроить сведения о подключении, как описано в следующем разделе.
Подключение#
Когда драйвер загружен, зарегистрирован и настроен, можно подключаться к Trino из приложения. Поддерживаются следующие форматы JDBC URL:
jdbc:trino://host:port
jdbc:trino://host:port/catalog
jdbc:trino://host:port/catalog/schema
Значение port необязательно, если Trino доступен на HTTP-порту по умолчанию
80 или при SSL=true на HTTPS-порту по умолчанию 443.
Ниже приведен пример JDBC URL для создания подключения:
jdbc:trino://example.net:8080/hive/sales
Этот пример JDBC URL указывает экземпляр Trino, работающий на порту 8080 на
example.net, с заданными каталогом hive и схемой sales.
Note
Обычно имя класса драйвера JDBC автоматически настраивается клиентом. Если это
не так, используйте io.trino.jdbc.TrinoDriver везде, где требуется имя класса
драйвера.
Параметры подключения#
Драйвер поддерживает различные параметры, которые можно задавать как параметры
URL или как свойства, передаваемые в DriverManager. Следующие два примера
эквивалентны:
// свойства
String url = "jdbc:trino://example.net:8080/hive/sales";
Properties properties = new Properties();
properties.setProperty("user", "test");
properties.setProperty("password", "secret");
properties.setProperty("SSL", "true");
Connection connection = DriverManager.getConnection(url, properties);
// параметры URL
String url = "jdbc:trino://example.net:8443/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);
Эти способы можно смешивать: часть параметров можно указать в URL, а другие — через свойства. Однако один и тот же параметр нельзя указывать обоими способами.
Справочник параметров#
Имя |
Описание |
|---|---|
|
Имя пользователя для аутентификации и авторизации. |
|
Пароль для LDAP-аутентификации. |
|
Переопределение имени пользователя сеанса, используемое для имперсонации. |
|
Хост и порт SOCKS-прокси. Пример: |
|
Хост и порт HTTP-прокси. Пример: |
|
Дополнительная информация о клиенте. |
|
Клиентские теги для выбора групп ресурсов. Пример: |
|
Задает SQL path по умолчанию для сеанса. Полезно для задания расположения каталога и схемы для Catalog user-defined functions. |
|
Токен трассировки для корреляции запросов между системами. |
|
Имя источника для запроса Trino. Этот параметр следует предпочитать
|
|
Префикс, добавляемый к любому указанному свойству клиентской информации
|
|
Токен доступа JWT для аутентификации на основе токена. |
|
Установите |
|
Метод проверки TLS. Есть три режима: |
|
Используйте только при подключении к кластеру Trino, где включена аутентификация по сертификату. Задает путь к файлу PEM или JKS, который должен содержать сертификат, доверенный кластером Trino, к которому выполняется подключение. |
|
Пароль для KeyStore, если он есть. |
|
Тип KeyStore. Тип по умолчанию предоставляется свойством безопасности Java
|
|
Установите |
|
Расположение файла Java TrustStore, используемого для проверки сертификатов HTTPS-сервера. |
|
Пароль для TrustStore. |
|
Тип TrustStore. Тип по умолчанию предоставляется свойством безопасности Java
|
|
Установите |
|
Ожидаемое имя хоста в сертификате, представленном сервером Trino. Применимо только при включенной полной проверке SSL. |
|
Имя службы Kerberos координатора Trino. Этот параметр обязателен для аутентификации Kerberos. |
|
Principal, используемый при аутентификации на координаторе Trino. |
|
Использовать каноническое имя хоста координатора Trino для principal службы Kerberos: сначала имя хоста разрешается в IP-адрес, затем выполняется обратный DNS-поиск для этого IP-адреса. Включено по умолчанию. |
|
Шаблон principal службы Kerberos координатора Trino. По умолчанию —
|
|
Файл конфигурации Kerberos. |
|
Файл keytab Kerberos. |
|
Кэш учетных данных Kerberos. |
|
Установите |
|
Дополнительные учетные данные для подключения к внешним службам, заданные
как список пар ключ-значение. Например, |
|
Роли авторизации для каталогов, заданные как список пар ключ-значение для
каталога и роли. Например, |
|
Свойства сеанса для системы и каталогов, заданные как список пар
ключ-значение. Например, |
|
HTTP-заголовки, добавляемые к аутентифицированным HTTP-запросам, заданные
как список пар ключ-значение. Например, |
|
Установите |
|
Позволяет разделять токены внешней аутентификации между разными
подключениями для одного и того же аутентифицированного пользователя, пока
кэш не будет инвалидирован, например при перезапуске клиента или
перезагрузке драйвера JDBC загрузчиком классов. По умолчанию отключено со
значением |
|
Отключать ли HTTP-сжатие. По умолчанию — |
|
Должен ли клиент отклонять перенаправления на localhost, link-local или
site-local IP-адреса. По умолчанию — |
|
Если включено, шаблоны имен, передаваемые в методы |
|
Задает часовой пояс сеанса с помощью переданного часового пояса. По умолчанию используется часовой пояс JVM, запускающей драйвер JDBC. |
|
По умолчанию — |
|
Задает кодировку при использовании протокола спулинга.
Допустимые значения: JSON со сжатием Zstandard |
|
По умолчанию — |
Протокол спулинга#
Драйвер JDBC Trino автоматически использует протокол спулинга для повышения пропускной способности при клиентском взаимодействии с повышенными требованиями к передаче данных, если в кластере настроен Протокол спулинга.
При необходимости используйте параметр encoding, чтобы настроить желаемую
кодировку, отличную от значения по умолчанию в кластере.
Процесс JVM, использующий драйвер JDBC, должен иметь сетевой доступ к объектному хранилищу спулинга.