当前位置:网站首页>实时数据仓库
实时数据仓库
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)
实时数仓应用落地
实时数据大盘
告警监控
实时推荐
边栏推荐
- The game goes to sea and operates globally
- The font of markdown grammar is marked in red
- 吃透Chisel语言.10.Chisel项目构建、运行和测试(二)——Chisel中生成Verilog代码&Chisel开发流程
- GCC【6】- 编译的4个阶段
- Use of arouter
- 吃透Chisel语言.04.Chisel基础(一)——信号类型和常量
- Oppo find N2 product form first exposure: supplement all short boards
- golang fmt. Printf() (turn)
- Read excel table data
- Data warehouse interview question preparation
猜你喜欢
去除重複字母[貪心+單調棧(用數組+len來維持單調序列)]
【信息检索】分类和聚类的实验
Test process arrangement (3)
CVPR 2022 | greatly reduce the manual annotation required for zero sample learning, and propose category semantic embedding rich in visual information (source code download)
Unittest框架中引入TestFixture
MySQL之详解索引
Product identification of intelligent retail cabinet based on paddlex
Why should Base64 encoding be used for image transmission
10.(地图数据篇)离线地形数据处理(供Cesium使用)
吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行
随机推荐
Deming Lee listed on Shenzhen Stock Exchange: the market value is 3.1 billion, which is the husband and wife of Li Hu and Tian Hua
R language uses follow up of epidisplay package The plot function visualizes the longitudinal follow-up map of multiple ID (case) monitoring indicators, and uses stress The col parameter specifies the
How to package QT and share exe
R语言使用epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用by参数指定分组参数可视化不同分组的点图分布
392. Judgement subsequence
吃透Chisel语言.05.Chisel基础(二)——组合电路与运算符
Gorm read / write separation (rotation)
go vendor 项目迁移到 mod 项目
Golang 使用 JSON unmarshal 数字到 interface{} 数字变成 float64 类型(转)
flink sql-client.sh 使用教程
Learning projects are self-made, and growth opportunities are self created
golang fmt. Printf() (turn)
Ruichengxin micro sprint technology innovation board: annual revenue of 367million, proposed to raise 1.3 billion, Datang Telecom is a shareholder
吃透Chisel语言.10.Chisel项目构建、运行和测试(二)——Chisel中生成Verilog代码&Chisel开发流程
R语言dplyr包summarise_if函数计算dataframe数据中所有数值数据列的均值和中位数、基于条件进行数据汇总分析(Summarize all Numeric Variables)
Migration from go vendor project to mod project
去除重复字母[贪心+单调栈(用数组+len来维持单调序列)]
基于PaddleX的智能零售柜商品识别
Matters needing attention in overseas game Investment Agency
富文本编辑:wangEditor使用教程