一、需要剖析及实现思路
1.1、分层需要剖析
建设实时数仓的目标,次要是减少数据 计算的复用性。每次新减少统计需要时,不至于从原始数据进行计算,而是从半成品持续加工而成。咱们这里从 kafka 的 ods 层读取用户行为日志以及业务数据,并进行简略解决,写回到 kafka 作为 dwd 层。
1.2、每层的职能
分层 | 数据形容 | 生成计算工具 | 存储媒介 |
---|---|---|---|
ODS | 原始数据,日志和业务数据 | 日志服务器,maxwell/canal | kafka |
DWD | 依据数据对象为单位进行分流,比方订单、页面拜访等等。 | FLINK | kafka |
DWM | 对于局部数据对象进行进一步加工,比方独立拜访、跳出行为。仍旧是明细数据。 | FLINK | kafka |
DIM | 维度数据 | FLINK | HBase |
DWS | 依据某个维度主题将多个事实数据轻度聚合,造成主题宽表。 | FLINK | Clickhouse |
ADS | 把 Clickhouse 中的数据依据可视化须要进行筛选聚合。 | Clickhouse, SQL | 可视化展现 |
二、DWD 层数据筹备实现思路
➢ 性能 1:环境搭建
➢ 性能 2:计算用户行为日志 DWD 层
➢ 性能 3:计算业务数据 DWD 层
2.1、环境搭建
目录 | 作用 |
---|---|
app | 产生各层数据的 flink 工作 |
bean | 数据对象 |
common | 公共常量 |
utils | 工具类 |