更新时间:2025-08-06 GMT+08:00
PROCTIME
功能描述
PROCTIME表示调用系统处理时间。
事件时间和处理时间使用场景说明
- 事件时间语义适用数据延迟可能性大、顺序性关键、精度要求高的场景。例如攻击检测等要求攻击链准确、还原行为发生顺序的场景建议使用事件时间语义;
- 处理时间语义适用于实时性强、容忍精度误差的场景。实时快速告警等响应优先的场景建议使用处理时间语义。
- 请根据您的业务需要选择是使用事件时间语义还是处理时间语义,如果是处理时间语义请使用该语法。关于事件时间和处理时间的含义说明如下:
- 处理时间:处理时间是指执行相应操作的机器的系统时间。
- 事件时间:是指事件本身发生的时间,通常由数据中携带的字段表示(例如用户点击日志中的 event_time: "2025-06-10T10:00:00Z")。
语法格式
PROCTIME()
注意事项
- 在使用流模型进行窗口聚合操作时使用。通过SecMaster SQL语法处理流式数据表的模型就是流模型。
流模型作业升级指导示例
如果您确定要将流模型的语义由事件时间更换为处理时间,例如:
with filter_data as (select * from s_sec_hss_alarm where __time >= timestampadd(minute, -60, now()) AND (event_category = 4000 AND event_type = 4002 AND (event_classid = 'login_0001' OR event_classid = 'login_0002') OR event_category=2000 OR event_category=6002)),operation_total AS ( select window_start, window_end, FIRST_VALUE(appendInfo.event_id) AS first_event_id, LISTAGG(DISTINCT appendInfo.event_id) AS event_id, COUNT(DISTINCT appendInfo.event_id) AS event_id_count from table(tumble(table filter_data, DESCRIPTOR(__time), INTERVAL '5' minute)) group by window_start, window_end,hostUuid ),final_total_result as (select * from operation_total WHERE event_id_count > 0),final_source_data as ( select * from final_total_result a, filter_data b WHERE a.first_event_id = b.appendInfo.event_id )select * from final_source_data;
需要执行如下操作:
- 删除语句中用事件时间开窗描述:
from table(tumble(table filter_data, DESCRIPTOR(__time), INTERVAL '5' minute))
- 删除select语句中的window_start、window_end:
window_start, window_end
- 将group语句中的window_start、window_end替换为TUMBLE(PROCTIME(), INTERVAL '5' MINUTE)。替换后示例如下:
with filter_data as (select * from s_sec_hss_alarm where __time >= timestampadd(minute, -60, now()) AND (event_category = 4000 AND event_type = 4002 AND (event_classid = 'login_0001' OR event_classid = 'login_0002') OR event_category=2000 OR event_category=6002)),operation_total AS ( select FIRST_VALUE(appendInfo.event_id) AS first_event_id, LISTAGG(DISTINCT appendInfo.event_id) AS event_id, COUNT(DISTINCT appendInfo.event_id) AS event_id_count from filter_data group by TUMBLE(PROCTIME(), INTERVAL '5' MINUTE),hostUuid ), final_total_result as (select * from operation_total WHERE event_id_count > 0), final_source_data as ( select * from final_total_result a, filter_data b WHERE a.first_event_id = b.appendInfo.event_id ) select * from final_source_data;
父主题: 数据操作语句DQL