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

Подключение Amazon Athena

Чтобы использовать подключение к Amazon Athena, ваши среды должны использовать поддерживаемый канал выпуска.

Подключите dbt к сервису интерактивных запросов Amazon Athena для создания проекта dbt. Ниже приведены обязательные и необязательные поля для настройки подключения к Athena:

ПолеВариантОписаниеТипОбязательное?Пример
AWS region nameregion_nameРегион AWS, в котором развернут ваш экземпляр AthenaStringRequiredeu-west-1
Database (catalog)databaseУкажите базу данных (Data Catalog), в которую будут собираться модели (только в нижнем регистре)StringRequiredawsdatacatalog
AWS S3 staging directorys3_staging_dirS3‑расположение для хранения результатов запросов Athena и метаданныхStringRequireds3://bucket/dbt/
Athena workgroupwork_groupИдентификатор workgroup в AthenaStringOptionalmy-custom-workgroup
Athena Spark workgroupspark_work_groupИдентификатор Athena Spark workgroup для запуска Python‑моделейStringOptionalmy-spark-workgroup
AWS S3 data directorys3_data_dirПрефикс для хранения таблиц, если он отличается от s3_staging_dir подключенияStringOptionals3://bucket2/dbt/
AWS S3 data naming conventions3_data_namingСпособ генерации путей к таблицам в s3_data_dirStringOptionalschema_table_unique
AWS S3 temp tables prefixs3_tmp_table_dirПрефикс для хранения временных таблиц, если он отличается от s3_data_dir подключенияStringOptionals3://bucket3/dbt/
Poll intervalpoll_intervalИнтервал в секундах для опроса статуса выполнения запросов в AthenaIntegerOptional5
Query retriesnum_retriesКоличество попыток повторного выполнения запроса в случае ошибкиIntegerOptional3
Boto3 retriesnum_boto3_retriesКоличество повторных попыток для запросов boto3 (например, при удалении файлов S3 для материализованных таблиц)IntegerOptional5
Iceberg retriesnum_iceberg_retriesКоличество повторных попыток выполнения iceberg commit‑запросов для исправления ICEBERG_COMMIT_ERRORIntegerOptional0

Учетные данные для разработки​

Введите ваши учетные данные для разработки (не для развертывания) с использованием следующих полей:

ПолеПараметрОписаниеТипОбязательностьПример
AWS Access Key IDaws_access_key_idИдентификатор ключа доступа пользователя, выполняющего запросыStringОбязательноAKIAIOSFODNN7EXAMPLE
AWS Secret Access Keyaws_secret_access_keyСекретный ключ доступа пользователя, выполняющего запросыStringОбязательноwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
СхемаschemaУкажите схему (базу данных Athena), в которой будут создаваться модели (только в нижнем регистре)StringОбязательноdbt
ПотокиthreadsIntegerНеобязательно3

Временные учетные данные​

Если вы предпочитаете не хранить долгосрочные AWS Access Key ID и AWS Secret Access Key пользователя IAM в dbt platform, вместо этого можно использовать aws_session_token, который входит в состав временных учетных данных AWS Security Token Service (STS). При таком подходе сохраняются долгосрочные разрешения пользователя или роли.

Чтобы использовать временные учетные данные:

  1. Введите AWS Access Key ID и AWS Secret Access Key в интерфейсе dbt platform:

  2. Поскольку в интерфейсе dbt platform нет поля aws_session_token, добавьте его с помощью расширенных атрибутов. В этом разделе описано, где их настраивать для сред развертывания и разработки.

    При настройке aws_session_token в разделе Extended attributes учитывайте, что имя ключа чувствительно к регистру и должно быть в точности aws_session_token.

    Например, можно использовать переменную окружения, чтобы не хранить токен в текстовом поле интерфейса:

    aws_session_token: '{{ env_var(''DBT_ENV_AWS_SESSION_TOKEN'') }}'
  3. Задайте значение DBT_ENV_AWS_SESSION_TOKEN:

    • Для профиля подключения среды развертывания задайте значение в столбце Project default. Для проверки подключения ссылки env_var(), используемые в профиле, требуют значения, заданного на уровне проекта.
    • Для среды разработки можно задать переменную для этой среды.

    Поскольку срок действия временных учетных данных ограничен, необходимо обновить учетные данные STS и значение переменной до истечения этого срока.

Нашли ошибку?

0
Loading