You need to enable JavaScript to run this app.
导航

功能原理

最近更新时间2023.08.22 21:10:42

首次发布时间2023.08.22 21:10:42

本文档介绍定时 SQL 分析任务的实现流程、调度示例和基本概念。

实现流程

功能实现流程:

  1. 用户创建定时 SQL 分析任务,创建时需填写基础配置SQL 分析规则配置。

  2. 后端服务根据已配置的任务时间和调度周期创建调度实例,并按时执行实例调度。
    一个任务中同时最多只能有一个实例运行中,如果前一个实例因为检索时间范围内的数据尚未完成写入等原因而延迟运行,后一个的实例已达到调度时间且检索范围内数据写入完成,则后一个实例会优先运行。
    如果日志主题中已存在晚于检索时间范围内的日志数据,则判断检索时间范围内的数据已全部完成写入。例如检索时间范围为 [10:00~11:00),如果写入了一条 11:01 的日志数据,则判断检索时间范围内的数据已全部完成写入。

  3. 实例会根据配置的查询语句对指定日志主题进行检索分析,并将查询结果写入指定的日志主题中。

调度示例

例如创建任务时设置调度开始时间为2023年8月17日10:00:00,调度周期为每 1 小时执行一次,SQL 时间窗口为[@h-1h,@h),延迟 30 秒执行。则第一个实例的调度时间为11:00:00,执行时间为11:00:30,检索日志时间为 [10:00,11:00) 范围内的日志数据。

alt

基本概念

术语说明
定时 SQL 分析任务定时 SQL 分析规则的集合,包括源端和目标端日志主题等基础配置、调度周期和 SQL 时间窗口等 SQL 分析规则配置。

实例

定时 SQL 分析任务启动后,日志服务会根据指定的调度周期按时创建实例,每个实例用于在源日志主题中执行一次定时 SQL 分析,并将计算结果写入指定的日志主题。

说明

  • 一个任务会陆续生成多个实例,但一个任务中同时只能有一个实例正在运行。
  • 实例被创建后,后端服务会检查实例是否满足执行条件,未满足条件的实例不能开始执行。详细说明请参考为什么定时 SQL 任务的调度实例一直不执行?
调度周期定时 SQL 分析任务的调度周期,调度周期决定每个实例的调度时间。

调度时间

默认情况下调度实例开始执行的时间,由调度周期决定,不受上一个实例执行超时、延迟、补运行等情况的影响。
如果调度实例在该时间点未满足执行条件,或设置了延迟执行,则实例开始执行的时间将推迟。

执行时间实例的实际执行时间,即定时 SQL 分析任务的实例实际开始执行的时间。默认情况下实例根据调度时间正常运行,如果设置了延迟运行,或前一个实例未执行完毕等不满足执行条件的情况,此时间会晚于调度时间。
SQL 时间窗口定时 SQL 分析任务运行时,日志检索分析的时间范围,左闭右开格式。指定 SQL 时间窗口之后,日志服务会根据指定的调度周期按时发起定时 SQL 分析任务,并分析指定 SQL 时间窗口内的日志数据。
延迟执行每次调度的延迟时间。当日志数据量大、采集任务繁忙时,数据写入日志主题可能存在一定延迟,在该场景下可以指定执行延迟时间,保证检索分析时的数据完整性。