[控场AI]
概念行模式识别 / SQL行模式匹配

MATCH_RECOGNIZE

SQL标准中定义的行模式识别子句,允许用类似正则表达式的语法对数据表中连续行序列进行模式匹配,核心子句包括PARTITION BY、ORDER BY、DEFINE、PATTERN和MEASURES

时间轴 (近 90 天)

9月16日

MATCH_RECOGNIZE 是 SQL 标准中定义的行模式识别子句,用于像正则表达式一样匹配数据表中连续的行

待验证50%
9月16日

MATCH_RECOGNIZE 中 PARTITION BY 决定分组维度,ORDER BY 定义行的排列顺序

待验证50%
9月16日

MATCH_RECOGNIZE 中 DEFINE 子句用于给行的状态命名并定义判定条件,PATTERN 子句用类似正则的语法描述状态变量的出现顺序

待验证50%
9月16日

PATTERN 支持的量词与正则基本对齐,包括 *(零次或多次)、+(一次或多次)、?(零次或一次),以及 {n}、{n,m} 等精确次数控制

待验证50%
9月16日

MEASURES 子句负责从匹配到的行序列中提取信息,ONE ROW PER MATCH 每个匹配返回一行汇总,ALL ROWS PER MATCH 返回匹配区间内每一行明细

待验证50%
9月16日

MEASURES 中可使用 CLASSIFIER() 函数获取每一行被归入的模式变量名称,MATCH_NUMBER() 函数为同一分区内的多个匹配编号,FIRST() 和 LAST() 分别取模式变量首次和末次匹配行的字段值

待验证50%
9月16日

MATCH_RECOGNIZE 于 2016 年被纳入 SQL:2016 标准(ISO/IEC 9075-2:2016)

待验证50%
9月16日

Oracle Database 12c Release 2 是最早落地实现 MATCH_RECOGNIZE 的主流数据库

待验证50%
9月16日

Snowflake 在 2021 年前后跟进支持 MATCH_RECOGNIZE

待验证50%
9月16日

Apache Flink 中的 MATCH_RECOGNIZE 实现与批处理数据库存在差异,例如对无界流的处理机制和超时语义的定义不同

待验证50%

还有 3 条时间轴事件

全部知识事实 (13)

待验证

MATCH_RECOGNIZE 是 SQL 标准中定义的行模式识别子句,用于像正则表达式一样匹配数据表中连续的行

50%
待验证

MATCH_RECOGNIZE 中 PARTITION BY 决定分组维度,ORDER BY 定义行的排列顺序

50%
待验证

MATCH_RECOGNIZE 中 DEFINE 子句用于给行的状态命名并定义判定条件,PATTERN 子句用类似正则的语法描述状态变量的出现顺序

50%
待验证

PATTERN 支持的量词与正则基本对齐,包括 *(零次或多次)、+(一次或多次)、?(零次或一次),以及 {n}、{n,m} 等精确次数控制

50%
待验证

MEASURES 子句负责从匹配到的行序列中提取信息,ONE ROW PER MATCH 每个匹配返回一行汇总,ALL ROWS PER MATCH 返回匹配区间内每一行明细

50%
待验证

MEASURES 中可使用 CLASSIFIER() 函数获取每一行被归入的模式变量名称,MATCH_NUMBER() 函数为同一分区内的多个匹配编号,FIRST() 和 LAST() 分别取模式变量首次和末次匹配行的字段值

50%
待验证

MATCH_RECOGNIZE 于 2016 年被纳入 SQL:2016 标准(ISO/IEC 9075-2:2016)

50%
待验证

Oracle Database 12c Release 2 是最早落地实现 MATCH_RECOGNIZE 的主流数据库

50%
待验证

Snowflake 在 2021 年前后跟进支持 MATCH_RECOGNIZE

50%
待验证

Apache Flink 中的 MATCH_RECOGNIZE 实现与批处理数据库存在差异,例如对无界流的处理机制和超时语义的定义不同

50%
待验证

PATTERN (FAIL+ SUCCESS) 表示一次或多次失败后跟一次成功,可用于检测暴力破解得手的登录行为序列

50%
待验证

MATCH_RECOGNIZE 适用于涉及事件顺序的分析场景,包括金融风控、用户行为分析、IoT监控、股价技术形态识别等

50%
待验证

对于不支持 MATCH_RECOGNIZE 的 PostgreSQL,社区中存在基于递归 CTE 或窗口函数的变通方案,但代码复杂度会显著上升且性能表现不一

50%

来源文章