-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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](nereids) support Iceberg time travel syntax #34681
[feat](nereids) support Iceberg time travel syntax #34681
Conversation
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
run buildall |
@morningman @morrySnow kindly request your review. Thx. |
fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
Outdated
Show resolved
Hide resolved
fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
Outdated
Show resolved
Hide resolved
87196e8
to
fa83cce
Compare
run buildall |
TPC-H: Total hot run time: 39892 ms
|
TPC-DS: Total hot run time: 186552 ms
|
fa83cce
to
3401f61
Compare
run buildall |
fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
Outdated
Show resolved
Hide resolved
3401f61
to
f18eb36
Compare
run buildall |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
TPC-H: Total hot run time: 40423 ms
|
TPC-DS: Total hot run time: 187388 ms
|
TPC-DS: Total hot run time: 186741 ms
|
ClickBench: Total hot run time: 30.16 s
|
@morrySnow Gentle ping. Can we merge this change? Or Is there anything else that needs to be done? |
we need 2 approve to merge pr. let's find another reviewer to review this PR |
@wuwenchi PTAL |
fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
Outdated
Show resolved
Hide resolved
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java
Outdated
Show resolved
Hide resolved
@@ -169,6 +170,7 @@ public class HMSExternalTable extends ExternalTable implements MTMVRelatedTableI | |||
// for hudi incremental read | |||
private TableScanParams scanParams = null; | |||
private IncrementalRelation incrementalRelation = null; | |||
private TableSnapshot tableSnapshot = null; |
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.
Can we get snapshot version information directly from IcebergScanNode?
- This naturally supports all types of iceberg tables.
- Specify that the snapshot belongs to the query, and its valid range is related to the query, so it is not appropriate to put this information in the HMSExternalTable.
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 you suggesstion!
I refine this PR in 2108139.
Now we can support all types of iceberg tables, and i set the snapshot in IcebergScanNode through method PhysicalPlanTranslator::visitPhysicalFileScan
.
Please help to check if this change is good for you.
fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
Outdated
Show resolved
Hide resolved
f18eb36
to
2108139
Compare
run buildall |
2108139
to
1907600
Compare
1907600
to
761c29f
Compare
run buildall |
TPC-H: Total hot run time: 42135 ms
|
TPC-DS: Total hot run time: 181302 ms
|
ClickBench: Total hot run time: 30.89 s
|
LGTM 👍 |
PR approved by at least one committer and no changes requested. |
#15418 added Iceberg time travel in legacy parser but not added this syntax Neredis. If we enable nereids and disable fallback to original palnner, time travel won't be available. This PR added time travel syntas in Neredis. BTW, we already have nereids time travel regression-test in https://github.com/apache/doris/blob/master/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy this regression-test will always fail without this PR. https://github.com/apache/doris/blob/88530bf9437e60190f198252ab82f53fa53d4c10/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy#L70-L75
apache#15418 added Iceberg time travel in legacy parser but not added this syntax Neredis. If we enable nereids and disable fallback to original palnner, time travel won't be available. This PR added time travel syntas in Neredis. BTW, we already have nereids time travel regression-test in https://github.com/apache/doris/blob/master/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy this regression-test will always fail without this PR. https://github.com/apache/doris/blob/88530bf9437e60190f198252ab82f53fa53d4c10/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy#L70-L75
backport: #34681 Co-authored-by: Butao Zhang <[email protected]>
Proposed changes
#15418 added Iceberg time travel in legacy parser but not added this syntax Neredis. If we enable nereids and disable fallback to original palnner, time travel won't be available.
This PR added time travel syntas in Neredis.
BTW, we already have nereids time travel regression-test in https://github.com/apache/doris/blob/master/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy, this regression-test will always fail without this PR.
doris/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
Lines 70 to 75 in 88530bf
Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...