实时数仓项目《一》-实时数仓架构

目录

1. 实时数仓与离线数仓

2. 实时数仓需求

3. 架构图

3.1 行为日志处理:

3.2 业务库表处理:

4. 面试题:

🧀你们的实时数仓有分层吗?

🧀那你们的业务数据呢?

🧀那你们的OLAP分析是怎么设计的?

🧀为什么用doris?

🧀Doris数据怎么来的?

🧀你们ADS层的数据是放在哪的?

🧀你们ODS到DWD层做了哪些事啊?


1. 实时数仓与离线数仓

  • 数仓:数据的仓库

  • 实时数仓:数据实时入仓,对数据做统计分析也是实时响应的

  • 离线数仓:数据不是实时入仓,仅对历史数据做统计分析

2. 实时数仓需求

一个公司做实时数仓几乎都是对离线数仓的一个辅助,大部分统计分析任务都是基于统计很长时间跨度的数据,所以还是以离线数仓为主

  • 实时大屏看板: 公司核心指标,如订单数、订单额、访问量,活动参与人数、参与次数……

  • c端实时数据展示:热门榜单,比如热门话题,热门路线,热门教程,热门商品,热门品类,热门品牌

  • 实时特征数据加工:为广告引擎和推荐引擎,提供实时的样本数据

  • 实时olap支撑:实时接入各类数据,做轻度聚合,入库到doris,提供给分析师去做实时联机分析

3. 架构图

ODS

Operational Data Store

操作数据层

该层的主要功能是存储从源系统直接获得的增量或者全量数据。该数据有可能以文件形式存在,也有可能以数据库形式存在,也有可能两种形态都存在

ODS->DWD

数据完成清洗、过滤、字段的规范化(字段格式统一、字段类型统一、一些空值的统一)、维度提前的关联(退维)

DWD

Data Warehouse Detail

明细数据层

该层的主要功能是基于业务主题域的划分,面向业务过程、以数据为驱动设计模型,并且基于维度建模理论进行建模,完成数据整合,为数据的应用提供统一的基础细节数据。实现企业级数据模型的落地。

DWS

Data Warehouse

Summary

汇总数据层

该层的主要功能是以分析需求为驱动进行数据模型设计,实现跨业务主题域数据的关联计算或者轻度汇总计算,从而支持上层的统计分析需求。

在该层实现指标的统一计算口径,实现了指标的一次计算多次复用的多维数据模型;实现了核心业务实体的基础特征库,为深入的业务分析提供数据支持。

ADS

Application Data Services

应用层

用于提供面向应用程序的数据访问和服务

3.1 行为日志处理:

  • c端实时数据展示和实时大屏看板:从flume采集过来的数据进行加工退维,继续将其写入kafka(因为后续还需要做流式计算),此时便可以对数据根据具体业务需求进行计算,将算好的结果放入mysql中。

  • 实时olap支撑: 从DWD层读数据,做中间聚合,将结果写入doris,然后OLAP分析工具平台连接doris即可进行分析。

  • 实时特征数据加工:数据从kafka经过清洗、处理加工一下, 继续写到kafka,算法引擎组或广告推荐组会继续去拉取这个数据。其不属于数仓的任何一层

3.2 业务库表处理:

业务表数据用flink-cdc一边读一边计算,直接将结果输出到mysql中

4. 面试题:

🧀你们的实时数仓有分层吗?

有的,我们的主要分层架构分为ODS、DWD、ADS层。

对于一些日志文件,我们一般会从flume中将数据采集过来落入ODS层,经过清洗、过滤、字段的规范化、退维等操作,将操作后的数据落入DWD层,最后再根据具体业务需求,将数据进行一些聚合分析等处理,让它落入ADS层。

🧀那你们的业务数据呢?

对于业务数据,我们用cdc接入直接就计算了,如果要做OLAP分析的话,就会把数据落入到doris一份。

🧀那你们的OLAP分析是怎么设计的?

我们会用Doris作为OLAP分析的底层基础设施

🧀为什么用doris?

  • Doris可以存储很多的数据量

  • 查询很快

  • 可以接受数据的实时入库

🧀Doris数据怎么来的?

我们会用flink从数据源读取数据,先做一个轻量聚合,再写入doris.

🧀你们ADS层的数据是放在哪的?

这要看数据给谁用。如果是C端数据展示和实时大屏看板,数据都是放在mysql里面的。

🧀你们ODS到DWD层做了哪些事啊?

清洗、过滤,数据格式的规范化、退维

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符分类函数(iscntrl、i是space.....)---c语言

目录 一、定义二、字符分类函数2.1 -iscntrl()2.1.1定义2.1.2使用举例 2.2 -isspace()2.2.1描述2.2.2使用举例 2.3-isdigit()2.3.1描述2.3.2使用举例 2.4-isxdigit()2.4.1描述 2.5-islower()2.5.1描述2.5.2使用举例 2.6-isupper()…

THM学习笔记—Simple CTF

nmap扫描,发现2222端口很奇怪啊,重新换一种方式扫描2222端口 发现是ssh 先用ftp试试,尝试匿名登录 下载所有文件 发现只有一个ForMitch.txt,告诉我们其账号密码为弱密码,我们猜测Mitch为其用户名,尝试暴力…

MechanicalSoup,一个非常实用的 Python 自动化浏览器交互工具库!

目录 前言 什么是 Python MechanicalSoup 库? 核心功能 使用方法 1. 安装 MechanicalSoup 库 2. 创建 MechanicalSoup 客户端 3. 打开网页并与之交互 实际应用场景 1. 网页自动化测试 2. 网络爬虫与数据提取 3. 网页自动化操作 4. 自动化填写和提交多个表单 5.…

