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的比较

具有嵌套 CASES 的 Sql 标量值函数

Flink sql 实现 -connection-clickhouse的 source和 sink

Flink 1.0到1.9特性

Flink Runtime 1.0 Notes: Task Execution

Flink Runtime 1.0 Notes: Task Execution