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 — Make OnDemandFeatureView work for having both aggregations and transformations · Issue #5689 · feast-dev/feast

Make OnDemandFeatureView work for having both aggregations and transformations #5689

New issue
Copy link
New issue
Copy link
Open
Open
Make OnDemandFeatureView work for having both aggregations and transformations#5689
Copy link
Labels
kind/featureNew feature or requestNew feature or request

Description

@haoxu0
haoxu0
opened on Oct 22, 2025
Issue body actions

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

With PR #5666, OnDemandFeatureView supports aggregations. But it is exclusive with transformation.
the reason is the infer_schema will break if having both defined in feature views.
This can be solved by reworking the infer_schema.

    def infer_features(self) -> None:
        random_input = self._construct_random_input(singleton=self.singleton)
        inferred_features = self.feature_transformation.infer_features(
            random_input=random_input, singleton=self.singleton
        )

Schema inference doesn't run the aggregation step - it only:

  1. Looks at the source feature view's schema
  2. Creates fake random data matching those columns
  3. Passes it directly to the UDF
    But at runtime, the UDF receives aggregated columns, not the original source columns.
    So the UDF would need to be written for aggregated input:
  def my_odfv(inputs):
      return {"trips_doubled": inputs["sum_trips"] * 2}  # expects sum_trips

But schema inference passes it:

  {"trips": [10], "rating": [4.5]}

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Reacted by Francisco Javier Arceo

Activity

  1. haoxu0
    added
    kind/featureNew feature or requestNew feature or request
    on Oct 22, 2025
  2. franciscojavierarceo commented on Oct 22, 2025

    @franciscojavierarceo
    franciscojavierarceo
    on Oct 22, 2025
    Member
    More actions

    @ntkathole @jyejare FYI

  3. astronautas commented on Nov 11, 2025

    @astronautas
    astronautas
    on Nov 11, 2025
    Contributor
    More actions

    Also seems ODFV materialize has a completely different compute engine flow, be careful there. Maybe legacy split or smth.

  4. franciscojavierarceo commented on Nov 11, 2025

    @franciscojavierarceo
    franciscojavierarceo
    on Nov 11, 2025
    Member
    More actions

    yeah we need to think through how to align the compute engine with ODFVs. ODFVs basically use 2 compute engines: one batch one and the feature server. We have to work out how best to make that cleaner.

  5. haoxu0 commented on Nov 12, 2025

    @haoxu0
    haoxu0
    on Nov 12, 2025
    CollaboratorAuthor
    More actions

    yep. So we need to refactor OnDemandFeatureView to:

    1. Inherit from FeatureView
    2. use the current feature resolver/builder
    Reacted by Lukas Valatka and Francisco Javier Arceo
  6. haoxu0 commented on Nov 12, 2025

    @haoxu0
    haoxu0
    on Nov 12, 2025
    CollaboratorAuthor
    More actions

    another tech debt found: #5716, forcing to refactor the OnDemandFeatureView

    Reacted by Francisco Javier Arceo and Lukas Valatka
  7. nquinn408
    added 2 commits that reference this issue on Apr 24, 2026

    feat: Make udf optional if agg defined (feast-dev#5689)

    8c8d87d

    feat: Make udf optional if agg defined (#5689) (#6328)

    f630056
  8. franciscojavierarceo
    added a commit that references this issue on May 4, 2026

    chore(release): release 0.63.0

    50ad181
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureNew feature or requestNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      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.