| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 实时数据仓库 -> 正文阅读 |
|
[大数据]实时数据仓库 |
本篇文章只是对自己的一些实时数仓经验的一些总结,就架构和数据流向而言其实和离线数据仓库大同小异,但是实时处理有自己的特殊性 为什么要有实时数仓?我们已经有利离线数仓,数仓目的就是复用,但是离线是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 DWMDWM层主要是因为实时计算开发运维成本都较高,但是在DWD ->?DWS的计算中还是有很多重复的计算,主要是抽取这部分进行公用 比如订单宽表,需要订单表和订单明细表以及各个维度表关联,那我们可以只处理一次作为宽表,在DWS各个行为或成单等用到直接从DWM拿数据关联即可 ?这一层往往会设计到较多的流流join和流维join DWS轻度聚合,应对各种实时查询,并缓解查询的压力 将更多的实时数据以主题的方式组合起来便于管理,同时也能减少维度查询的次数 那如何让设计DWS的表,主要是靠维度+度量(事实数据) 度量比如 uv、pv、跳出次数、进入页面次数(session_count)、连续访问时长等 维度主要是主要的即可,渠道、地去、版本、国内外、新老用户、系统(ios,安卓,电脑)这些 接受各个明细数据,合并成相同数据格式的流,然后窗口聚合后输出到数据库(我们是clickhouse) 实时数仓应用落地实时数据大盘 告警监控 实时推荐 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 1:42:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |