Skip to content

Conversation

@nicosuave
Copy link
Member

Summary

  • Adds WithSqlClient and SupportsOpenTables interfaces to IcebergRestClient
  • Implements IcebergSqlClient class for DuckDB views via iceberg_scan()
  • Enables querying loaded Iceberg data via pipeline.dataset()
  • Updates README with DuckDB documentation and new features

Usage

# After loading data
dataset = pipeline.dataset()

# Access as dataframe
df = dataset["events"].df()

# Run SQL queries
result = dataset.query("SELECT * FROM events WHERE value > 50").fetchall()

# Get Arrow table
arrow_table = dataset["events"].arrow()

Changes

  • src/dlt_iceberg/sql_client.py - New DuckDB SQL client
  • src/dlt_iceberg/destination_client.py - Added interface implementations
  • tests/test_dataset.py - Comprehensive tests
  • README.md - Updated with new features
  • Added duckdb as dependency

- Implement WithSqlClient interface for IcebergRestClient
- Implement SupportsOpenTables interface for table access
- Add IcebergSqlClient class for DuckDB views via iceberg_scan()
- Add duckdb as dependency
- Add comprehensive tests for dataset integration
- Update README with new features and DuckDB documentation
@nicosuave nicosuave merged commit a618d20 into main Jan 11, 2026
1 check passed
@nicosuave nicosuave deleted the feature/duckdb-dataset branch January 11, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants