public class JoinFilterAnalyzer extends Object
computeJoinFilterPreAnalysis(org.apache.druid.segment.join.filter.JoinFilterPreAnalysisKey) method. This method should be
called before performing any per-segment join query work. This method converts the query filter into
conjunctive normal form, and splits the CNF clauses into a portion that only references base table columns and
a portion that references join table columns. For the filter clauses that apply to join table columns, the
pre-analysis step computes the information necessary for rewriting such filters into filters on base table columns.
The result of this pre-analysis method should be passed into the next step of join filter analysis, described below.
The splitFilter(JoinFilterPreAnalysis) method takes the pre-analysis result and optionally applies the
filter rewrite and push down operations on a per-segment level.| Constructor and Description |
|---|
JoinFilterAnalyzer() |
| Modifier and Type | Method and Description |
|---|---|
static JoinFilterPreAnalysis |
computeJoinFilterPreAnalysis(JoinFilterPreAnalysisKey key)
Before making per-segment filter splitting decisions, we first do a pre-analysis step
where we convert the query filter (if any) into conjunctive normal form and then
determine the structure of RHS filter rewrites (if any), since this information is shared across all
per-segment operations.
|
static JoinFilterSplit |
splitFilter(JoinFilterPreAnalysis joinFilterPreAnalysis) |
public static JoinFilterPreAnalysis computeJoinFilterPreAnalysis(JoinFilterPreAnalysisKey key)
JoinFilterPreAnalysis for details on the result of this pre-analysis step.key - All the information needed to pre-analyze a filterpublic static JoinFilterSplit splitFilter(JoinFilterPreAnalysis joinFilterPreAnalysis)
joinFilterPreAnalysis - The pre-analysis computed by #computeJoinFilterPreAnalysis)Copyright © 2011–2020 The Apache Software Foundation. All rights reserved.