-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat: Enable ingestion without event timestamp #5625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Enable ingestion without event timestamp #5625
Conversation
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
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 enables ingestion without requiring event timestamps by adding a disable_event_timestamp parameter throughout the materialization pipeline. When enabled, the current datetime is used instead of requiring explicit start and end timestamps.
- Adds
disable_event_timestampparameter to materialization methods and CLI command - Updates CLI to make timestamp arguments optional when the new flag is used
- Enhances documentation with examples of timestamp-free materialization
Reviewed Changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/python/tests/foo_provider.py | Adds disable_event_timestamp parameter to test provider method |
| sdk/python/feast/infra/provider.py | Adds parameter to base provider interface with documentation |
| sdk/python/feast/infra/passthrough_provider.py | Implements parameter passing in passthrough provider |
| sdk/python/feast/infra/common/materialization_job.py | Adds parameter to MaterializationTask dataclass |
| sdk/python/feast/feature_store.py | Adds parameter to public materialize method |
| sdk/python/feast/cli/cli.py | Updates CLI command to support optional timestamps and new flag |
| infra/templates/README.md.jinja2 | Documents new materialization options |
| docs/reference/feast-cli-commands.md | Updates CLI command documentation |
| docs/getting-started/quickstart.md | Adds simple materialization example |
| docs/getting-started/concepts/data-ingestion.md | Documents timestamp-free option |
| README.md | Updates main README with new materialization options |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| feast materialize --disable-event-timestamp | ||
| ``` | ||
|
|
||
| The `--disable-event-timestamp` flag allows you to materialize all available feature data using the current datetime as the event timestamp, without needing to specify start and end timestamps. This is useful when your source data lacks proper event timestamp columns. |
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.
I think we do not need this flag, we can keep default end time as current time and start time as (current time - 24hr/a month) ?
Same for materialize-incremental command to have end date as current time by default.
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.
my concern is the significant change that has for users, right? making it optional would silently ingest data for users without telling them about it. i'd rather do more code work to make them opt in rather than have users accidentally ingest data.
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.
That's fair 👍
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
ntkathole
left a comment
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.
Looks good
# [0.54.0](v0.53.0...v0.54.0) (2025-09-30) ### Bug Fixes * Column quoting in query of `PostgreSQLOfflineStore.pull_all_from_table_or_query` ([#5621](#5621)) ([e8eae71](e8eae71)) * Correct column list polars materialization engine ([#5595](#5595)) ([39aeb0c](39aeb0c)) * Fix Go feature server entitykey serialization for version 3 ([#5622](#5622)) ([5ab18a6](5ab18a6)) * Fix hostname resolution for spark tests ([#5610](#5610)) ([8f0e22d](8f0e22d)) * Fixed filtering based on data_source for ODFVs ([#5593](#5593)) ([c3e6c56](c3e6c56)) * Fixed project_description to set in registry and UI ([#5602](#5602)) ([02c3006](02c3006)) * Fixed Registry Cache Refresh Issues ([#5604](#5604)) ([3c7a022](3c7a022)) * Fixed tls issue when running both grpc and rest servers ([#5617](#5617)) ([51c16b1](51c16b1)) * Fixed transaction handling with SQLite registry ([#5588](#5588)) ([0052754](0052754)) * Update the deprecated functions in Go feature server. ([#5632](#5632)) ([a24e06e](a24e06e)) * Updated python packages conflicting with kserve dependencies ([#5580](#5580)) ([d56baf4](d56baf4)) ### Features * Add 'featureView' in global search api result for features. ([#5626](#5626)) ([76590bf](76590bf)) * Add aggregation in OnDemandFeatureView ([#5629](#5629)) ([8715ae8](8715ae8)) * Added codeflare-sdk to requirements ([#5640](#5640)) ([51a0ee6](51a0ee6)) * Added RemoteDatasetProxy that executes Ray Data operations remotely ([7128024](7128024)) * Added support for image search ([#5577](#5577)) ([56c5910](56c5910)) * Enable ingestion without event timestamp ([#5625](#5625)) ([eb51f00](eb51f00)) * Feast dataframe phase1 ([#5611](#5611)) ([2ce4198](2ce4198)) * Feast dataframe phase2 ([#5612](#5612)) ([1d08786](1d08786)) * Feast Namespaces registry for client ConfigMaps availability ([#5599](#5599)) ([728589a](728589a)) * Support hdfs:// uris in to_remote_storage for Spark offline store ([#5635](#5635)) ([5e4b9fd](5e4b9fd))
What this PR does / why we need it:
This PR enables materialization without a timestamp by just using the current timestamp.
As updated in the documentation, this can be run with:
Which issue(s) this PR fixes:
Fixes #5624
Misc