← 返回首页
feat: Add feature view versioning support to Snowflake online store by Abhishek8108 · Pull Request #6380 · feast-dev/feast · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

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

Footer

© 2026 GitHub, Inc.