问题描述
目前面临一个问题,我正在尝试为 Web 应用程序创建登录利用率报告。为了稍微描述一下报告,我们系统中的用户被标记有关于用户的不同元数据。例如,我可能会被标记为“纽约市”和“软件工程师”,而其他用户可能会被标记为不同的位置和职位。使用情况报告基本上如下:
- 时间段(每季度)
- 总登录次数
- 唯一登录
- 用户总数
- “参与百分比”(唯一登录次数/总用户数)
问题是,报告需要有点动态。我需要能够应用职位和地点的任意组合,并让每个数字都反映应用的元数据。时间段还需要能够轻松调整以支持每周、每月和每年。理想情况下,我可以在 Redshift 中创建一个视图,允许我们的 BI 软件用户在他们认为合适的时候运行此报告。
我的问题是,设计数据模型以支持此报告的理想策略是什么?我目前有一个原子事实表,其中包含具有此架构的所有登录名:
- 用户名
- 登录 ID
- 登录时间戳
- 职务组 ID(职务的 MD5 哈希值以支持多值)
- 位置组 ID(位置的 MD5 哈希值以支持多值)
事实表让我可以轻松地编写一个查询来汇总总数(登录 ID 的计数)和唯一性(不同的用户 ID 计数)。
如何补充必须包含用户总数的数据?我目前最好的方法是什么?