2 个回答
在select中定义:
SELECT
SESSION_START(event_time, INTERVAL '30' MINUTE) AS session_start,
SESSION_END(event_time, INTERVAL '30' MINUTE) AS session_end,
user_id,
COUNT(*) AS event_count
FROM user_actions
GROUP BY
SESSION(event_time, INTERVAL '30' MINUTE),
user_id;
在create table中定义:CREATE TABLE sessionized_events (
session_start TIMESTAMP(3),
session_end TIMESTAMP(3),
user_id STRING,
event_count INT,
WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND
) WITH (...);
INSERT INTO sessionized_events
SELECT
SESSION_START(event_time, INTERVAL '30' MINUTE) AS session_start,
SESSION_END(event_time, INTERVAL '30' MINUTE) AS session_end,
user_id,
COUNT(*) AS event_count
FROM user_actions
GROUP BY
SESSION(event_time, INTERVAL '30' MINUTE),
user_id;
发布于:4周前 (05-28) IP属地:
具体核心配置有:
1、设置活动间隙
1、设置活动间隙
SESSION(event_time, INTERVAL '5' MINUTE) -- 5分钟活动间隙
2、定义时间语义:WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND -- 允许5秒延迟
3、延迟数据处理:WATERMARK FOR event_time AS event_time - INTERVAL '10' SECOND -- 允许10秒延迟
4、最大会话时长SESSION(event_time, INTERVAL '30' MINUTE, MAX DURATION '2' HOUR)
发布于:4周前 (05-28) IP属地:
我来回答
您需要 登录 后回答此问题!