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

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