Skip to content

feat: Added Iceberg REST Catalog data source support#6610

Merged
ntkathole merged 1 commit into
feast-dev:masterfrom
ntkathole:iceberg_catelog
Jul 18, 2026
Merged

feat: Added Iceberg REST Catalog data source support#6610
ntkathole merged 1 commit into
feast-dev:masterfrom
ntkathole:iceberg_catelog

Conversation

@ntkathole

Copy link
Copy Markdown
Member

What this PR does / why we need it:

This PR :

  • Add IcebergSource - a new DataSource type that reads Iceberg tables from any REST-compatible catalog (Unity Catalog, Polaris, Nessie, Glue, Hive)
  • Add UnityCatalogSource - extends IcebergSource with Databricks governance: feature table registration, lineage sync, and table properties
  • Add IcebergRestClient - lightweight HTTP client implementing the Iceberg REST Catalog spec with connection pooling, pagination, typed errors, and credential vending (S3/GCS/ADLS)
  • Add UCClient and UnityCatalogProvider - UC-specific governance hooks triggered on feast apply
  • Add DuckDB and Spark offline store support for reading Iceberg-backed sources

@ntkathole ntkathole self-assigned this Jul 17, 2026
@ntkathole
ntkathole requested a review from a team as a code owner July 17, 2026 08:53
@codecov-commenter

codecov-commenter commented Jul 17, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 17.05298% with 501 lines in your changes missing coverage. Please review.
✅ Project coverage is 45.64%. Comparing base (dcd496f) to head (369a581).

Files with missing lines Patch % Lines
...ces/contrib/iceberg_catalog/iceberg_rest_client.py 22.89% 128 Missing ⚠️
...ffline_stores/contrib/spark_offline_store/spark.py 6.59% 84 Missing and 1 partial ⚠️
..._sources/contrib/iceberg_catalog/iceberg_source.py 24.48% 74 Missing ⚠️
...ata_sources/contrib/iceberg_catalog/uc_provider.py 0.00% 70 Missing ⚠️
.../data_sources/contrib/iceberg_catalog/uc_client.py 16.88% 64 Missing ⚠️
sdk/python/feast/infra/offline_stores/duckdb.py 7.14% 52 Missing ⚠️
...es/contrib/iceberg_catalog/unity_catalog_source.py 31.70% 28 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6610      +/-   ##
==========================================
- Coverage   46.00%   45.64%   -0.36%     
==========================================
  Files         406      412       +6     
  Lines       48164    48761     +597     
  Branches     6814     6913      +99     
==========================================
+ Hits        22157    22257     +100     
- Misses      24461    24957     +496     
- Partials     1546     1547       +1     
Flag Coverage Δ
go-feature-server 30.58% <ø> (ø)
python-unit 46.92% <17.05%> (-0.41%) ⬇️
Files with missing lines Coverage Δ
sdk/python/feast/data_source.py 80.00% <ø> (ø)
...a/data_sources/contrib/iceberg_catalog/__init__.py 100.00% <100.00%> (ø)
sdk/python/feast/infra/provider.py 92.22% <ø> (ø)
...es/contrib/iceberg_catalog/unity_catalog_source.py 31.70% <31.70%> (ø)
sdk/python/feast/infra/offline_stores/duckdb.py 35.10% <7.14%> (-5.75%) ⬇️
.../data_sources/contrib/iceberg_catalog/uc_client.py 16.88% <16.88%> (ø)
...ata_sources/contrib/iceberg_catalog/uc_provider.py 0.00% <0.00%> (ø)
..._sources/contrib/iceberg_catalog/iceberg_source.py 24.48% <24.48%> (ø)
...ffline_stores/contrib/spark_offline_store/spark.py 34.54% <6.59%> (-4.01%) ⬇️
...ces/contrib/iceberg_catalog/iceberg_rest_client.py 22.89% <22.89%> (ø)

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dcd496f...369a581. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@HaoXuAI HaoXuAI left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Looking forward for more features

@ntkathole
ntkathole merged commit e0a8573 into feast-dev:master Jul 18, 2026
29 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants