FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: Add feature view versioning support to Snowflake online store by Abhishek8108 · Pull Request #6380 · feast-dev/feast · GitHub

feat: Add feature view versioning support to Snowflake online store - #6380

Open
Abhishek8108 wants to merge 1 commit into
feast-dev:masterfrom
Abhishek8108:feat/snowflake-online-store-versioning
Open

feat: Add feature view versioning support to Snowflake online store#6380
Abhishek8108 wants to merge 1 commit into
feast-dev:masterfrom
Abhishek8108:feat/snowflake-online-store-versioning

Conversation

Copy link
Copy Markdown
Contributor

Summary

Closes #6167

Adds versioned feature view read/write support to the SnowflakeOnlineStore, following the pattern already established in SqliteOnlineStore, MySQLOnlineStore, PostgreSQLOnlineStore, DynamoDBOnlineStore, RedisOnlineStore, and MilvusOnlineStore.

What changed

snowflake.py

  • Added _snowflake_table_name(project, table, enable_versioning) helper that returns "[online-transient] {project}_{name}" where name gains a _v{N} suffix when enable_online_feature_view_versioning is enabled and the feature view has a non-zero version.
  • All four write/read paths (online_write_batch, online_read, update, teardown) now call this helper instead of hardcoding f"[online-transient] {config.project}_{table.name}".

online_store.py

  • Added SnowflakeOnlineStore to the supported-types list in _check_versioned_read_support, so versioned reads no longer raise VersionedOnlineReadNotSupported.

New test file

  • tests/unit/infra/online_store/test_snowflake_versioning.py — 10 unit tests covering: no versioning, versioning disabled with a version set, versioning enabled with no version, version number suffix, version zero (no suffix), projection tag priority, projection tag zero, two different versions produce different names, and _check_versioned_read_support with/without a version tag.
  • Uses module-level stubs for cryptography, snowflake.connector, and tenacity so the tests run without the optional feast[snowflake] extras.

Reference

Test plan

  • python -m pytest sdk/python/tests/unit/infra/online_store/test_snowflake_versioning.py — 10/10 passed locally
  • ruff format --check and ruff check — clean on all modified files
  • Existing Snowflake table name behaviour is unchanged when enable_online_feature_view_versioning = False (the default)

Abhishek8108 requested review from a team as code owners May 7, 2026 18:49
Abhishek8108 requested review from franciscojavierarceo, nquinn408 and shuchu and removed request for a team May 7, 2026 18:49
Introduces `_snowflake_table_name()` helper that appends a `_v{N}` suffix
when `enable_online_feature_view_versioning` is set, routing write_batch,
online_read, update, and teardown to the correct versioned transient table.
Registers SnowflakeOnlineStore in the supported-types list so versioned reads
do not raise VersionedOnlineReadNotSupported. Unit tests follow the same
pattern as the DynamoDB and Redis versioning test suites.

Closes feast-dev#6167

Signed-off-by: Abhishek8108 <87538407+Abhishek8108@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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.

Add feature view versioning support to Snowflake online store

1 participant


Back | FazBrowse Home | New Git URL