Add AnalyticsExecutionEngine and query routing for Parquet-backed indices#5256
Add AnalyticsExecutionEngine and query routing for Parquet-backed indices#5256ahkcs wants to merge 1 commit into
Conversation
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 829ca34.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
829ca34 to
253da49
Compare
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 253da49.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
PR Reviewer Guide 🔍(Review updated until commit 3b1ecb8)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to 3b1ecb8 Explore these optional code suggestions:
Previous suggestionsSuggestions up to commit 094a096
Suggestions up to commit 253da49
|
253da49 to
094a096
Compare
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 094a096.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
|
Persistent review updated to latest commit 094a096 |
…ices (opensearch-project#5247) Implements the execution engine adapter and query routing infrastructure for Project Mustang's unified query pipeline (Option B). PPL queries targeting parquet_ prefixed indices are routed through UnifiedQueryPlanner and AnalyticsExecutionEngine instead of the existing Lucene path. Key changes: - QueryPlanExecutor interface: contract for analytics engine execution - AnalyticsExecutionEngine: converts QueryPlanExecutor results to QueryResponse - RestUnifiedQueryAction: orchestrates schema building, planning, execution - RestPPLQueryAction: routing branch for parquet_ indices - StubQueryPlanExecutor: canned data for development/testing Signed-off-by: Kai Huang <kaihuang@amazon.com> Signed-off-by: Kai Huang <ahkcs@amazon.com>
094a096 to
3b1ecb8
Compare
|
Retargeting to feature branch feature/mustang-ppl-integration |
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 3b1ecb8.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
|
Persistent review updated to latest commit 3b1ecb8 |
Summary
Implements the execution engine adapter and query routing infrastructure for Project Mustang's unified query pipeline (#5247).
QueryPlanExecutor—@FunctionalInterfacecontract for analytics engine plan execution. Local equivalent of upstreamorg.opensearch.analytics.exec.QueryPlanExecutor; will be swapped when analytics-framework JAR is published.AnalyticsExecutionEngine— ImplementsExecutionEngine. BridgesQueryPlanExecutoroutput (Iterable<Object[]>) to the SQL plugin'sQueryResponsepipeline with type mapping viaOpenSearchTypeFactoryand row conversion viaExprValueUtils.RestUnifiedQueryAction— Orchestrates the full analytics query path: index detection, schema building, PPL planning viaUnifiedQueryPlanner, execution viaAnalyticsExecutionEngine, response formatting viaJdbcResponseFormatter. Runs onsql-workerthread pool.RestPPLQueryAction— Added routing branch: queries targetingparquet_prefixed indices are routed to the analytics path; all other queries go through the existing Lucene path unchanged.StubQueryPlanExecutor— Returns canned data forparquet_logsandparquet_metricsstub tables, enabling full pipeline testing without the analytics engine.Test plan
AnalyticsExecutionEngine(type mapping, row conversion, query size limit, null handling, error propagation, explain, PhysicalPlan rejection)RestUnifiedQueryAction(index name extraction, routing detection for various PPL patterns)