SQL算子和表达式支持情况
介绍在使用OmniStream Flink Native化特性时,支持的算子和表达式,以及支持的算子和表达式的数据类型列表。

- 本节描述的OmniStream Flink Native化特性支持的算子和表达式仅针对Flink1.16.3,flink1.17.1,flink1.20.0引擎。
- 支持算子列表和支持表达式列表中仅描述了OmniStream Flink Native化特性支持或涉及的数据类型,未展示的数据类型是OmniStream Flink Native化特性不支持的。
- 如果使用OmniStream Flink Native化特性不支持的算子和表达式,会导致执行计划回退为原生执行,对性能会有一定的影响。
- 使用sql-client交互式界面执行sql时,推荐将sql的结果输出到connector为blackhole的数据表中,具体可参考nexmark Q0的执行方式。
- 由于内存限制,默认情况下只支持Calc和LookupJoin算子,其他支持的算子需要export FLINK_PERFORMANCE=false设置环境变量使能。
算子和表达式支持列表中使用符号表示它们的支持状态,符号说明如表1所示。
状态 |
说明 |
---|---|
S |
表示OmniStream Flink Native化特性支持。 |
PS |
表示OmniStream Flink Native化特性部分支持,存在一些限定条件。 |
NS |
表示OmniStream Flink Native化特性不支持。 |
NA |
表示不涉及,Flink原生也没有此输入场景。 |
[Blank Cell] |
表示不适用或需要确认的情况。 |
支持算子列表
OmniStream Flink Native化特性支持的算子情况如表2所示。
支持算子名称 |
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 |
支持表达式列表
OmniStream Flink Native化特性支持的表达式/函数情况如表3所示。
表达式 |
函数类型 |
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 |