S3 Export is available only through dbt to
Datashare. Unlike Snowflake,
BigQuery, and Databricks, there is no managed replication of Dune’s full
dataset to S3. You publish your own dbt-managed tables and trigger each sync
yourself.
How It Works
- You build a
tableorincrementalmodel in your Dune namespace with dbt. - A dbt sync writes the result as an Iceberg table into a Dune-managed S3 bucket.
- Dune grants a principal you control read access to the bucket.
- You query the Iceberg table directly from S3 with your own engine (Athena, Spark, Trino, DuckDB, etc.) without going through Dune.
target_type: s3.
Get Started
S3 Export is an enterprise feature configured per team. To enable it, email datashares-sales@dune.com or contact the enterprise team with:- Your preferred AWS region for the export bucket
- A principal to grant read access (see Granting Access)
Granting Access
Dune attaches a bucket policy to your export bucket that grants an AWS principal you control read access. You have two options:| Option | What you provide | Who can read |
|---|---|---|
| IAM role | An IAM role ARN in your own AWS account with read access to S3 | Only that role |
| AWS account | Your AWS account ID | The whole account - you then control which IAM users/roles have access via your own IAM policies |
Requester Pays
The export bucket is configured with Requester Pays, so the requester (you) covers the cost of read requests and data transfer out. To read the data you must send thex-amz-request-payer: requester header on all S3 requests. Without it, reads fail with 403. Most AWS SDKs expose a setting for this (often a RequestPayer / “requester pays” option) so you do not have to set the header manually.
Querying the Data
Point your engine at the Iceberg table in the export bucket using the principal you gave Dune. With any Iceberg-compatible engine you read the table directly from its S3 location. No Dune API or connection is involved. Make sure your engine:- Authenticates as the IAM role or account that was granted access.
- Sends the Requester Pays header on S3 requests.