当前位置:网站首页>实时数据仓库
实时数据仓库
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)
实时数仓应用落地
实时数据大盘
告警监控
实时推荐
边栏推荐
- Test process arrangement (3)
- golang fmt. Printf() (turn)
- Supprimer les lettres dupliquées [avidité + pile monotone (maintenir la séquence monotone avec un tableau + Len)]
- R语言使用epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用by参数指定分组参数可视化不同分组的点图分布
- 吃透Chisel语言.04.Chisel基础(一)——信号类型和常量
- Understand chisel language thoroughly 07. Chisel Foundation (IV) - bundle and VEC
- [FAQ] summary of common causes and solutions of Huawei account service error 907135701
- docker-compose公网部署redis哨兵模式
- R language uses the DOTPLOT function of epidisplay package to visualize the frequency of data points in different intervals in the form of point graph, and uses the by parameter to specify the groupin
- Unity Shader学习(三)试着绘制一个圆
猜你喜欢

92.(cesium篇)cesium楼栋分层

安装Mysql

吃透Chisel语言.05.Chisel基础(二)——组合电路与运算符

测试流程整理(3)

吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行

使用CLion编译OGLPG-9th-Edition源码

Test evaluation of software testing

Understand chisel language thoroughly 06. Chisel Foundation (III) -- registers and counters

Huahao Zhongtian rushes to the scientific and Technological Innovation Board: the annual loss is 280million, and it is proposed to raise 1.5 billion. Beida pharmaceutical is a shareholder

Unittest框架中引入TestFixture
随机推荐
Data warehouse interview question preparation
Why should Base64 encoding be used for image transmission
sharding key type not supported
Read excel table data
Install MySQL
DDD application and practice of domestic hotel transactions -- Code
QT how to detect whether the mouse is on a control
[antd] how to set antd in form There is input in item Get input when gourp Value of each input of gourp
Golang 使用 JSON unmarshal 数字到 interface{} 数字变成 float64 类型(转)
Product identification of intelligent retail cabinet based on paddlex
Error in find command: paths must precede expression (turn)
R语言ggplot2可视化:gganimate包创建动态折线图动画(gif)、使用transition_reveal函数在动画中沿给定维度逐步显示数据
R语言ggplot2可视化:gganimate包创建动画图(gif)、使用anim_save函数保存gif可视化动图
Unity Shader学习(三)试着绘制一个圆
sql优化之explain
LifeCycle
吃透Chisel语言.04.Chisel基础(一)——信号类型和常量
LiveData
How to operate and invest games on behalf of others at sea
迅为IMX6Q开发板QT系统移植tinyplay