获取用户会话列表 SQL Redshift

Posted

技术标签:

【中文标题】获取用户会话列表 SQL Redshift【英文标题】:Get the list of user sessions SQL Redshift 【发布时间】:2018-05-09 13:25:55 【问题描述】:

我有一个包含 3 个字段的表格:userIDurl 和记录的用户操作 datetime。我想在 Redash 中的 sql Redshift 中编写一个查询,它返回一个用户会话列表(所有操作之间的时间少于一小时),其中包含字段 userIDstart datetime结束日期时间。我可以用什么来实现这一点?

【问题讨论】:

可以使用sql。请尝试并发布你得到的东西。 (这不是代码编写服务)。一种方法是使用窗口函数并搜索以前的答案。 【参考方案1】:

在我们的 GitHub 存储库中查看 v_connection_summary.sql 视图。

https://github.com/awslabs/amazon-redshift-utils/blob/76823b71c7c5c9c7a8fb99183e1662a9476df65a/src/AdminViews/v_connection_summary.sql

【讨论】:

【参考方案2】:

我的 $0.02,我使用以下查询,因为它不包括“丢失的连接”并且只显示具有活动会话的连接。如果有,它还会显示正在运行的查询。

-- Who
SELECT s.user_name,
       s.process,
       s.starttime,
       s.db_name,
       c.remotehost,
       si.starttime query_start_time,
       si.text      query
FROM stv_sessions s
    LEFT JOIN stl_connection_log c
        ON s.user_name = c.username AND s.process = c.pid AND c.event = 'authenticated'
    LEFT JOIN stv_inflight si ON c.pid = si.pid
WHERE s.user_name <> 'rdsdb'
ORDER BY user_name, starttime;

【讨论】:

以上是关于获取用户会话列表 SQL Redshift的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法获取 SQL Server 中所有当前临时表的列表?

如何在 laravel 中获取所有服务器会话的列表?

经典 ASP - 在下拉列表中检索会话变量

如果我有会话 ID,如何获取会话参数详细信息

我如何以列表视图显示网站中的多个会话?

将会话用户值传递给过程