Flink SQL 1.0+ UT Cases
Posted 张包峰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink SQL 1.0+ UT Cases相关的知识,希望对你有一定的参考价值。
Flink SQL UT Case
截止当前flink master分支最新的代码(未完成的1.1版本),Flink Table项目的UT,batch sql(即直接调用.sql())的sql, logicalPlan, physicalPlan整理。
/** Filter **/
SELECT * FROM MyTable WHERE false
LogicalProject(_1=[$0], _2=[$1], _3=[$2])
LogicalFilter(condition=[false])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[_1, _2, _3], where=[false]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 9000.0 cpu, 0.0 io, id = 99
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 93
SELECT * FROM MyTable WHERE true
LogicalProject(_1=[$0], _2=[$1], _3=[$2])
LogicalTableScan(table=[[MyTable]])
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 13
SELECT * FROM MyTable WHERE c LIKE '%world%'
LogicalProject(a=[$0], b=[$1], c=[$2])
LogicalFilter(condition=[LIKE($2, '%world%')])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_2, 'b') AS _2, AS(_3, 'c') AS _3], where=[LIKE(AS(_3, 'c'), '%world%')]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 16000.0 cpu, 0.0 io, id = 44
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 28
SELECT * FROM MyTable WHERE MOD(a,2)=0
LogicalProject(a=[$0], b=[$1], c=[$2])
LogicalFilter(condition=[=(MOD($0, 2), 0)])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_2, 'b') AS _2, AS(_3, 'c') AS _3], where=[=(MOD(AS(_1, 'a'), 2), 0)]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 18000.0 cpu, 0.0 io, id = 44
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 28
SELECT * FROM MyTable WHERE a < 2 OR a > 20
LogicalProject(a=[$0], b=[$1], c=[$2])
LogicalFilter(condition=[OR(<($0, 2), >($0, 20))])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_2, 'b') AS _2, AS(_3, 'c') AS _3], where=[OR(<(AS(_1, 'a'), 2), >(AS(_1, 'a'), 20))]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 19000.0 cpu, 0.0 io, id = 44
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 28
SELECT * FROM MyTable WHERE MOD(a,2)<>0 AND MOD(b,2)=0
LogicalProject(a=[$0], b=[$1], c=[$2])
LogicalFilter(condition=[AND(<>(MOD($0, 2), 0), =(MOD($1, 2), 0))])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_2, 'b') AS _2, AS(_3, 'c') AS _3], where=[AND(<>(MOD(AS(_1, 'a'), 2), 0), =(MOD(AS(_2, 'b'), 2), 0))]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 21000.0 cpu, 0.0 io, id = 44
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 28
/** Join **/
SELECT c, g FROM Table3, Table5 WHERE b = e
LogicalProject(c=[$2], g=[$6])
LogicalFilter(condition=[=($1, $4)])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS b, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 24006.0 cpu, 40000.0 io, id = 265
DataSetJoin(where=[=(b, e)], join=[b, c, e, g], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 24000.0 cpu, 40000.0 io, id = 264
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 10000.0 cpu, 0.0 io, id = 262
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 198
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 263
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 200
SELECT c, g FROM Table3, Table5 WHERE b = e AND b < 2
LogicalProject(c=[$2], g=[$6])
LogicalFilter(condition=[AND(=($1, $4), <($1, 2))])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS b, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 27006.0 cpu, 40000.0 io, id = 425
DataSetJoin(where=[=(b, e)], join=[b, c, e, g], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 27000.0 cpu, 40000.0 io, id = 424
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2], where=[<(AS(_2, 'b'), 2)]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 13000.0 cpu, 0.0 io, id = 422
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 278
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 423
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 280
SELECT c, g FROM Table3, Table5 WHERE b = e AND a < 6 AND h < b
LogicalProject(c=[$2], g=[$6])
LogicalFilter(condition=[AND(=($1, $4), <($0, 6), <($7, $1))])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS b, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 32007.0 cpu, 48000.0 io, id = 208
DataSetJoin(where=[AND(=(b, e), <(h, b))], join=[b, c, e, g, h], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 32000.0 cpu, 48000.0 io, id = 207
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2], where=[<(AS(_1, 'a'), 6)]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 15000.0 cpu, 0.0 io, id = 205
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 65
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2, AS(_5, 'h') AS _3]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 15000.0 cpu, 0.0 io, id = 206
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 67
SELECT c, g FROM Table3, Table5 WHERE a = d AND b = h
LogicalProject(c=[$2], g=[$6])
LogicalFilter(condition=[AND(=($0, $3), =($1, $7))])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS a, g AS b]): rowcount = 1.0, cumulative cost = 6001.0 rows, 30008.0 cpu, 48000.0 io, id = 129
DataSetJoin(where=[AND(=(a, d), =(b, h))], join=[a, b, c, d, g, h], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 30000.0 cpu, 48000.0 io, id = 128
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_2, 'b') AS _2, AS(_3, 'c') AS _3]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 13000.0 cpu, 0.0 io, id = 126
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 65
DataSetCalc(select=[AS(_1, 'd') AS _1, AS(_4, 'g') AS _2, AS(_5, 'h') AS _3]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 15000.0 cpu, 0.0 io, id = 127
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 67
SELECT c, g FROM Table3, Table5 WHERE a = g
LogicalProject(c=[$2], g=[$6])
LogicalFilter(condition=[=($0, $6)])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS a, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 21005.0 cpu, 28000.0 io, id = 132
DataSetJoin(where=[=(a, g)], join=[a, c, g], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 21000.0 cpu, 28000.0 io, id = 131
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_3, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 10000.0 cpu, 0.0 io, id = 129
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 65
DataSetCalc(select=[AS(_4, 'g') AS _1]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 9000.0 cpu, 0.0 io, id = 130
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 67
SELECT Table5.c, Table3.c FROM Table3, Table5 WHERE a = d AND a < 4
LogicalProject(c=[$7], c0=[$2])
LogicalFilter(condition=[AND(=($0, $3), <($0, 4))])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c0 AS a, c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 27006.0 cpu, 28000.0 io, id = 212
DataSetJoin(where=[=(a, d)], join=[a, c, d, c0], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 27000.0 cpu, 28000.0 io, id = 211
DataSetCalc(select=[AS(_1, 'a') AS _1, AS(_3, 'c') AS _2], where=[<(AS(_1, 'a'), 4)]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 13000.0 cpu, 0.0 io, id = 209
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 65
DataSetCalc(select=[AS(_1, 'd') AS _1, AS(_5, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 210
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 67
SELECT COUNT(g), COUNT(b) FROM Table3, Table5 WHERE a = d
LogicalAggregate(group=[], EXPR$0=[COUNT($0)], EXPR$1=[COUNT($1)])
LogicalProject(g=[$6], b=[$1])
LogicalFilter(condition=[=($0, $3)])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetAggregate(select=[COUNT(g) AS EXPR$0, COUNT(b) AS EXPR$1]): rowcount = 1.0, cumulative cost = 6002.0 rows, 16008.0 cpu, 28020.0 io, id = 175
DataSetCalc(select=[g AS a, b]): rowcount = 1.0, cumulative cost = 6001.0 rows, 16006.0 cpu, 28000.0 io, id = 174
DataSetJoin(where=[=(a, d)], join=[a, b, d, g], joinType=[Join]): rowcount = 1.0, cumulative cost = 6000.0 rows, 16000.0 cpu, 28000.0 io, id = 173
DataSetCalc(select=[a, b]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 6000.0 cpu, 0.0 io, id = 171
DataSetScan(table=[[Table3]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 161
DataSetCalc(select=[d, g AS e]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 8000.0 cpu, 0.0 io, id = 172
DataSetScan(table=[[Table5]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 162
SELECT c, g FROM Table3 FULL OUTER JOIN Table5 ON b = e
LogicalProject(c=[$2], g=[$6])
LogicalJoin(condition=[=($1, $4)], joinType=[full])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS b, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 24006.0 cpu, 40000.0 io, id = 74
DataSetJoin(where=[=(b, e)], join=[b, c, e, g], joinType=[FullOuterJoin]): rowcount = 1.0, cumulative cost = 6000.0 rows, 24000.0 cpu, 40000.0 io, id = 73
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 10000.0 cpu, 0.0 io, id = 71
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 49
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 72
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 51
SELECT c, g FROM Table5 LEFT OUTER JOIN Table3 ON b = e
LogicalProject(c=[$7], g=[$3])
LogicalJoin(condition=[=($6, $1)], joinType=[left])
LogicalTableScan(table=[[Table5]])
LogicalTableScan(table=[[Table3]])
DataSetCalc(select=[c AS e, g]): rowcount = 1.0, cumulative cost = 6001.0 rows, 24006.0 cpu, 40000.0 io, id = 74
DataSetJoin(where=[=(b, e)], join=[e, g, b, c], joinType=[LeftOuterJoin]): rowcount = 1.0, cumulative cost = 6000.0 rows, 24000.0 cpu, 40000.0 io, id = 73
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 71
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 51
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 10000.0 cpu, 0.0 io, id = 72
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 49
SELECT c, g FROM Table3 RIGHT OUTER JOIN Table5 ON b = e
LogicalProject(c=[$2], g=[$6])
LogicalJoin(condition=[=($1, $4)], joinType=[right])
LogicalTableScan(table=[[Table3]])
LogicalTableScan(table=[[Table5]])
DataSetCalc(select=[c AS b, g AS c]): rowcount = 1.0, cumulative cost = 6001.0 rows, 24006.0 cpu, 40000.0 io, id = 74
DataSetJoin(where=[=(b, e)], join=[b, c, e, g], joinType=[RightOuterJoin]): rowcount = 1.0, cumulative cost = 6000.0 rows, 24000.0 cpu, 40000.0 io, id = 73
DataSetCalc(select=[AS(_2, 'b') AS _1, AS(_3, 'c') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 10000.0 cpu, 0.0 io, id = 71
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 49
DataSetCalc(select=[AS(_2, 'e') AS _1, AS(_4, 'g') AS _2]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 12000.0 cpu, 0.0 io, id = 72
DataSetScan(table=[[_DataSetTable_1]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 51
/** Aggregations **/
SELECT sum(_1), min(_1), max(_1), count(_1), avg(_1) FROM MyTable
LogicalAggregate(group=[], EXPR$0=[SUM($0)], EXPR$1=[MIN($0)], EXPR$2=[MAX($0)], EXPR$3=[COUNT($0)], EXPR$4=[AVG($0)])
LogicalProject(_1=[$0])
LogicalTableScan(table=[[MyTable]])
DataSetAggregate(select=[SUM(_1) AS EXPR$0, MIN(_1) AS EXPR$1, MAX(_1) AS EXPR$2, COUNT(_1) AS EXPR$3, AVG(_1) AS EXPR$4]): rowcount = 1000.0, cumulative cost = 3000.0 rows, 10000.0 cpu, 4000.0 io, id = 26
DataSetCalc(select=[_1]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 5000.0 cpu, 0.0 io, id = 25
DataSetScan(table=[[MyTable]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 23
SELECT avg(_1), avg(_2), avg(_3), avg(_4), avg(_5), avg(_6), count(_7), sum(CAST(_6 AS DECIMAL)) FROM MyTable
LogicalAggregate(group=[], EXPR$0=[AVG($0)], EXPR$1=[AVG($1)], EXPR$2=[AVG($2)], EXPR$3=[AVG($3)], EXPR$4=[AVG($4)], EXPR$5=[AVG($5)], EXPR$6=[COUNT($6)], EXPR$7=[SUM($7)])
LogicalProject(_1=[$0], _2=[$1], _3=[$2], _4=[$3], _5=[$4], _6=[$5], _7=[$6], $f7=[CAST($5):DECIMAL(1073741823, 0)])
LogicalTableScan(table=[[MyTable]])
DataSetAggregate(select=[AVG(_1) AS EXPR$0, AVG(_2) AS EXPR$1, AVG(_3) AS EXPR$2, AVG(_4) AS EXPR$3, AVG(_5) AS EXPR$4, AVG(_6) AS EXPR$5, COUNT(_7) AS EXPR$6, SUM($f7) AS EXPR$7]): rowcount = 1000.0, cumulative cost = 3000.0 rows, 25000.0 cpu, 51000.0 io, id = 24
DataSetCalc(select=[_1, _2, _3, _4, _5, _6, _7]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 17000.0 cpu, 0.0 io, id = 23
DataSetScan(table=[[MyTable]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 21
SELECT avg(a + 2) + 2, count(b) + 5 FROM MyTable
LogicalProject(EXPR$0=[+($0, 2)], EXPR$1=[+($1, 5)])
LogicalAggregate(group=[], agg#0=[AVG($0)], agg#1=[COUNT($1)])
LogicalProject($f0=[+($0, 2)], b=[$1])
LogicalTableScan(table=[[MyTable]])
DataSetCalc(select=[+($f0, 2) AS $f0, +($f1, 5) AS $f1]): rowcount = 1000.0, cumulative cost = 4000.0 rows, 17000.0 cpu, 16000.0 io, id = 32
DataSetAggregate(select=[AVG($f0) AS $f0, COUNT(b) AS $f1]): rowcount = 1000.0, cumulative cost = 3000.0 rows, 9000.0 cpu, 16000.0 io, id = 31
DataSetCalc(select=[+(a, 2) AS a, b]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 7000.0 cpu, 0.0 io, id = 30
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 26
SELECT avg(a), sum(b), count(c) FROM (SELECT _1 as a, _2 as b, _3 as c FROM MyTable)
LogicalAggregate(group=[], EXPR$0=[AVG($0)], EXPR$1=[SUM($1)], EXPR$2=[COUNT($2)])
LogicalProject(a=[$0], b=[$1], c=[$2])
LogicalTableScan(table=[[MyTable]])
DataSetAggregate(select=[AVG(a) AS EXPR$0, SUM(b) AS EXPR$1, COUNT(c) AS EXPR$2]): rowcount = 1000.0, cumulative cost = 3000.0 rows, 14000.0 cpu, 7000.0 io, id = 27
DataSetCalc(select=[_1, _2, _3]): rowcount = 1000.0, cumulative cost = 2000.0 rows, 11000.0 cpu, 0.0 io, id = 26
DataSetScan(table=[[_DataSetTable_0]]): rowcount = 1000.0, cumulative cost = 1000.0 rows, 1000.0 cpu, 0.0 io, id = 20
SELECT sum(_1) as a, count(distinct _3) as b FROM MyTable
LogicalAggregate(group=[], a=[SUM($0)], b=[COUNT(DISTINCT $1)])
LogicalProject(_1=[$0], _3=[$2])
LogicalTableScan(table=[[MyTable]])
/** distinct not support**/
SELECT _2, _3, avg(_1) as a FROM MyTable GROUP BY GROUPING SETS (_2, _3)
LogicalProject(_2=[$0], _3=[$1], a=[$4])
LogicalProject(_2=[CASE($2, null, $0)], _3=[CASE($3, null, $1)], i$_2=[$2], i$_3=[$3], a=[$4])
LogicalAggregate(group=[0, 1], groups=[[0, 1]], indicator=[true], a=[AVG($2)])
LogicalProject(_2=[$1], _3=[$2], _1=[$0])
LogicalTableScan(table=[[MyTable]])
/** grouping set not support **/
/** Set **/
SELECT c FROM t1 UNION ALL (SELECT c FROM t2)
LogicalUnion(all=[true])
LogicalProject(c=[$2])
LogicalTableScan(table=[[t1]])
LogicalProject(c=[$2])
LogicalTableScan(table=[[t2]])
DataSetUnion(union=[c]): rowcount = KSQL与Flink SQL的比较
Flink sql 实现 -connection-clickhouse的 source和 sink