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

Настройка 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.

ПолеПримерОписание
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 вы должны включить роль пользователя в качестве суффикса к имени пользователя.
Loading table...

Роли в 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)
Loading table...

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

Методы аутентификации, которые поддерживает 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Переопределите предоставленное имя пользователя. Это позволяет вам выдавать себя за другого пользователя.
Loading table...

Пример 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
Loading