# DuckDB

To query Tableflow tables with DuckDB, you'll first need to install and load the [Iceberg extension](https://duckdb.org/docs/stable/core_extensions/iceberg/overview.html).

```sql
INSTALL iceberg;
LOAD iceberg;
```

Once you've installed the Iceberg extension, you'll need to connect to the object store system where you've chosen to store your Tableflow tables.

* [AWS S3 and S3-compatible systems](https://duckdb.org/docs/stable/core_extensions/httpfs/s3api)
* [Microsoft Azure](https://duckdb.org/docs/stable/core_extensions/azure)
* [Google Cloud Storage with HMAC Keys](https://duckdb.org/docs/stable/guides/network_cloud_storage/gcs_import)

Once you've successfully connected to the object store, you can query your tables using the standard syntax for the Iceberg extension:

```sql
SELECT * from iceberg_scan('s3://<table_path>');
```

and to query a specific snapshot version:

```sql
SELECT * from iceberg_scan('s3://<table_path>/metadata/v<version>.metadata.json');
```
