实时数仓案例(电商)

0 架构

1 ods

1 日志数据

前端(jar,产生日志数据)-》Nginx(集群间负载均衡)-》日志服务器(springboot,采集数据,jar)-》log,ods(kafka)

本地测试,本地起应用 -》 单机部署,单服务器起应用 -》 集群部署,集群起应用

2 业务数据

前端,jar,产生业务数据-》mysql,配置什么同步-》flinkcdc-》ods(kafka)

2 dim、dwd

1 用户行为日志

ods(Kafka)-> flink -> dwd(kafka)

1 识别新老用户

业务需要

2 日志数据拆分

这3类日志,结构不同,写回Kafka不同主题

2 业务数据

ods(kafka) -> flink -> 1 维度数据,dim(HBASE) 2 事实数据 dwd(kafka)

1 ETL

过滤控制

2 动态分流

维度数据到hbase 事实数据到kafka

怎么分流?

ods的表里面哪些是维度表,哪些是事实表,需要提前知道表的分类信息,后面才可以分流。业务库的表会变化,表的分类信息实时更新,需要动态同步。这里将表的分类信息存在mysql,利用广播流发送。

3 dwm

dmd(kafka)-> flink -> dwm(kafka)

1 访问uv计算

UV,unique visitor

2 跳出明细计算

跳出率=跳出次数 / 访问次数

3 订单主题表

4 支付主题表

4 dws

dwm(kafka)-> flink -> dws(clickhouse)

1 访客主题宽表

2 商品主题宽表

3 地区主题表

4 关键词主题表

5 ads

分层结构

DWM

https://blog.csdn.net/jianghuaijie/article/details/122009653

作用

DWM层的定位是什么,DWM层主要服务DWS,因为部分需求直接从DWD层到DWS层中间会有一定的计算量,而且这部分计算的结果很有可能被多个DWS层主题复用

构建

分主题

dwt

实时数仓没有dwt,因为dwt是累计统计,实时系统不适用

dws

作用

轻度聚合,生成一系列的中间表,提升公共指标的复用性,减少重复加工

分主题,便于管理

构建

分主题

宽表

轻度聚合


:D 一言句子获取中...