-
Notifications
You must be signed in to change notification settings - Fork 204
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
Support complex filter before merge procedure #256
Comments
TSBS is added to CI, we can use it to compare performance before/after fix this issue |
To utilize datafusion, we can do:
Maybe I can help do this task :D. |
It will be appreciated if you volunteer to help. |
@ygf11 I have updated the code location about the filtering procedure, and I hope it will help: |
Thanks for reminding, it helps a lot. |
Describe This Problem
A filter procedure according to the query predicates will be applied to the record batch stream from sst before feeding the batches to the merge iterator. However, the filter only supports a very simple form --
anded
binary expression, so it doesn't work if the query predicate is complex, e.g.where (hostname = '127.0.0.1' or hostname = '192.168.0.2') and timestamp between 'xxxx' and 'xxxx'
.Proposal
The crucial point here is how to make the filter procedure can support complex predicate expressions, and basically there are two approaches to this target:
datafusion
;And I vote for the first approach, but we have to figure out how to utilize
datafusion
to implement the filter logic.Additional Context
The filter procedure is applied here:
https://github.com/CeresDB/ceresdb/blob/43a84ba3c2ddcee69906e70322060b6dc4e91ddc/analytic_engine/src/row_iter/record_batch_stream.rs#L137
No response
The text was updated successfully, but these errors were encountered: