数据与分析子系统
功能:收集和分析用户行为数据,以改善系统服务。
接口设计:
generateEvent(eventType, data)
: 创建事件并提供上报能力generateReport(reportType, config)
: 生成数据报告
4+1 视图模型的文字描述
建筑风格
数据处理中间件: 数据流-批处理(由于数据需要整合) 观测平台: 以数据为中心
逻辑视图
这里用 Object Diagram
部分 live 事件需要整合所有用户事件后 才能生成
事件
- id: 事件唯一编号
- eventType: 事件名称
- subjectInfo: 触发该事件的主体
- reportEvent: 向系统上报事件的方法
用户事件
- id: 事件唯一编号
- eventType: 事件名称(例如 userLeaveBeforeLiveEnd)
- subjectInfo: 触发该事件用户的身份信息
- environmentInfo: 触发该事件时所处的 live 和时间点
- reportEvent: 向系统上报事件的方法
- value: 如果该事件关联数字,比如用户整场 live 中支付金额,则采用该属性
live 事件
- id: 事件唯一编号
- eventType: 事件名称
- subjectInfo: 触发该事件的 live 信息
- environmentInfo: 触发该事件时的时间点
- userInfos?: 相关联的所有用户事件,可能需要连带上报
- reportEvent: 向系统上报事件的方法
- value: 如果该事件关联数字, 则采用该属性
这里用 communication diagram
开发人员在事件执行逻辑之中,插入事件的生成命令,并在数据完备后,调用 reportEvent 上报给数据库
在计入数据库前,经过数据处理中间层,通过逻辑筛选掉无效数据,或简单事件整合成新的复杂事件,在记录入事件库
观测平台调用generateReport(reportType, config)
从数据库取用整合数据,得到观测报告
进程视图
上报进程和数据处理进程会同时进行,获取报告由单独进程从数据库中获取生成
物理视图
好像没有
开发视图
数据观测平台 UI,数据处理 package,事件生成工厂 package,报告生成工厂 package,数据库
场景视图
该子系统提供的数据观测与分析能力将会被开发者和数据分析人员使用,
这些人员能在数据平台上进行一定程度的观察并查看分析报告
这类角色会有以下功能用例
- 查看特定 live 触发事件的种类,数量以及占比的生成报告
- 查看整个系统中触发事件的种类,数量以及占比的生成报告
- 查看特定 用户 触发事件的种类,数量以及占比的生成报告
分别对应三种数据报告 type
- DetailLiveEvent
- GeneralLiveEvent
- DetailUserEvent
generateReport(reportType,config)
生成数据报告
开发人员有以下功能用例
- 数据打点和上报