AMAZON ATHENA
type: athenaAWS serverless query service for analyzing data in S3 using standard SQL. Pay-per-query with no infrastructure to manage.
DVT SUPPORT
read in federation models
materialize federation results
run full dbt projects against it
dvt seed --target loads here
DVT supports Amazon Athenabecause both dbt and Sling do: dbt drives standard materializations when it's your default target, Sling moves data in and out during federation. Connectivity for both layers is checked with dvt debug --all.
PREREQUISITES
Driver: pyathena — installed automatically by:
dvt sync
CONFIGURATION FIELDS
| FIELD | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| type | string | yes | — | Must be `athena` |
| region_name | string | yes | us-east-1 | AWS region |
| database | string | yes | — | Athena database (Glue catalog) |
| s3_staging_dir | string | yes | — | S3 path for query results (e.g., s3://my-bucket/athena-results/) |
| aws_access_key_id | string | no | — | AWS access key (or use IAM role) |
| aws_secret_access_key | string | no | — | AWS secret key (or use IAM role) |
| threads | integer | no | 4 | Number of parallel threads |
PROFILES.YML EXAMPLE
my_project:
target: athena_dev
outputs:
athena_dev:
type: athena
region_name: us-east-1
database: analytics
s3_staging_dir: s3://my-bucket/athena-results/
aws_access_key_id: "{{ env_var('AWS_ACCESS_KEY_ID') }}"
aws_secret_access_key: "{{ env_var('AWS_SECRET_ACCESS_KEY') }}"SOURCES.YML EXAMPLE
sources:
- name: data_lake
meta:
connection: athena_dev
database: raw_data
tables:
- name: clickstream
- name: server_logsDBT ADAPTER FEATURES
When Amazon Athena is your default target, every standard dbt model runs through the official dbt adapter — all of its documented capabilities apply unchanged:
MATERIALIZATIONS
tableviewincrementalephemeralf_tablef_incrementalINCREMENTAL STRATEGIES
appendinsert_overwritemerge (Iceberg tables)NOTABLE CONFIGS
- ▸table_type: iceberg | hive
- ▸partitioned_by
- ▸S3 data location required
FEDERATION INCREMENTAL STRATEGIES
Strategies available when this engine is the target of a f_incremental model:
KNOWN LIMITATIONS
- ⚠Serverless — query latency includes startup time
- ⚠Results staged to S3 before retrieval