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