1.1 分层需求分析
建设实时数仓的目的,主要是增加数据计算的复用性。每次新增加统计需求,不至于从原始数据进行计算,而是从半成品继续加工而成。我们这里从kafka 的 ods 层读取用户行为日志以及业务数据,并进行简单处理,写回kafka作为dwd层。
1.2 每层的职能
分层 | 数据描述 | 生成计算工具 | 存储媒介 |
ODS | 原始数据,日志和业务数据 | 日志服务器,maxwell | kafka |
DWD | 根据数据对象为单位进行分流,比如订单,页面访问等等 | flink | kafka |
DWM | 对于部分数据对象进行进一步加工,比如独立访问、跳出行为。依旧是明细数据 | flink | kafka |
DIM | 纬度数据 | flink | HBase |
DWS | 根据某个纬度主题将多个事实数据轻度聚合,形成主题宽表。 | flink | ClickHouse |
ADS | 把ClickHouse中的数据根据可视化需要进行筛选聚合 | ClickHouse SQL | 可视化展示 |
1.3 DWD 层数据准备实现思路
功能1:环境搭建
功能2:计算用户行为日志DWD层
功能3:计算业务数据DWD层