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(RelInput input) |
BeamUnionRel(RelOptCluster cluster,
RelTraitSet traits,
java.util.List<RelNode> inputs,
boolean all) |
Modifier and Type | Method and Description |
---|---|
PCollection<BeamRecord> |
buildBeamPipeline(PCollectionTuple inputPCollections,
BeamSqlEnv sqlEnv)
A
BeamRelNode is a recursive structure, the
BeamQueryPlanner visits it with a DFS(Depth-First-Search)
algorithm. |
SetOp |
copy(RelTraitSet traitSet,
java.util.List<RelNode> inputs,
boolean all) |
public BeamUnionRel(RelOptCluster cluster, RelTraitSet traits, java.util.List<RelNode> inputs, boolean all)
public BeamUnionRel(RelInput input)
public SetOp copy(RelTraitSet traitSet, java.util.List<RelNode> inputs, boolean all)
public PCollection<BeamRecord> buildBeamPipeline(PCollectionTuple inputPCollections, BeamSqlEnv sqlEnv) throws java.lang.Exception
BeamRelNode
BeamRelNode
is a recursive structure, the
BeamQueryPlanner
visits it with a DFS(Depth-First-Search)
algorithm.buildBeamPipeline
in interface BeamRelNode
java.lang.Exception