GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: Support aggregation in odfv by haoxu0 · Pull Request #5666 · feast-dev/feast

Conversation

@haoxu0

@haoxu0 haoxu0 commented Oct 15, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

What this PR does / why we need it:

  1. The pr moved the backend dataframe module to parent level rather than local, as it doesn't have to be local abstraction, and spark can inherit it as well.
  2. Enable the aggregations config into the OnDemandFeatureView. When transforming the features, it can run either aggregations or feature_transform, not both. The reason is to make the the schema inference simple. But in future this can be redesigned to support both.

Which issue(s) this PR fixes:

Misc

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
haoxu0 added 3 commits October 14, 2025 15:28
@haoxu0
add aggregation to odfv
a101f0f
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
add aggregation to odfv
398dbfa
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
add aggregation to odfv
5ccd4ea
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
haoxu0 requested a review from a team as a code owner October 15, 2025 00:09
@haoxu0 haoxu0 changed the title Aggregation odfv feat: Support aggregation in odfv Oct 15, 2025
haoxu0 and others added 2 commits October 20, 2025 09:39
@haoxu0
fix linting
6a39899
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
Merge branch 'master' into aggregation-odfv
62af43f
haoxu0
haoxu0 commented Oct 20, 2025
View reviewed changes
Comment thread sdk/python/feast/utils.py
if odfv.mode == "python":
# Apply aggregations if configured.
if odfv.aggregations:
if odfv.mode == "python":

@haoxu0 haoxu0 Oct 20, 2025

Copy link
Copy Markdown
Collaborator Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Currently if this is a python input, we don't have aggregation function to use OOTD, so it use the pandas Dataframe backend to aggregate. I think in long term we need to create a real time compute engine, where we support python native compute operations such as aggregations, filtering, joining etc.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@haoxu0 haoxu0 Oct 20, 2025

Copy link
Copy Markdown
Collaborator Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

@franciscojavierarceo

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@franciscojavierarceo franciscojavierarceo Oct 20, 2025

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

what does OOTD mean ?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@haoxu0 haoxu0 Oct 20, 2025

Copy link
Copy Markdown
Collaborator Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

OOTB :)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jyejare reacted with laugh emoji
All reactions
  • 😄 1 reaction
@haoxu0
haoxu0 requested review from franciscojavierarceo and ntkathole October 20, 2025 16:48
@franciscojavierarceo
franciscojavierarceo requested a review from Copilot October 20, 2025 16:52
Copilot AI reviewed Oct 20, 2025
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds aggregation support to OnDemandFeatureView (ODFV) and refactors the backend dataframe module structure. The implementation allows ODFVs to apply aggregations during online feature serving, either using aggregations or feature transformations (but not both). The backend modules are moved from the local directory to a parent-level backends directory to enable reusability across different compute engines like Spark.

Key Changes:

  • Moved backend dataframe modules from local/backends to parent-level backends directory
  • Added aggregation support to ODFV with _apply_aggregations_to_response utility function
  • Aggregations and transformations are mutually exclusive in ODFVs to simplify schema inference

Reviewed Changes

Copilot reviewed 8 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
sdk/python/tests/unit/test_on_demand_feature_view_aggregation.py New test file covering aggregation functionality in Python and Pandas modes
sdk/python/feast/utils.py Added aggregation utility functions and integrated aggregation logic into ODFV transformation pipeline
sdk/python/feast/infra/compute_engines/local/nodes.py Updated import path for DataFrameBackend
sdk/python/feast/infra/compute_engines/local/feature_builder.py Updated import path for DataFrameBackend
sdk/python/feast/infra/compute_engines/local/compute.py Updated import paths for DataFrameBackend and BackendFactory
sdk/python/feast/infra/compute_engines/backends/polars_backend.py Updated import path for base DataFrameBackend
sdk/python/feast/infra/compute_engines/backends/pandas_backend.py Updated import path for base DataFrameBackend
sdk/python/feast/infra/compute_engines/backends/factory.py Updated import paths for backend classes

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread sdk/python/feast/utils.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread sdk/python/feast/utils.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread sdk/python/feast/utils.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

