JDBC драйвер#

Пользователи CedrusData могут использовать оригинальный JDBC драйвер Trino для подключения к кластеру из Java-приложений и программ, которые поддерживают JDBC.

Ниже приведена документация JDBC драйвера Trino.

Требования#

  • JDBC драйвер Trino требует Java версии 8 и выше.

  • Все пользователи, которые подключаются к CedrusData через JDBC драйвер, должны иметь доступ на чтение к схеме system.jdbc.

Установка#

JDBC драйвер Trino представляет собой JAR-файл, который вы можете скачать из Maven Central или получить из архива CedrusData из директории jdbc/.

После получения JDBC драйвера, добавьте его в ваше приложение. Процедура регистрации зависит от приложения. Если вы регистрируете драйвер в стороннем приложении (например, Apache Superset или Tableau), вам необходимо следовать инструкции по установке JDBC драйверов для данного приложения.

Если вы разрабатываете собственное Java-приложение, вам необходимо добавить JAR файл в classpath. Например, если вы используете систему сборки Maven, добавьте следующую зависимость к своему проекту:

<dependency>
    <groupId>io.trino</groupId>
    <artifactId>trino-jdbc</artifactId>
    <version>406</version>
</dependency>

Подключение#

После того, как JDBC драйвер зарегистрирован в приложении, вы можете использовать его для подключения к CedrusData.

JDBC драйвер Trino поддерживает следующие форматы URL, где host:port это адрес coordinator узла:

jdbc:trino://host:port
jdbc:trino://host:port/catalog
jdbc:trino://host:port/catalog/schema

Вы можете указать в URL дополнительные параметры конфигурации в формате key=value. Полный список доступных параметров конфигурации приведен ниже.

jdbc:trino://host:port?key1=value2&key2=value2
jdbc:trino://host:port/catalog?key1=value2&key2=value2
jdbc:trino://host:port/catalog/schema?key1=value2&key2=value2

JDBC драйвер Trino требует, что бы при подключении всегда было указано имя пользователя, даже если безопасность CedrusData отключена. В противном случае вы получите следующую ошибку:

Authentication failed: Basic authentication or X-Trino-User must be sent

Ниже приведен пример Java-кода для подключения к coordinator узлу, запущенному на локальном компьютере на порту 8080, с использованием каталога tpch и схемы sf1 по умолчанию:

// Передача параметров через объект Properties.
String url = "jdbc:trino://localhost:8080/tpch/sf1";
Properties properties = new Properties();
properties.setProperty("user", "test");
Connection connection = DriverManager.getConnection(url, properties);

// Передача параметров через URL.
String url = "jdbc:trino://localhost:8080/tpch/sf1?user=test";
Connection connection = DriverManager.getConnection(url);

Примечание

Современные приложения обычно не требуют имя класса JDBC драйвера. Если ваше приложение запрашивает имя класса JDBC драйвера, используйте io.trino.jdbc.TrinoDriver.

Параметры подключения#

Общие параметры#

Имя

Описание

user

Имя пользователя СedrusData. Если безопасность CedrusData отключена, необходимо предоставить произвольное непустое значение.

password

Пароль пользователя СedrusData.

sessionUser

Имя пользователя сессии для имперсонации.

httpProxy

Адрес HTTP proxy в формате host:port. Например: localhost:8888.

socksProxy

Адрес SOCKS proxy в формате host:port. Например: localhost:1080.

clientInfo

Дополнительная информация о клиенте.

clientTags

Теги клиента для выбор групп ресурсов. Например: abc,xyz

traceToken

Токен трассировки для сопоставления запросов между системами.

source

Имя источника запроса к CedrusData. Данный параметр имеет приоритет перед ApplicationName и applicationNamePrefix.

applicationNamePrefix

Префикс, который будет добавлен к свойству ApplicationName, которое используется для указания имени источника запроса к CedrusData, если параметр source не установлен. Если ни ApplicationName, ни source не установлены, имя источника будет автоматически установлено в trino-jdbc.

accessToken

Токен доступа для JWT.

extraCredentials

Extra credentials для подключения к источникам данных. Представляет собой список пар ключ-значение. Например, строка foo:bar;abc:xyz создает два extra credential c именами foo и abc и значениями bar и xyz, соответственно.

roles

