Sql 您可以在RDBMS中对Weblog进行会话化吗
只是一个一般性的问题。您可以在RDBMS中对日志进行会话化吗 例如,假设您只有三列1)时间戳2)URL 3)用户ID是否可以基于传统RDBMS中X分钟的活动对日志进行会话化。输出可能看起来像四列:1)时间戳2)URL 3)用户ID 4)会话ID 我想不是,但我想听听其他人的意见Sql 您可以在RDBMS中对Weblog进行会话化吗,sql,database,postgresql,hadoop,rdbms,Sql,Database,Postgresql,Hadoop,Rdbms,只是一个一般性的问题。您可以在RDBMS中对日志进行会话化吗 例如,假设您只有三列1)时间戳2)URL 3)用户ID是否可以基于传统RDBMS中X分钟的活动对日志进行会话化。输出可能看起来像四列:1)时间戳2)URL 3)用户ID 4)会话ID 我想不是,但我想听听其他人的意见 谢谢这有点棘手,但可以使用嵌套的窗口聚合函数完成,如 SELECT timestamp, UserID, URL, SUM(newSession) -- cumulative sum over 0/1 OVE
谢谢这有点棘手,但可以使用嵌套的窗口聚合函数完成,如
SELECT timestamp, UserID, URL,
SUM(newSession) -- cumulative sum over 0/1
OVER (PARTITION BY UserId
ORDER BY timestamp
ROWS UNBOUNDED PRECEDING) AS SessionID
FROM
(
SELECT
ts_col, UserID, URL,
-- calculate the timestamp difference between current and previous row
CASE WHEN timestamp - LAG(timestamp)
OVER (PARTITION BY UserId
ORDER BY timestamp) > INTERVAL 'X minutes'
THEN 1 -- new session starts
ELSE 0 -- part of the old session
END AS newSession
) AS dt
一些DBMS(例如Vertica和Aster)支持使用内置函数进行会话,而在其他DBMS中,您可以实现用户定义的函数