V-JEPA模型,非LLM另外的选择,AGI的未来:迈向Yann LeCun先进机器智能(AMI)愿景的下一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

EPICS和Arduino Uno之间基于串行文本协议的控制开发

Arduino Uno的串口服务程序设置如文本的串口通信协议设计以及在Arduino上的应用-CSDN博客中所示。通过在串口上发送约定的文本协议,它实现的功能如下: 实现功能: 读取三路0.0V~5.0V模拟量输入,读取端口A0~A2设置三路0.0V~5.0V的模…

typeof 与 instanceof 区别

文章目录 一、typeof二、instanceof三、区别 一、typeof typeof 操作符返回一个字符串,表示未经计算的操作数的类型 使用方法如下: typeof operand typeof(operand)operand表示对象或原始值的表达式,其类型将被返回 举个例子 typeof 1 /…

K8S之持久化存储

持久化存储 支持的持久化存储类型EmptyDirHostPathNFS 在K8S中部署的应用都是以pod容器的形式运行的,假如部署数据库服务 例如:MySQL、Redis等,需要对产生的数据做备份。如果pod不挂载数据卷,那pod被删除或重启后这些数据会随之消…

Windows server Database 2025 安装 i225/i226 网卡驱动

windows这比坏得很,intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持?他就纯粹恶心人。 之前已经安装过一次,但是今天database预览版一更新,又给我把网卡驱动杀了,气死,写一篇教程。 1.去官网…

SQLite优化实践:数据库设计、索引、查询和分库分表策略

文章目录 一、数据库设计优化1.1 合理选择数据类型1.2 使用NOT NULL约束1.3 使用默认值1.4 避免使用过多的列 二、索引优化2.1 为经常用于查询条件的列创建索引2.2 为经常用于排序和分组的列创建索引2.3 避免过多的索引2.4 使用覆盖索引 三、查询优化3.1 使用预编译语句3.2 优化…

​​SQLiteC/C++接口详细介绍之sqlite3类(十一)

返回目录:SQLite—免费开源数据库系列文章目录 上一篇:​​SQLiteC/C接口详细介绍之sqlite3类(十) 下一篇:​​SQLiteC/C接口详细介绍之sqlite3类(十二)(未发表) 33.sq…

C语言学习过程总结(18)——指针(6)

一、数组指针变量 在上一节中我们提到了,指针数组的存放指针的数组,那数组指针变量是什么呢? 显而易见,数组指针变量是指针 同样类比整型指针变量和字符指针变量里面分别存放的是整型变量地址和字符变量地址,我们可以…

Helm的资源安装和基本使用

目录 一.Helm的出现 二.Helm工具 1.部署helm 2.helm可用命令介绍 三.chart 1.添加、查看、删除存储库 2.查找chart、查看chart信息、安装chart等 3.安装chart后产生的release 四.安装mysql举例 1.固定chart安装 2.自定义chart安装 一.Helm的出现 在前面的k8s部署po…

13. C++类的简单理解

全面理解C中的类 1. 类的访问属性:public,protect,private C中类的成员变量和函数都带有三种属性中的一种,假如没有特别声明,那么就默认是私有的(除了构造函数)。public表示是公开的&#xff…

[WUSTCTF2020]颜值成绩查询 --不会编程的崽

这题也是一个很简单的盲注题目,这几天sql与模板注入做麻了,也是轻松拿捏。 它已经提示,enter number,所有猜测这里后台代码并没有使用 " 闭合。没有明显的waf提示, 但是or,and都没反应。再去fuzz一…

二叉树OJ练习

本文旨在讲解有关二叉树的OJ题目,希望读完本文,能让读者都二叉树有更深一步的认识! 正文开始! 106. 根据二叉树创建字符串 算法思想: 根据题目的输出结果,可以观察出如下规律! 1.若左右结点都…

Spring Boot整合STOMP实现实时通信

目录 引言 代码实现 配置类WebSocketMessageBrokerConfig DTO 工具类 Controller common.html stomp-broadcast.html 运行效果 完整代码地址 引言 STOMP(Simple Text Oriented Messaging Protocol)作为一种简单文本导向的消息传递协议&#xf…

sqllab第二十七A关通关笔记

知识点: 双引号闭合union select 大小写绕过 Union Select这里不能进行错误注入,无回显 经过测试发现这是一个双引号闭合 构造payload:id1"%09and%091"1 页面成功回显 构造payload:id0"%09uNion%09SElect%091,2,3%09"1 页面成功…

在雄安新区买新房要注意什么?有哪些注意事项?

雄安新区新建住宅均价每平方米11735元起,二手房每平方米8950元起。 整体价格非常有优势。 雄安新区房价走势与区域发展直接相关。 而且,雄安新区已经成立五周年了。 2022年,雄安新区多项重点项目将陆续竣工。 雄安新区城市基础设施建设已初具…

Linux之shell循环

华子目录 for循环带列表的for循环格式分析示例shell允许用户指定for语句的步长,格式如下示例 不带列表的for循环示例 基于C语言风格的for循环格式示例注意 while循环格式示例 until循环作用格式示例 循环控制breakcontinue详细语法示例 循环嵌套示例 for循环 for循…

深度学习——SAM(Segment-Anything)代码详解

目录 引言代码目录segment-anything 代码详解build_sam.pypredictor.pyautomatic_mask_generator.py 引言 从去年年初至今,SAM(Segment Anything )已经问世快一年了,SAM凭借其强大而突出的泛化性能在各项任务上取得了优异的表现,广大的研究者…