Роли авторизации для работы с каталогами CedrusData. Представляет собой список пар ключ-значение в формате каталог:роль. Например, значение catalog1:roleA;catalog2:roleB задает роль roleA для каталога catalog1 и роль roleB для каталога catalog2.

sessionProperties

Параметры сессии SQL запросов CedrusData. Представляет собой список пар ключ-значение. Например, abc:xyz;example.foo:bar задает глобальное свойство abc со значением xyz и свойство foo со значением bar для каталога example.

externalAuthentication

Установите в true для использования внешней аутентификации с помощью OAuth 2.0 аутентификация. Используйте браузер для аутентификации в identity provider (IdP), был сконфигурирован для координатора CedrusData.

externalAuthenticationTokenCache

Позволяет переиспользовать внешние токены аутентификации между несколькими JDBC подключениями одного и того же пользователя до тех пора, пока не произойдет инвалидация токена (например, при перезапуске клиента). Допустимые значения: NONE (значение по умолчанию) - переиспользование токенов отключено; MEMORY - переиспользование токен включено. Если JDBC драйвер используют несколько пользователей, первый зарегистрированный токен аутентифицирует всех пользователей.

disableCompression

Отключить компрессию передаваемых данных.

assumeLiteralUnderscoreInMetadataCallsForNonConformingClients

Когда параметр включен, паттерны имен, передаваемые в методы DatabaseMetaData интерпретируются как символ _. Используйте данный параметр для приложений, которые не используют экранирование имен таблиц и схем при их использовании в качестве паттернов в методах DatabaseMetaData.

Параметры SSL#

Имя

Описание

SSL

Использовать TLS/HTTPS для подключения.

SSLVerification

Имя метода TLS верификации. Допустимые значения: FULL (значение по умолчанию), CA, NONE. В режиме FULL TLS верификация осуществляется в полном объеме. В режиме CA осуществляется только верификация CA, допустимо несовпадение hostname. В режиме NONE верификация отключена.

SSLKeyStorePath

Путь к файлу PEM или JKS, который содержит доверенный сертификат для подключения к кластеру CedrusData. Используйте данный параметр только при подключении к кластеру CedrusData в котором включена certificate authentication.

SSLKeyStorePassword

Пароль KeyStore (при наличии).

SSLKeyStoreType

Тип KeyStore. Значение по умолчанию равно значению параметра Java keystore.type или jks в случае отсутствия первого.

SSLTrustStorePath

Путь к файлу TrustStore для проверки серверных HTTPS сертификатов.

SSLTrustStorePassword

Пароль к файлу TrustStore.

SSLTrustStoreType

Тип TrustStore. Значение по умолчанию равно значению параметра Java keystore.type или jks в случае отсутствия первого.

SSLUseSystemTrustStore

Автоматически использовать системный TrustStore операционной системы. Для Windows используется TrustStore Windows-ROOT. Для macOS используется TrustStore KeychainStore. Для других операционных систем используется TrustStore Java по умолчанию. Спецификация TrustStore может быть переопределена с помощью параметра SSLTrustStoreType.

Параметры Kerberos#

Имя

Описание

KerberosRemoteServiceName

Kerberos service name координатора CedrusData. Данный параметр необходим для аутентификации Kerberos.

KerberosPrincipal

Principal, который будет использован для аутентификации в координаторе CedrusData.

KerberosUseCanonicalHostname

Использовать канонический hostname координатора CedrusData для Kerberos service principal путем преобразования текущего hostname в IP-адрес и последующего обратного DNS lookup для этого IP адреса. Включено по умолчанию.

KerberosServicePrincipalPattern

Kerberos service principal паттерн координатора CedrusData. Значение по умолчанию ${SERVICE}@${HOST}. ${SERVICE} будет заменен на значение параметра KerberosRemoteServiceName, ${HOST} будет заменен на hostname координатора (с использованием каноникализации hostname, если параметр KerberosUseCanonicalHostname включен).

KerberosConfigPath

Путь к файлу конфигурации Kerberos.

KerberosKeytabPath

Путь к keytab файлу Kerberos.

KerberosCredentialCachePath

Путь к Kerberos credential cache.

KerberosDelegation

Установите значение true, что бы использовать токен из текущего контекста Kerberos. Это позволяет клиенту использовать аутентификацию Kerberos без передачи Keytab или credential cache. Значение по умолчанию: false.