-
Notifications
You must be signed in to change notification settings - Fork 599
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: unify streaming and batch OVER window #10021
Comments
@zhenzhongxu can you provide a minimal reproducible example so we can try to run both and explore the APIs. I wonder if these are just different ways of achieving the same goal, rather than an inconsistency. In the meantime maybe @chloeh13q has some input here, since I believe she worked on the window operation support for flink. |
@ncclementi thanks for the note. I looked deeper and realized the range-based window (streaming) and row-based window (batch) already have a unified API and expression tree. I had an invalid assumption initially from confusing with the TVFs. We can go ahead and resolve this ticket for now.
|
On another note, Ibis generates the correct expression for row-based and ranged-based OVER window. It looks like ibis-substrate errors out generating the corresponding substrait plan for the range window. @gforsyth looks like this is a separate issue from the one we discovered in the original ibis-substrait thread. I'll move the discussion to downstream again, we can close this ticket.
|
Is your feature request related to a problem?
Ibis has a streaming specific over window:
and a batch OVER window:
which generates different expression trees. The syntax is only different on minor details (mutate + time range vs row range). Are there opportunities for converging the two APIs to avoid user confusions. (I am putting myself in the users shoes).
This issue is originally surfaced in ibis-project/ibis-substrait#1117
What is the motivation behind your request?
Improve stream/batch unification on Ibis
Describe the solution you'd like
I'd like to see a single unified API for both batch and streaming OVER window, with backend specific rewrite logic into expressions that can work across.
What version of ibis are you running?
9.0.0
What backend(s) are you using, if any?
DuckDB, Flink
Code of Conduct
The text was updated successfully, but these errors were encountered: