SQL算子和表达式支持情况
介绍在Flink 1.16.3、Flink 1.17.1和Flink 1.20.0引擎下,OmniStream Flink Native化特性对SQL算子及表达式(含数据类型)的支持范围、限制条件与使用规则。
OmniStream Flink Native化特性支持的算子、表达式、函数如表2和表3所示,表格中使用符号表示算子和表达式是否支持,符号的含义请参见表1。
- 表2和表3中仅描述了OmniStream Flink Native化特性支持或涉及的数据类型,未展示的数据类型是OmniStream Flink Native化特性不支持的。
- 如果使用OmniStream Flink Native化特性不支持的算子和表达式,会导致执行计划回退为原生执行,对性能会有影响。
- 使用sql-client交互式界面执行SQL时,推荐将SQL的结果输出到connector为blackhole的数据表中,具体可参考nexmark Q0的执行方式。
- 由于内存限制,默认情况下只支持Calc和LookupJoin算子,其他支持的算子需要export FLINK_PERFORMANCE=false设置环境变量使能。
符号 |
含义 |
|---|---|
S |
表示支持该算子或表达式。 |
PS |
表示部分支持该算子或表达式,但存在一些限定条件。具体的限定条件请参见约束与限制。 |
NS |
表示不支持该算子或表达式。 |
NA |
表示不涉及该算子或表达式。开源版本Flink也没有此输入场景。 |
[Blank Cell] |
表示不适用或需要确认。 |
支持算子名称 |
BIGINT |
VARCHAR |
TIMESTAMP(3) |
|---|---|---|---|
Calc |
S |
S |
S |
Sink |
S |
S |
S |
Csv Source |
S |
S |
S |
Kafka Source |
S |
S |
S |
Kafka Sink |
S |
S |
S |
Join |
PS |
PS |
PS |
LookupJoin |
PS |
PS |
PS |
GroupAggregate |
PS |
PS |
PS |
LocalGroupAggregate |
PS |
PS |
PS |
GlobalGroupAggregate |
PS |
PS |
PS |
IncrementalGroupAggregate |
PS |
PS |
PS |
LocalWindowAggregate |
PS |
PS |
PS |
GlobalWindowAggregate |
PS |
PS |
PS |
GroupWindowAggregate |
PS |
PS |
PS |
WindowAggregate |
PS |
PS |
PS |
WindowJoin |
PS |
PS |
PS |
Deduplicate |
PS |
PS |
PS |
Expand |
PS |
PS |
PS |
Rank |
PS |
PS |
PS |
表达式 |
函数类型 |
BIGINT |
VARCHAR |
NULL |
TIMESTAMP(3) |
|---|---|---|---|---|---|
* |
Scalar Functions |
S |
NS |
S |
S |
+ |
Scalar Functions |
S |
NS |
S |
S |
- |
Scalar Functions |
S |
NS |
S |
S |
/ |
Scalar Functions |
S |
NS |
S |
S |
LOWER |
Scalar Functions |
NA |
S |
NA |
NA |
SPLIT_INDEX |
Scalar Functions |
S |
S |
NA |
NA |
DATE_FORMAT |
Scalar Functions |
NA |
NA |
NA |
S |
COUNT_CHAR |
Scalar Functions |
NA |
S |
NA |
NA |
HOUR |
Scalar Functions |
S |
NA |
NS |
S |
REGEX_EXTRACT |
Scalar Functions |
NA |
S |
NS |
NA |