Настройка Starburst/Trino
profiles.yml предназначен только для dbt Core и dbt FusionЕсли вы используете dbt platform, вам не нужно создавать файл profiles.yml. Этот файл требуется только в том случае, если вы используете dbt Core или dbt Fusion локально. Чтобы узнать больше о требованиях к Fusion, см. раздел Supported features. Чтобы подключить вашу платформу данных к dbt, см. раздел About data platforms.
- Поддерживается: Starburst Data, Inc.
- Авторы: Marius Grama, Przemek Denkiewicz, Michiel de Smet, Damian Owsianny
- Репозиторий GitHub: starburstdata/dbt-trino
- Пакет PyPI:
dbt-trino - Канал в Slack: #db-starburst-and-trino
- Поддерживаемая версия dbt Core: v0.20.0 и новее
- Поддержка dbt: Supported
- Минимальная версия платформы данных: n/a
Установка dbt-trino
Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
python -m pip install dbt-core dbt-trino
Настройка dbt-trino
Конфигурацию, специфичную для Starburst/Trino, см. на странице настроек Starburst/Trino.
Подключение к Starburst/Trino
Чтобы подключиться к платформе данных с помощью dbt Core, создайте соответствующие ключи/значения profile и target в YAML-файле profiles.yml для ваших кластеров Starburst/Trino. Этот YAML-файл dbt находится в директории .dbt/ в вашем домашнем каталоге. Для получения дополнительной информации обратитесь к Профили подключения и profiles.yml.
Параметры для настройки подключения предназначены для кластеров Starburst Enterprise, Starburst Galaxy и Trino. Если не указано иное, под "кластером" подразумевается любой из этих продуктов.
Параметры хоста
Следующие поля профиля всегда обязательны, за исключением user, который также обязателен, если вы не используете методы аутентификации oauth, oauth_console, cert или jwt.
| Loading table... |
Роли в Starburst Enterprise
Если вы подключаетесь к кластеру Starburst Enterprise со включёнными встроенными контролями доступа, вы должны указать роль в формате, описанном в разделе Дополнительные параметры. Если роль не указана, используется роль по умолчанию для указанного имени пользователя.
Схемы и базы данных
При выборе каталога и схемы убедитесь, что у пользователя есть права на чтение и запись для обоих. Этот выбор не ограничивает вашу возможность выполнять запросы к каталогу. Вместо этого они служат местоположением по умолчанию для материализации таблиц и представлений. Кроме того, коннектор Trino, используемый в каталоге, должен поддерживать создание таблиц. Это значение по умолчанию можно изменить позже в вашем проекте dbt.
Дополнительные параметры
Следующие поля профиля являются необязательными для настройки. Они позволяют настроить сессию вашего кластера и dbt для вашего подключения.
| Loading table... |
Параметры аутентификации
Методы аутентификации, которые поддерживает dbt Core:
ldap— LDAP (имя пользователя и пароль)kerberos— Kerberosjwt— JSON Web Token (JWT)certificate— Аутентификация на основе сертификатовoauth— Открытая аутентификация (OAuth)oauth_console— Открытая аутентификация (OAuth) с URL аутентификации, выводимым в консольnone— Нет, без аутентификации
Установите поле method на метод аутентификации, который вы собираетесь использовать для подключения. Для общего введения в аутентификацию в Trino см. Trino Security: Authentication types.
Нажмите на один из этих методов аутентификации для получения более подробной информации о том, как настроить ваш профиль подключения. Каждая вкладка также включает пример конфигурационного файла profiles.yml для вашего ознакомления.
- LDAP
- Kerberos
- JWT
- Certificate
- OAuth
- OAuth (console)
- None
Следующая таблица перечисляет параметры аутентификации для настройки LDAP.
Для получения дополнительной информации обратитесь к LDAP аутентификация в документации Trino.
| Loading table... |
Пример profiles.yml для LDAP
trino:
target: dev
outputs:
dev:
type: trino
method: ldap
user: [user]
password: [password]
host: [hostname]
database: [database name]
schema: [your dbt schema]
port: [port number]
threads: [1 or more]
Следующая таблица перечисляет параметры аутентификации для настройки Kerberos.
Для получения дополнительной информации обратитесь к Kerberos аутентификация в документации Trino.
| Loading table... |
Пример profiles.yml для Kerberos
trino:
target: dev
outputs:
dev:
type: trino
method: kerberos
user: commander
keytab: /tmp/trino.keytab
krb5_config: /tmp/krb5.conf
principal: trino@EXAMPLE.COM
host: trino.example.com
port: 443
database: analytics
schema: public
Следующая таблица перечисляет параметры аутентификации для настройки JSON Web Token.
Для получения дополнительной информации обратитесь к JWT аутентификация в документации Trino.
| Loading table... |
Пример profiles.yml для JWT
trino:
target: dev
outputs:
dev:
type: trino
method: jwt
jwt_token: [my_long_jwt_token_string]
host: [hostname]
database: [database name]
schema: [your dbt schema]
port: [port number]
threads: [1 or more]
Следующая таблица перечисляет параметры аутентификации для настройки сертификатов.
Для получения дополнительной информации обратитесь к Аутентификация на основе сертификатов в документации Trino.
| Loading table... |
Пример profiles.yml для сертификатов
trino:
target: dev
outputs:
dev:
type: trino
method: certificate
cert: [path/to/cert_file]
client_certificate: [path/to/client/cert]
client_private_key: [path to client key]
database: [database name]
schema: [your dbt schema]
port: [port number]
threads: [1 or more]
Единственный параметр аутентификации для настройки OAuth 2.0 — это method: oauth. Если вы используете Starburst Enterprise или Starburst Galaxy, вы должны включить OAuth 2.0 в Starburst, прежде чем сможете использовать этот метод аутентификации.
Для получения дополнительной информации обратитесь как к OAuth 2.0 аутентификация в документации Trino, так и к README для клиента Trino на Python.
Рекомендуется установить keyring для кэширования токена OAuth 2.0 между несколькими вызовами dbt, выполнив python -m pip install 'trino[external-authentication-token-cache]'. Пакет keyring не устанавливается по умолчанию.
Пример profiles.yml для OAuth
sandbox-galaxy:
target: oauth
outputs:
oauth:
type: trino
method: oauth
host: bunbundersders.trino.galaxy-dev.io
catalog: dbt_target
schema: dataders
port: 443
Единственный параметр аутентификации для настройки OAuth 2.0 — это method: oauth_console. Если вы используете Starburst Enterprise или Starburst Galaxy, вы должны включить OAuth 2.0 в Starburst, прежде чем сможете использовать этот метод аутентификации.
Для получения дополнительной информации обратитесь как к OAuth 2.0 аутентификация в документации Trino, так и к README для клиента Trino на Python.
Единственное отличие между oauth_console и oauth заключается в следующем:
oauth— URL аутентификации автоматически открывается в браузере.oauth_console— URL выводится в консоль.
Рекомендуется установить keyring для кэширования токена OAuth 2.0 между несколькими вызовами dbt, выполнив python -m pip install 'trino[external-authentication-token-cache]'. Пакет keyring не устанавливается по умолчанию.
Пример profiles.yml для OAuth
sandbox-galaxy:
target: oauth_console
outputs:
oauth:
type: trino
method: oauth_console
host: bunbundersders.trino.galaxy-dev.io
catalog: dbt_target
schema: dataders
port: 443
Вам не нужно настраивать аутентификацию (method: none), однако dbt Labs настоятельно не рекомендует использовать это в реальных приложениях. Его использование предназначено только для игрушечных целей (например, для экспериментов), таких как локальные примеры, например, запуск Trino и dbt полностью в одном контейнере Docker.
Пример profiles.yml без аутентификации
trino:
target: dev
outputs:
dev:
type: trino
method: none
user: commander
host: trino.example.com
port: 443
database: analytics
schema: public