当前位置:网站首页>实时数据仓库
实时数据仓库
2022-07-04 12:52:00 【这个程序猿可太秀了】
本篇文章只是对自己的一些实时数仓经验的一些总结,就架构和数据流向而言其实和离线数据仓库大同小异,但是实时处理有自己的特殊性
为什么要有实时数仓?
我们已经有利离线数仓,数仓目的就是复用,但是离线是T+1的,在我们大量的实时需求,之前的离线计算不能复用,大量新的重复性实时代码开发,开发和计算资源的成本不断增加
实时数仓分层

ODS 原始数据,包含日志和业务数据
DWD
DIM
DWM
DWS
ADS

DWD
每个表对应一个Topic,把订单流水等业务数据重新写回kafka,另外日志数据进行测输出流输出(sql就是多个insert +filter),主要有启动退出日志、页面(仅包含页面也就是pv日志)日志、行为日志等,不同的数据有完全不同的数据结构,所以要拆分处理
同时做一些非法值过滤,比如时间戳,uid校验(主要是正则匹配,我们是13位数字),另外ODS的数据除了事实数据外还会有维度数据,需要写到DIM而不是DWD
DWD层主要的核心是数据分流以及状态识别
DIM
像刚才说的,一些ODS的维度数据Flink拿到之后一般是直接写入Hbase了,方便我们做维流join
DWM
DWM层主要是因为实时计算开发运维成本都较高,但是在DWD -> DWS的计算中还是有很多重复的计算,主要是抽取这部分进行公用
比如订单宽表,需要订单表和订单明细表以及各个维度表关联,那我们可以只处理一次作为宽表,在DWS各个行为或成单等用到直接从DWM拿数据关联即可

这一层往往会设计到较多的流流join和流维join
DWS
轻度聚合,应对各种实时查询,并缓解查询的压力
将更多的实时数据以主题的方式组合起来便于管理,同时也能减少维度查询的次数
那如何让设计DWS的表,主要是靠维度+度量(事实数据)
度量比如 uv、pv、跳出次数、进入页面次数(session_count)、连续访问时长等
维度主要是主要的即可,渠道、地去、版本、国内外、新老用户、系统(ios,安卓,电脑)这些
接受各个明细数据,合并成相同数据格式的流,然后窗口聚合后输出到数据库(我们是clickhouse)
实时数仓应用落地
实时数据大盘
告警监控
实时推荐
边栏推荐
- golang fmt. Printf() (turn)
- Understand chisel language thoroughly 10. Chisel project construction, operation and testing (II) -- Verilog code generation in chisel & chisel development process
- IDEA快捷键大全
- File creation, writing, reading, deletion (transfer) in go language
- Why should Base64 encoding be used for image transmission
- sharding key type not supported
- markdown 语法之字体标红
- 1200. Minimum absolute difference
- mac redis安装与使用,连接远程服务器 redis
- Mask wearing detection based on yolov1
猜你喜欢

Test process arrangement (3)

Innovation and development of independent industrial software

C # WPF realizes the real-time screen capture function of screen capture box
![递增的三元子序列[贪心训练]](/img/92/7efd1883c21c0e804ffccfb2231602.png)
递增的三元子序列[贪心训练]

Ruichengxin micro sprint technology innovation board: annual revenue of 367million, proposed to raise 1.3 billion, Datang Telecom is a shareholder

安装Mysql

为什么图片传输要使用base64编码

sql优化之explain

Install MySQL

TestSuite and testrunner in unittest
随机推荐
迅为IMX6Q开发板QT系统移植tinyplay
JVM memory layout detailed, illustrated, well written!
吃透Chisel语言.05.Chisel基础(二)——组合电路与运算符
10.(地图数据篇)离线地形数据处理(供Cesium使用)
Golang uses JSON unmarshal number to interface{} number to become float64 type (turn)
Whether the loyalty agreement has legal effect
统计php程序运行时间及设置PHP最长运行时间
做事的真正意义和目的,真正想得到什么
gin集成支付宝支付
Unity Shader学习(三)试着绘制一个圆
Ws2818m is packaged in cpc8. It is a special circuit for three channel LED drive control. External IC full-color double signal 5v32 lamp programmable LED lamp with outdoor engineering
mac redis安装与使用,连接远程服务器 redis
[antd step pit] antd form cooperates with input Form The height occupied by item is incorrect
File creation, writing, reading, deletion (transfer) in go language
BLOB,TEXT GEOMETRY or JSON column 'xxx' can't have a default value query 问题
Learning projects are self-made, and growth opportunities are self created
Can mortgage with housing exclude compulsory execution
测试流程整理(3)
The font of markdown grammar is marked in red
基于YOLOv1的口罩佩戴检测