Conversation
…late The default template already demonstrates a Pandas mode on demand feature view. Add transformed_conv_rate_python, the same transformation written in native Python mode (mode="python"), so that feast init shows both transformation modes side by side, and fetch its features in test_workflow.py during both historical and online retrieval. Part of feast-dev#5478 Signed-off-by: ryota717 <ryota.nishijima@fout.jp>
…nline_store feast apply on the local provider with the sqlite online store goes through FeatureStore.plan() / _apply_diffs() rather than FeatureStore.apply(). SqliteOnlineStore.plan() only produced tables for feature views, stream feature views and label views, so an on demand feature view with write_to_online_store=True was registered without a backing table and the subsequent materialize / write_to_online_store failed with 'sqlite3.OperationalError: no such table'. Include such on demand feature views in plan(), mirroring what update() already does for the non-plan apply path, and add unit tests. Part of feast-dev#5478 Signed-off-by: ryota717 <ryota.nishijima@fout.jp>
…late Add transformed_conv_rate_on_write, an on demand feature view with write_to_online_store=True that derives conv_rate_x_acc_rate and expected_daily_conversions from driver_hourly_stats. Unlike the existing on demand feature views, its transformation runs when data is written to the online store (materialize / write_to_online_store) instead of on every read. test_workflow.py now shows the materialized values after materialize_incremental, then writes a raw row through write_to_online_store and reads the transformed values back. Part of feast-dev#5478 Signed-off-by: ryota717 <ryota.nishijima@fout.jp>
…l template Extend test_repo_init so that, after feast apply and feast materialize on a freshly initialized repo, the features of the write_to_online_store on demand feature view can be read back from the online store. This covers the full CLI path (plan-based apply on the local provider) end to end. Part of feast-dev#5478 Signed-off-by: ryota717 <ryota.nishijima@fout.jp>
Update the quickstart to include transformed_conv_rate_python and transformed_conv_rate_on_write in the feature_definitions.py listing and in the feast apply / materialize outputs, and add a step contrasting read-time (Pandas / native Python) and write-time transformations. Also list the on demand feature views in the template README. Part of feast-dev#5478 Signed-off-by: ryota717 <ryota.nishijima@fout.jp>
ryota717
marked this pull request as ready for review
September 29, 2026 10:35
This branch has not been deployed
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it
Part of #5478 (item 1: extend the driver / default
feast inittemplate).The default template only demonstrated read-time, Pandas-mode on demand feature views.
This PR extends it so that
feast initshowcases the other transformation options Feast supports:transformed_conv_rate_python: the same transformation astransformed_conv_rate, written innative Python mode (
mode="python"), so both modes are shown side by side.transformed_conv_rate_on_write: an ODFV withwrite_to_online_store=True. Its transformationruns during
materialize/write_to_online_storeinstead of on every read.test_workflow.pyreads the materialized values, then writes a raw row and reads the transformedvalues back.
While doing this I found that
feast applyon the local provider (which goes throughFeatureStore.plan()→SqliteOnlineStore.plan(), notFeatureStore.apply()) never created thesqlite table for ODFVs with
write_to_online_store=True, somaterializefailed withsqlite3.OperationalError: no such table. The second commit fixesSqliteOnlineStore.plan()tomirror what
update()already does, with unit tests.test_repo_initnow also asserts that the on-write features can be read afterfeast apply && feast materialize, covering the CLI path end to end. The quickstart and templateREADME are updated to match.
Items 2 (RAG, #5946) and 3 (recommendation template, #6078) of #5478 are handled separately.
Which issue(s) this PR fixes
Part of #5478
Misc
Commits are split so they can be reviewed independently:
plan()creates tables for write ODFVstest_repo_initverifies on-write features