Перейти к основному содержимому

Настройка Starburst/Trino

Файл profiles.yml предназначен только для пользователей dbt Core

Если вы используете dbt Cloud, вам не нужно создавать файл profiles.yml. Этот файл предназначен только для пользователей dbt Core. Чтобы подключить вашу платформу данных к dbt Cloud, обратитесь к разделу О платформах данных.

  • Поддерживается: 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 Cloud: Supported
  • Минимальная версия платформы данных: n/a

Установка dbt-trino

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация 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.

ПолеПримерОписание
hostmycluster.mydomain.com

Формат для Starburst Galaxy:
  • mygalaxyaccountname-myclustername.trino.galaxy.starburst.io
Имя хоста вашего кластера.

Не включайте префикс http:// или https://.
databasemy_postgres_catalogИмя каталога в вашем кластере.
schemamy_schemaИмя схемы в каталоге вашего кластера.

Не рекомендуется использовать имена схем с заглавными или смешанными буквами.
port443Порт для подключения к вашему кластеру. По умолчанию это 443 для кластеров с включенным TLS.
userФормат для Starburst Enterprise или Trino:
  • user.name
  • user.name@mydomain.com

Формат для Starburst Galaxy:
  • user.name@mydomain.com/role
Имя пользователя (учетной записи) для входа в ваш кластер. При подключении к кластерам Starburst Galaxy вы должны включить роль пользователя в качестве суффикса к имени пользователя.

Роли в Starburst Enterprise

Если вы подключаетесь к кластеру Starburst Enterprise с включенными встроенными средствами управления доступом, необходимо указать роль, используя формат, описанный в разделе Дополнительные параметры. Если роль не указана, будет использована роль по умолчанию для предоставленного имени пользователя.

Схемы и базы данных

При выборе каталога и схемы убедитесь, что у пользователя есть права на чтение и запись для обоих. Этот выбор не ограничивает вашу возможность выполнять запросы к каталогу. Вместо этого они служат местоположением по умолчанию для материализации таблиц и представлений. Кроме того, коннектор Trino, используемый в каталоге, должен поддерживать создание таблиц. Это значение по умолчанию можно изменить позже в вашем проекте dbt.

Дополнительные параметры

Следующие поля профиля являются необязательными для настройки. Они позволяют настроить сессию вашего кластера и dbt для вашего подключения.

Поле профиляПримерОписание
threads8Сколько потоков должен использовать dbt (по умолчанию 1)
rolessystem: analystРоли каталога могут быть установлены в необязательном параметре roles с использованием следующего формата: catalog: role.
session_propertiesquery_max_run_time: 4hУстанавливает свойства сессии Trino, используемые в подключении. Выполните SHOW SESSION, чтобы увидеть доступные опции
prepared_statements_enabledtrue или falseВключить использование подготовленных операторов Trino (используется в командах dbt seed) (по умолчанию: true)
retries10Настройте, сколько раз все операции с базой данных будут повторяться при возникновении проблем с подключением (по умолчанию: 3)
timezoneEurope/BrusselsЧасовой пояс для сессии Trino (по умолчанию: локальный часовой пояс на стороне клиента)
http_headersX-Trino-Client-Info: dbt-trinoHTTP-заголовки для отправки вместе с запросами к Trino, указанные в виде YAML-словаря пар (заголовок, значение).
http_schemehttps или httpHTTP-схема для использования в запросах к Trino (по умолчанию: http, или https, если kerberos, ldap или jwt)

Параметры аутентификации

Методы аутентификации, поддерживаемые dbt Core:

  • ldap — LDAP (имя пользователя и пароль)
  • kerberos — Kerberos
  • jwt — JSON Web Token (JWT)
  • certificate — Аутентификация на основе сертификатов
  • oauth — Открытая аутентификация (OAuth)
  • oauth_console — Открытая аутентификация (OAuth) с URL аутентификации, выводимым в консоль
  • none — Нет, без аутентификации

Установите поле method на метод аутентификации, который вы собираетесь использовать для подключения. Для общего введения в аутентификацию в Trino см. Trino Security: Authentication types.

Нажмите на один из этих методов аутентификации для получения более подробной информации о том, как настроить ваш профиль подключения. Каждая вкладка также включает пример конфигурационного файла profiles.yml для вашего ознакомления.

Следующая таблица перечисляет параметры аутентификации для настройки LDAP.

Для получения дополнительной информации обратитесь к LDAP аутентификация в документации Trino.

Поле профиляПримерОписание
methodldapУстановите LDAP в качестве метода аутентификации.
userФормат для Starburst Enterprise или Trino:
  • user.name
  • user.name@mydomain.com

Формат для Starburst Galaxy:
  • user.name@mydomain.com/role
Имя пользователя (учетной записи) для входа в ваш кластер. При подключении к кластерам Starburst Galaxy вы должны включить роль пользователя в качестве суффикса к имени пользователя.
passwordabc123Пароль для аутентификации.
impersonation_user (необязательно)impersonated_tomПереопределите предоставленное имя пользователя. Это позволяет вам выдавать себя за другого пользователя.

Пример profiles.yml для LDAP

~/.dbt/profiles.yml
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]
0