public class BeamUnionRel extends Union implements BeamRelNode
BeamRelNode to replace a Union.
BeamUnionRel needs the input of it have the same WindowFn. From the SQL
perspective, two cases are supported:
1) Do not use grouped window function:
select * from person UNION select * from person
2) Use the same grouped window function, with the same param:
select id, count(*) from person
group by id, TUMBLE(order_time, INTERVAL '1' HOUR)
UNION
select * from person
group by id, TUMBLE(order_time, INTERVAL '1' HOUR)
Inputs with different group functions are NOT supported:
select id, count(*) from person
group by id, TUMBLE(order_time, INTERVAL '1' HOUR)
UNION
select * from person
group by id, TUMBLE(order_time, INTERVAL '2' HOUR)
| Constructor and Description |
|---|
BeamUnionRel(RelOptCluster cluster,
RelTraitSet traits,
java.util.List<RelNode> inputs,
boolean all) |
| Modifier and Type | Method and Description |
|---|---|
SetOp |
copy(RelTraitSet traitSet,
java.util.List<RelNode> inputs,
boolean all) |
PTransform<PCollectionTuple,PCollection<Row>> |
toPTransform()
A
BeamRelNode is a recursive structure, the BeamQueryPlanner visits it with a
DFS(Depth-First-Search) algorithm. |
public BeamUnionRel(RelOptCluster cluster,
RelTraitSet traits,
java.util.List<RelNode> inputs,
boolean all)
public SetOp copy(RelTraitSet traitSet,
java.util.List<RelNode> inputs,
boolean all)
public PTransform<PCollectionTuple,PCollection<Row>> toPTransform()
BeamRelNodeBeamRelNode is a recursive structure, the BeamQueryPlanner visits it with a
DFS(Depth-First-Search) algorithm.toPTransform in interface BeamRelNode