更新时间:2026-07-01 GMT+08:00

语法支持的类型

SecMaster SQL语法支持的类型如下:

STRING,BOOLEAN,BYTES,DECIMAL,TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP,TIMESTAMP WITH LOCAL TIME ZONE,INTERVAL,ARRAY,MULTISET,MAP,ROW。

  • 注意事项
    1. SecMaster SQL兼容Flink 1.7.2版本SQL语法。
    1. Flink SQL 对于标识符(表、属性、函数名)有类似于 Java 的词法约定:
      • 不管是否引用标识符,都保留标识符的大小写。
      • 且标识符需区分大小写。
      • 与 Java 不一样的地方在于,通过反引号,可以允许标识符带有非字母的字符(如:"SELECT a AS `my field` FROM t")。

      字符串文本常量需要被单引号包起来(如 SELECT 'Hello World' )。两个单引号表示转义(如 SELECT 'It''s me.')。字符串文本常量支持 Unicode 字符,如需明确使用 Unicode 编码,请使用以下语法:

      • 使用反斜杠(\)作为转义字符(默认):SELECT U&'\263A'
      • 使用自定义的转义字符: SELECT U&'#263A' UESCAPE '#'
    1. 慎用正则函数(REGEXP)

      正则表达式是非常耗时的操作,对比加减乘除通常有百倍的性能开销,而且正则表达式在某些极端情况下可能会进入无限循环,导致作业阻塞,因此建议使用LIKE。正则函数包括:

      REGEXP

      REGEXP_REPLACE

    2. WHERE条件下推不支持复合类型及函数条件

      WHERE条件下推优化不支持ARRAY、MAP、ROW类型,不支持函数条件。当WHERE条件中引用ARRAY、MAP、ROW类型字段,或包含函数条件时,该语句将无法下推至数据源端执行。建议在WHERE条件中避免对ARRAY、MAP、ROW类型字段的直接引用及函数条件的使用,建议通过重构查询逻辑将相关过滤条件转化为支持下推的标量类型条件。