Title: Support variable window aggregation through ODFV · Issue #6308 · feast-dev/feast · GitHub
Open Graph Title: Support variable window aggregation through ODFV · Issue #6308 · feast-dev/feast
X Title: Support variable window aggregation through ODFV · Issue #6308 · feast-dev/feast
Description: Is your feature request related to a problem? Please describe. Currently, feast supports dynamic aggregation through ODFV from raw data source. For variable window aggregation, the features are independently computed so there is no raw s...
Open Graph Description: Is your feature request related to a problem? Please describe. Currently, feast supports dynamic aggregation through ODFV from raw data source. For variable window aggregation, the features are ind...
X Description: Is your feature request related to a problem? Please describe. Currently, feast supports dynamic aggregation through ODFV from raw data source. For variable window aggregation, the features are ind...
Opengraph URL: https://github.com/feast-dev/feast/issues/6308
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Support variable window aggregation through ODFV","articleBody":"**Is your feature request related to a problem? Please describe.**\nCurrently, feast supports dynamic aggregation through ODFV from raw data source. For variable window aggregation, the features are independently computed so there is no raw source but aggregation is still being read / written.\n\n**Describe the solution you'd like**\nWe want to allow users to not define raw data source but instead replace data source with new optional `input_schema` field to define raw data input type. For example, instead of passing in `txn_amount` from external feature view, it is submitted as `input_schema`. See example below: \n\n```\n@on_demand_feature_view(\n input_schema=[\n Field(name=\"txn_amount\", dtype=Float64),\n ],\n schema=[\n Field(name=\"txn_count\", dtype=Int64),\n Field(name=\"total_txn_amount\", dtype=Float64),\n Field(name=\"avg_txn_amount\", dtype=Float64),\n ],\n aggregations=[\n Aggregation(column=\"txn_amount\", function=\"count\", name=\"txn_count\",\n window=timedelta(days=30)),\n Aggregation(column=\"txn_amount\", function=\"sum\", name=\"total_txn_amount\",\n window=timedelta(days=30)),\n Aggregation(column=\"txn_amount\", function=\"mean\", name=\"avg_txn_amount\",\n window=timedelta(days=30)),\n ],\n entities=[user],\n write_to_online_store=True,\n )\n```\nThis allows dynamic systems like cassandra or iceberg that support time series data representations, to support variable window engines which support writing and reading to / from same source. \n\n**Describe alternatives you've considered**\nUsing dummy source (confusing, needlessly complex), using aggregation on feature view (not supported)\n","author":{"url":"https://github.com/nquinn408","@type":"Person","name":"nquinn408"},"datePublished":"2026-04-21T16:58:44.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/6308/feast/issues/6308"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:534d9e75-cf09-5daa-9d4b-71ba245c72ad |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B418:E2378:49160AD:65027AE:6A4F5AB4 |
| html-safe-nonce | c13790cf0db21128fffd4a789ececbaf98bda38aae136f2359e42d2b7cd71c33 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNDE4OkUyMzc4OjQ5MTYwQUQ6NjUwMjdBRTo2QTRGNUFCNCIsInZpc2l0b3JfaWQiOiI4MDY1OTIxNzY1ODk1Nzg5MjM2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | a29fdade39702a31335e89aee5d67884336dd01e6f61cf6eddfb7406500effdd |
| hovercard-subject-tag | issue:4304127264 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/feast-dev/feast/6308/issue_layout |
| twitter:image | https://opengraph.githubassets.com/8613c362faea7f1b30411e8b435fa3745739b356230b894df55f812246ce408f/feast-dev/feast/issues/6308 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/8613c362faea7f1b30411e8b435fa3745739b356230b894df55f812246ce408f/feast-dev/feast/issues/6308 |
| og:image:alt | Is your feature request related to a problem? Please describe. Currently, feast supports dynamic aggregation through ODFV from raw data source. For variable window aggregation, the features are ind... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | nquinn408 |
| hostname | github.com |
| expected-hostname | github.com |
| None | b92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9 |
| turbo-cache-control | no-preview |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 4b249b445842943ed31549e027f57a8ade9881ed |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width