创建定时 SQL 任务时,您需要在 SQL 分析规则配置填写 SQL 时间窗口,用于日志检索分析的时间范围。SQL 时间窗口需要遵循一定的语法规则,本文档介绍对应的语法规则及常见场景的表达式示例。
语法格式
SQL 时间窗口语法支持的语法格式如下:
格式 | 说明 |
---|
@{unit} | 在原时间的基础上向下进行取整。
例如@h表示以小时为单位对时间进行取整,原时间如果是 01:23:17,取整后为 01:00:00。 |
+{num}{unit} | 在原时间的基础上加指定时间段。
例如 +3h 表示延后 3 小时。 |
-{num}{unit} | 在原时间的基础上减指定时间段。
例如 -30s 表示提前 30 秒。 |
参数说明如下:
参数 | 说明 |
---|
{num} | 正整数。可省略,省略后的默认值为 1。例如时间表达式为 -h ,则表示减 1 小时。 |
{unit} | 时间单位,例如 m、h、d 等。支持的时间单位请参考时间单位。 |
时间单位
SQL 时间窗口表达式支持的时间单位如下:
表达式示例
常见场景的 SQL 时间窗口表达式如下:
开始时间 | 结束时间 | 说明 |
---|
@m-15m | @m | 前 15 分钟。
如果调度开始时间为 10:00,调度间隔为每隔 15 分钟执行一次,SQL 时间窗口为 [@m-15m,@m),执行延迟为 30 秒,则实例调度时间为 10:00:00,执行时间为 10:00:30,分析 [09:45~10:00) 期间的数据。 |
@h-3h | @h | 前 3 小时。
如果调度开始时间为 10:00,调度间隔为每隔 3 小时执行一次,SQL 时间窗口为[@h-3h,@h),执行延迟为 30 秒,则实例调度时间为 10:00:00,执行时间为10:00:30,分析 [07:00~10:00) 期间的数据。 |
@h-12h-30m | @h | 前 12 小时 30 分钟。
如果调度开始时间为 22:30:00,调度间隔为每隔12.5小时(750分钟)执行一次,SQL 时间窗口为[@h-12h-30m,@h),执行延迟为 30 秒,则实例调度时间为 22:30:00,执行时间为 22:30:30,分析当天 [10:00~22:30) 期间的数据。 |