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 — Stream transformations · Issue #2597 · feast-dev/feast

Stream transformations #2597

New issue
Copy link
New issue
Copy link
Closed
Closed
Stream transformations#2597
Copy link
Assignees
kevjumbafelixwang9817
Labels
kind/featureNew feature or requestNew feature or requestkind/projectA top level project to be tracked in GitHub ProjectsA top level project to be tracked in GitHub Projectspriority/p0Highest priorityHighest prioritywontfixThis will not be worked onThis will not be worked on

Description

@adchia
adchia
opened on Apr 21, 2022
Issue body actions

Note: Users can push streaming features to the online store via push sources
Note: RFC can be found here.
See also: Feast Slack: #feast-feature-transformations

Requirements

Problem 1

Data scientists cannot meaningfully author event-backed features that will be fresh at serving time.

Often, right now data scientists will define a feature, and then work with engineers to build that streaming pipeline to push to the online store. There is a tight coupling and engineering bottleneck to reach production.

Problem 2

Users cannot guarantee consistent feature transformations across batch + streaming contexts. If they author a SQL transformation in batch, and a PySpark transformation for streaming, they may have inconsistencies.

  • This problem is also related to versioning transformation logic within Feast. If both batch + stream transformation logic is present, it is easier to ensure they are consistent. An ML platform team can also build a custom feature view that only requires one transformation to be defined, but map to different semantics in batch vs streaming.

Problem 3

Users cannot version transformation logic and tie it to downstream models (a lineage problem). It's useful to see what models may be impacted by changing some stream transformation / aggregation logic, and perhaps allow for A/B experiments using different transformations.

Potential solution

Types of transformations

We should support defining both:

  • stateless transformations (e.g. row level transforms / mapping)
  • stateful transformations (e.g. windowed transformations)

Data scientist developer experience

It should be easy for a data scientist to correctly author stream transformations (including aggregations).

  • One way is to introduce a higher level DSL for aggregation logic.
  • Another way is to allow streaming some sample data in, applying the transformation, and seeing the input vs output.

Example feature view

@stream_feature_view(
    name="driver_stats",
    entities=[driver],
    mode="spark_sql",
    aggregations=[
        Aggregation(
            column='distance',
            function='mean', 
            time_windows=[timedelta(days=7)]   
         )
    ],
    aggregation_interval=timedelta(days=1),
    source=driver_stats_stream_source,
)
def driver_stats(driver_stats_stream_source):
    return f'''
        SELECT
            driver_id,
            distance as most_recent_trip_distance,
            duration as most_recent_trip_duration,
            event_timestamp,
        FROM
            {driver_stats_stream_source}
        '''

Alternatives considered

  • Kicking off long running jobs that ingests events, transforms (Spark, Flink, Bytewax, etc), and writes to the online stores.

Activity

  1. adchia
    added
    kind/featureNew feature or requestNew feature or request
    priority/p1
    on Apr 21, 2022
  2. adchia
    assigned
    felixwang9817
    on Apr 21, 2022
  3. adchia
    added this to Feast Roadmapon Apr 21, 2022
  4. adchia
    moved this to In Progress in Feast Roadmapon Apr 21, 2022
  5. adchia
    added
    priority/p0Highest priorityHighest priority
    and removed
    priority/p1
    on Apr 21, 2022
  6. adchia
    added
    kind/projectA top level project to be tracked in GitHub ProjectsA top level project to be tracked in GitHub Projects
    on May 24, 2022
  7. adchia
    assigned
    kevjumba
    on May 24, 2022
  8. kevjumba
    moved this from In Progress to Paused (contributions welcome) in Feast Roadmapon Aug 3, 2022
  9. adchia
    moved this from Paused (contributions welcome) to Todo in Feast Roadmapon Sep 2, 2022
  10. stale commented on Oct 20, 2022

    @stale
    staleBot
    on Oct 20, 2022
    More actions

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  11. stale
    added
    wontfixThis will not be worked onThis will not be worked on
    on Oct 20, 2022
  12. stale
    closed this as completedon Dec 21, 2022
  13. Repository owner moved this from Todo to Done in Feast Roadmapon Dec 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @felixwang9817
    felixwang9817
  • @kevjumba
    kevjumba

Labels

kind/featureNew feature or requestNew feature or requestkind/projectA top level project to be tracked in GitHub ProjectsA top level project to be tracked in GitHub Projectspriority/p0Highest priorityHighest prioritywontfixThis will not be worked onThis will not be worked on

Type

No type

Projects

  • Feast Roadmap
    Status
    Done
    Show more project fields

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.