Skip to main content
dbt Connector + Datashare is available only to existing customers of this offering and is no longer available to new customers. Learn more about Enterprise Datashare.
S3 Export publishes tables from your Dune namespace as Apache Iceberg tables in a Dune-managed S3 bucket, queryable from any engine you control.
S3 Export delivers your own tables, registered with sync_datashare, for example from dbt. Unlike Snowflake, BigQuery, and Databricks, Dune’s curated dataset is not available on S3.

How It Works

  1. You build a table with change data feed enabled in your Dune namespace, for example as a dbt table or incremental model.
  2. A sync_datashare registration writes the table as an Iceberg table into a Dune-managed S3 bucket, then applies its changes every five minutes by default.
  3. Dune grants a principal you control read access to the bucket.
  4. You query the Iceberg table directly from S3 with your own engine (Athena, Spark, Trino, DuckDB, etc.) without going through Dune.
See dbt Connector + Datashare for the full workflow and configuration.

Get Started

S3 Export is part of the dbt Connector + Datashare offering and is available only to existing customers of that offering. For help with your existing configuration, 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)
Once configured, you drive everything from dbt: see dbt Connector + Datashare.

Granting Access

Dune attaches a bucket policy to your export bucket that grants an AWS principal you control read access. You have two options:
Dune only needs an IAM role ARN or an AWS account ID to grant access, never AWS keys, secrets, or other credentials.

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 the x-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:
  1. Authenticates as the IAM role or account that was granted access.
  2. Sends the Requester Pays header on S3 requests.

Table Format

S3 Export supports the Iceberg table format. Each table lives at a versioned location, for example s3://<bucket>/<delivery-id>/<table>_v0002/. Dune sends you this URL when the sync is set up. Each sync writes metadata/version-hint.text in the table location, so readers such as DuckDB’s iceberg_scan and pyiceberg can open the URL without naming a metadata file. The URL changes only when Dune rebuilds the table, for example after a full refresh. Dune keeps the previous version readable for up to seven days, so you can switch to the new URL without downtime. Support: datashares-sales@dune.com | support@dune.com