Trino

Редактировал(а) Ирина Сафонова 21.03.2024, 22:52

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


Поддерживается версия Trino 352 и выше. Укажите следующий формат строки подключения в поле SQLALCHEMY URI вкладки Базовая настройка:

trino://{username}:{password}@{hostname}:{port}/{catalog}

Узнайте про список доступных портов.

Если  используете Trino с docker на локальном компьютере, укажите следующий URL-адрес подключения:

trino://trino@host.docker.internal:8080

Способы аутентификации

Поддерживаются следующие способы аутентификации:

  • базовый,
  • через Kerberos,
  • через сертификат,
  • через JWT,
  • пользовательский.

Базовый способ аутентификации

Укажите имя пользователя/пароль в строке подключения или в поле Secure Extra в Advanced / Security.

Строка подключения:

trino://{username}:{password}@{hostname}:{port}/{catalog}

В поле Secure Extra:

{
    "auth_method": "basic",
    "auth_params": {
        "username": "<username>",
        "password": "<password>"
    }
}

Если указаны оба параметра, у поля Secure Extra всегда более высокий приоритет.

Аутентификация через Kerberos

Настройте поле Secure Extra:

{
    "auth_method": "kerberos",
    "auth_params": {
        "service_name": "superset",
        "config": "/path/to/krb5.config",
        ...
    }
}

Аутентификация через сертификат

Настройте поле Secure Extra:

{
    "auth_method": "certificate",
    "auth_params": {
        "cert": "/path/to/cert.pem",
        "key": "/path/to/key.pem"
    }
}

Аутентификация через JWT

Настройте auth_method и укажите токен в поле Secure Extra:

{
    "auth_method": "jwt",
    "auth_params": {
        "token": "<your-jwt-token>"
    }
}

Пользовательский способ аутентификации

Добавьте пользовательскую аутентификацию в список разрешений ALLOWED_EXTRA_AUTHENTICATIONS конфигурационного файла:

from your.module import AuthClass
from another.extra import auth_method

ALLOWED_EXTRA_AUTHENTICATIONS: Dict[str, Dict[str, Callable[..., Any]]] = {
    "trino": {
        "custom_auth": AuthClass,
        "another_auth_method": auth_method,
    },
}

Далее настройте поле Secure Extra:

{
    "auth_method": "custom_auth",
    "auth_params": {
        ...
    }
}

При необходимости используйте пользовательскую аутентификацию, предоставив ссылку на свой класс trino.auth.Authentication или фабричную функцию, возвращающую экземпляр Authentication) в auth_method.

См. также