项目01_用户行为日志采集系统
2024-05-23 21:15:30 0 举报
用户行为日志采集系统
作者其他创作
大纲/内容
采集层
用户行为日志
id,订单编号,订单状态, 开始日期, 有效日期---------------------------------------------1, DJS1129, 下单, 2020-01-01,2020-01-312,DJS1130, 下单, 2020-02-01,2020-03-163,DJS1129, 支付完成, 2020-02-01,2020-02-104,DJS1129, 已退款, 2020-02-11,9999-12-31
时间DIM产品DIM店铺DIM促销DIM用户DIM
优点:可以获取历史各个时段的维度快照结合变化维度分析各时间段数据
业务数据
ETL
ES
flume(请求高可用、零丢失)
存储层
flume
APPapp层,根据具体的报表需求,从DWA中获取数据,交给报表系统或者BI可视化系统
网站
Nginx
每天覆盖 insert overwrite
产品id,产品名称,产品分类, 开始日期, 结束日期---------------------------------------------101, 薯片, 油炸食品, 2020-01-01,2020-01-31101, 薯片, 零食, 2020-02-01,2020-03-16101, 薯片, 膨化食品, 2020-03-17,9999-99-99
kafka 集群(解耦 采集层和分发层)
LVS
id,订单编号,订单状态, 开始日期, 有效日期---------------------------------------------2,DJS1130, 下单, 2020-02-01,2020-03-163,DJS1129, 支付完成, 2020-02-01,2020-02-10
DIM最新维表
hdfshive(数仓ODS层)
若DIM表中的维度,如订单状态、产品所属部门等随着时间推移会慢慢变化名称,我们不能每次都直接覆盖掉ODS中的全量数据,而是应该通过缓慢变化维去锁定数据快照。
数据发送层
优点:可以获取历史各个时段的数据快照减少冗余数据如:DJS1130增量保存数据,增量更新DWD DWT DWA 和 APP层的数据,而不是全量重跑
发送日志请求(失败重试)
DWT主题层,大宽表,减少数据统计的join操作,提前join好比如:dwt_product_time_shop 产品明细 join 时间维度 join 店铺维度
1、根据数据文档,设计数据模型。数据文档规定了公司所有字段的说明和公式,各数据层的说明。根据文档和规范设计ETL过程2、数据评审,主要看数据层的复用情况,避免重复计算。3、有新的字段,需要提交审核,然后开始ETL开发,测试,上线。4、质量管理,定时验证数据准确性,通过每个指标背后的公式。
实时
MySQL
数据上报openfalcon
1. 开始日期:表示该条记录的生命周期开始时间,有效日期:表示该条记录的生命周期结束时间;2. 有效日期 = '9999-12-31'表示该条记录目前处于有效状态;3. 如果查询当前所有有效的记录,则 select * from order_his where 有效日期 = '9999-12-31'4. 如果查询2020-02-01的历史快照,则 select * from order_his where 开始日期 <= '2020-02-01' and 有效日期 >= '2012-02-01'。(小于开始日期保证数据都是这个日期之前的,还原当时数据的历史条目,大于结束日期保证拉链字段的条目的有效性)
拉链表order_his
数仓设计规范,质量管理
binlog同步
App
DWD明细表(事实表)
缓慢变化维表
分发层
离线存储
canal server集群
DWA轻度聚合层比如:产品的DWT表,通过轻度聚合,可以成倍压缩数据
发送解析后的binlog
0 条评论
下一页