GeezerVison is showing github.com — feat: Add deduplicate pushdown to clickhouse - improve materialize performance by astronautas · Pull Request #5709 · feast-dev/feast
Conversation
astronautas
commented
Nov 3, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
What this PR does / why we need it:
#5707. We have observed significant slowdown in heavy materialization jobs. Heavy = pulling in significant period of {start_ts, end_ts}, when essentially you end up with many values to be deduplicated by Feast's compute engine. Unfortunately, Polars local engine did not show any significant speed-up. Spark is out of question due to sheer complexity of adding yet another cluster engine. We also observed nearly twice increased memory usage...
Not being a fan of altering the core, I would like to introduce a local change to Clickhouse provider to pushdown the deduplication logic to offline store. This assumes you don't have any Feast compute transformations or aggregation. I would like to just use a flag for now and not make it overcomplicated i.e. try to infer it's Pandas, if it has compute engine transformations. Keeping it simple, for now, and disabled by default.
Which issue(s) this PR fixes:
#5707
Misc
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
astronautas
commented
Nov 3, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
@HaoXuAI Let me know what you think. I really wouldn't like to make it more complicated than above, for now 😁 .
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
astronautas
changed the title
feat: Add deduplicate pushdown to clickhouse
feat: Add deduplicate pushdown to clickhouse - improve materialize performance
Nov 3, 2025
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
I guess I'm curious who wouldn't want this behavior natively? Based on the other thread, it sounds like we degraded functionality and probably it would make sense to remove the pandas deduplication and make that optional.
What do you think @HaoXuAI?
|
astronautas reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
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.
Thanks for contributing, but I think this will make it inconsistent with other offline store.
Instead of changing at the store level, I would suggest to make the materialize an option config pull_latest=true, this will explicitly let the user to be able to either pull all or pull latest.
@franciscojavierarceo The reason we change to pull_all is because pull_latest doesn't work with the transformation such as aggregation and in some cases feature_transformation as well.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
astronautas and franciscojavierarceo reacted with thumbs up emoji
Thanks for contributing, but I think this will make it inconsistent with other offline store. Instead of changing at the store level, I would suggest to make the materialize an option config pull_latest=true, this will explicitly let the user to be able to either pull all or pull latest. @franciscojavierarceo The reason we change to pull_all is because pull_latest doesn't work with the transformation such as aggregation and in some cases feature_transformation as well.
Will adjust, makes sense.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
#5713 closing in favor of this
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
haoxu0
haoxu0 requested changes
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
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.
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.
|