haoxu0 and others added 5 commits October 20, 2025 09:56
@haoxu0
Apply suggestions from code review
81466fa
Co-authored-by: Copilot <[email protected]>
@haoxu0
fix linting
b9541a1
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
fix linting
2e85113
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0
Merge branch 'master' into aggregation-odfv
6c7cf7e
@haoxu0
update doc
41d20bc
Signed-off-by: hao-xu5 <[email protected]>
ntkathole
ntkathole reviewed Oct 22, 2025
View reviewed changes
Comment thread docs/reference/beta-on-demand-feature-view.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@haoxu0
update doc
db15d1f
Signed-off-by: hao-xu5 <[email protected]>
@haoxu0 haoxu0 mentioned this pull request Oct 22, 2025
Make OnDemandFeatureView work for having both aggregations and transformations #5689
Open
@haoxu0 haoxu0 added the ok-to-test label Oct 22, 2025
@haoxu0
Merge branch 'master' into aggregation-odfv
08d0f2a
ntkathole
ntkathole approved these changes Oct 23, 2025
View reviewed changes

@ntkathole ntkathole left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Thank you

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

haoxu0 reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@ntkathole
ntkathole merged commit 564e965 into master Oct 23, 2025
2 checks passed

Uh oh!

There was an error while loading. Please reload this page.

franciscojavierarceo pushed a commit that referenced this pull request Oct 27, 2025
@feast-ci-bot
chore(release): release 0.56.0
90b5086
# [0.56.0](v0.55.0...v0.56.0) (2025-10-27)

### Bug Fixes

* Add mode field to Transformation proto for proper serialization ([2390d2e](2390d2e))
* Date wise remote offline store historical data retrieval  ([#5686](#5686)) ([949ba3d](949ba3d))
* Fix STRING type handling in on-demand feature views ([#5669](#5669)) ([dfbb743](dfbb743))
* Fixed torch install issue in CI ([366e5a8](366e5a8))
* ODFV not getting counted in resource count ([1d640b6](1d640b6))
* Skip tag updates if user do not have permissions ([#5673](#5673)) ([0a951ce](0a951ce))

### Features

* Add document of Go feature server. ([#5697](#5697)) ([cbd1dde](cbd1dde))
* Add flexible commandArgs support for complete Feast CLI control ([#5678](#5678)) ([6414924](6414924))
* Add HDFS as a feature registry ([#5655](#5655)) ([4c65872](4c65872))
* Add nodeSelector to service config ([#5675](#5675)) ([9728cde](9728cde))
* Add OTEL based observability to the Go Feature Server ([#5685](#5685)) ([f4afdad](f4afdad))
* Added health endpoint for the UI ([#5665](#5665)) ([3aec5d5](3aec5d5))
* Added kuberay support ([e0b698d](e0b698d))
* Added support for filtering multi-projects ([#5688](#5688)) ([eb0a86e](eb0a86e))
* Batch Embedding at scale for RAG with Ray ([cc2a46d](cc2a46d))
* Optimize SQL entity handling without creating temporary tables ([#5695](#5695)) ([aa2c838](aa2c838))
* Support aggregation in odfv ([#5666](#5666)) ([564e965](564e965))
* Support cache_mode for registries ([021e9ea](021e9ea))
@haoxu0 haoxu0 mentioned this pull request Nov 12, 2025
feat: Enable aggregation for on-demand-feature-view #5600
Closed
@franciscojavierarceo franciscojavierarceo mentioned this pull request Jan 14, 2026
Add blog post on new transformation framework #5856
Open
Copilot AI mentioned this pull request Jan 14, 2026
docs: Add blog post on unified transformation framework #5858
Draft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments
@ntkathole ntkathole ntkathole approved these changes
@franciscojavierarceo franciscojavierarceo Awaiting requested review from franciscojavierarceo

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

ok-to-test

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@haoxu0 @franciscojavierarceo @ntkathole
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.