# Подключение Athena к dbt v1

Локальная разработка

* **Поддерживается**: dbt Labs
* **Авторы**: dbt Labs
* **Репозиторий GitHub**: [dbt-labs/dbt-adapters](https://github.com/dbt-labs/dbt-adapters) [![](https://img.shields.io/github/stars/dbt-labs/dbt-adapters?style=for-the-badge)](https://github.com/dbt-labs/dbt-adapters)
* **Пакет PyPI**: `dbt-athena` [![](https://badge.fury.io/py/dbt-athena.svg)](https://badge.fury.io/py/dbt-athena)
* **Канал Slack**: [#db-athena](https://getdbt.slack.com/archives/C013MLFR7BQ)
* **Поддерживаемая версия dbt**: v1.3.0 и новее
* **Поддержка dbt**: Supported
* **Минимальная версия платформы данных**: engine version 2 and 3

## Установка dbt-athena

Установите адаптер с помощью \`pip\`: `python -m pip install dbt-athena`

## Настройка dbt-athena

Конфигурацию, специфичную для Athena, см. на странице [настроек Athena.](https://docs.getdbt.tech/reference/resource-configs/athena-configs.md)

`dbt-athena` против `dbt-athena-community`

`dbt-athena-community` был адаптером, поддерживаемым сообществом, до тех пор пока dbt Labs не взяла на себя его сопровождение в конце 2024 года. Сейчас и `dbt-athena`, и `dbt-athena-community` поддерживаются dbt Labs, однако `dbt-athena-community` фактически является лишь обёрткой над `dbt-athena`, опубликованной для обеспечения обратной совместимости.

## Подключение к Athena с помощью dbt-athena

Этот плагин не принимает учетные данные напрямую. Вместо этого [учетные данные определяются автоматически](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) на основе соглашений AWS CLI/boto3 и сохраненных данных для входа. Имя используемого профиля AWS можно настроить с помощью `aws_profile_name`. Кроме того, можно явно задать ключи учетных данных в профиле: `aws_access_key_id`, `aws_secret_access_key` и, для [временных учетных данных AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html), `aws_session_token` (имена должны совпадать в точности).

\~/.dbt/profiles.yml

```yaml
default:
  outputs:
    dev:
      type: athena
      s3_staging_dir: [s3_staging_dir]
      s3_data_dir: [s3_data_dir]
      s3_data_naming: [table_unique] # тип соглашения об именовании, используемый при записи в S3
      region_name: [region_name]
      database: [database name]
      schema: [dev_schema]
      aws_profile_name: [optional profile to use from your AWS shared credentials file.]
      threads: [1 or more]
      num_retries: [0 or more] # количество повторных попыток, выполняемых адаптером. По умолчанию 5
  target: dev
```

### Пример конфигурации

profiles.yml

```yaml
default:
  outputs:
    dev:
      type: athena
      s3_staging_dir: s3://dbt_demo_bucket/athena-staging/
      s3_data_dir: s3://dbt_demo_bucket/dbt-data/
      s3_data_naming: schema_table 
      region_name: us-east-1
      database: warehouse 
      schema: dev
      aws_profile_name: demo
      threads: 4 
      num_retries: 3    
  target: dev
```
