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 — Support variable window aggregation through ODFV · Issue #6308 · feast-dev/feast

Support variable window aggregation through ODFV #6308

New issue
Copy link
New issue
Copy link
Open
Open
Support variable window aggregation through ODFV#6308
Copy link
Labels
kind/featureNew feature or requestNew feature or request

Description

@nquinn408
nquinn408
opened on Apr 21, 2026
Issue body actions

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 source but aggregation is still being read / written.

Describe the solution you'd like
We 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:

@on_demand_feature_view(
      input_schema=[
          Field(name="txn_amount", dtype=Float64),
      ],
      schema=[
          Field(name="txn_count", dtype=Int64),
          Field(name="total_txn_amount", dtype=Float64),
          Field(name="avg_txn_amount", dtype=Float64),
      ],
      aggregations=[
          Aggregation(column="txn_amount", function="count", name="txn_count",
                      window=timedelta(days=30)),
          Aggregation(column="txn_amount", function="sum", name="total_txn_amount",
                      window=timedelta(days=30)),
          Aggregation(column="txn_amount", function="mean", name="avg_txn_amount",
                      window=timedelta(days=30)),
      ],
      entities=[user],
      write_to_online_store=True,
  )

This 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.

Describe alternatives you've considered
Using dummy source (confusing, needlessly complex), using aggregation on feature view (not supported)

Activity

  1. nquinn408
    added
    kind/featureNew feature or requestNew feature or request
    on Apr 21, 2026
  2. franciscojavierarceo commented on Apr 21, 2026

    @franciscojavierarceo
    franciscojavierarceo
    on Apr 21, 2026
    Member
    More actions

    @HaoXuAI @ntkathole want your take here

  3. nquinn408
    added 3 commits that reference this issue on Apr 21, 2026

    feat: Optional input_schema for ODFV (feast-dev#6308)

    47a8d31

    feat: Optional input_schema for ODFV (feast-dev#6308)

    56b0620

    feat: Optional input_schema for ODFV (#6308) (#6312)

    f08b4e8
  4. ntkathole commented on Apr 25, 2026

    @ntkathole
    ntkathole
    on Apr 25, 2026
    Member
    More actions

    @nquinn408 Looks good to me, Also since this is a pure aggregation view with no udf, it can be defined via direct instantiation instead of decorator, that would avoid serialization overhead of empty function

    txn_stats = OnDemandFeatureView(
        name="compute_txn_stats",
        input_schema=[Field(name="txn_amount", dtype=Float64)],
        schema=[
            Field(name="txn_count",        dtype=Int64),
            Field(name="total_txn_amount", dtype=Float64),
            Field(name="avg_txn_amount",   dtype=Float64),
        ],
        aggregations=[
            Aggregation(column="txn_amount", function="count",
                        name="txn_count",        time_window=timedelta(days=30)),
            Aggregation(column="txn_amount", function="sum",
                        name="total_txn_amount", time_window=timedelta(days=30)),
            Aggregation(column="txn_amount", function="mean",
                        name="avg_txn_amount",   time_window=timedelta(days=30)),
        ],
        entities=[user],
        write_to_online_store=True,
    )
    
  5. franciscojavierarceo
    added a commit that references this issue on May 4, 2026

    chore(release): release 0.63.0

    50ad181
  6. singhhimanshu0811 commented on Jun 30, 2026

    @singhhimanshu0811
    singhhimanshu0811
    on Jun 30, 2026
    Contributor
    More actions

    hey @franciscojavierarceo is this still open? if yeah will take this up. pls let me know!!

    Reacted by Francisco Javier Arceo
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.