HIVE数据仓库分层

1:为什么要分层

大多数情况下,我们完成的数据体系却是依赖复杂、层级混乱的。在不知不觉的情况下,我们可能会做出一套表依赖结构混乱,甚至出现循环依赖的数据体系。

我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是谈到的数据分层。数据分层并不能解决所有的数据问题。

2:数仓的三层结构

我们将数据模型分为三层:数据运营层( ODS )、数据仓库层(DW)和数据应用层/应用数据存储(APP/ADS)
ODS层存放的是接入的原始数据
DW层是存放我们要重点设计的数据仓库中间层数据
APP/ADS是面向业务定制的应用数据。

1、数据运营层:ODS(Operational Data Store)

“面向主题的”数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。
一般来讲,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。

2、数据仓库层:DW(Data Warehouse)

数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。DW层又细分为 DWD(Data Warehouse Detail)层、DWM(Data WareHouse Middle)层和DWS(Data WareHouse Servce)层。

1)数据明细层:DWD(Data Warehouse Detail)

该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。 另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。

2)数据中间层:DWM(Data WareHouse Middle)

该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。 直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。

3)数据服务层:DWS(Data WareHouse Servce)

又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。
一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

3、数据应用层:APP(Application)/ADS

在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

3:总结及其他

ODS层: 源数据层作用: 对接数据源, 和数据源的数据保持相同的粒度(将数据源的数据完整的拷贝到ODS层中)注意:如果数据来源于文本文件, 可能会需要先对这些文本文件进行预处理(spark)操作, 将其中不规则的数据, 不完整的数据, 脏乱差的数据先过滤掉, 将其转换为一份结构化的数据, 然后灌入到ODS层一般放置 事实表数据和少量的维度表数据DW层:  数据仓库层DWD层: 明细层作用: 用于对ODS层数据进行清洗转换工作 , 以及进行少量的维度退化操作少量: 1) 将多个事实表的数据合并为一个事实表操作2) 如果维度表放置在ODS层 一般也是在DWD层完成维度退化DWM层: 中间层    作用:  1) 用于进行维度退化操作  2) 用于进行提前聚合操作(周期快照事实表)DWS层: 业务层    作用: 进行细化维度统计分析操作DA层:  数据应用层作用: 存储基于DWS层再次分析的结果, 用于对接后续的应用(图表, 推荐系统...)例如:比如DWS层的数据表完成了基于订单表各项统计结果信息,  但是图表只需要其中销售额, 此时从DWS层将销售额的数据提取出来存储到DA层DIM层: 维度层作用: 存储维度表数据


 

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

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

相关文章

TCP 为什么采用三次握手和四次挥手以及 TCP 和 UDP 的区别

1. TCP 为什么采用三次握手和四次挥手 采用三次握手的原因: 确认双方的收发能力。第一次握手,客户端发送 SYN 报文,告诉服务器自身具备发送数据的能力,第二次握手,服务器回应 SYN ACK 报文,表名自己既能…

python-Flask:SQLite数据库路径不正确但是成功访问到了数据库,并对表进行了操作

出现了这个问题,就好像是我要去找在南方的人,然后我刚好不分南北,我认为的方向错了,实则方向对了。 在我针对复盘解决:sqlite3.OperationalError: unrecognized token: “{“-CSDN博客这个内容的时候,又出现…

2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。

文章目录 sklearn学习(25) 无监督学习-神经网络模型(无监督)25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型(无监督) 文章参考网站&a…

Spring ----深入理解AOP(面向切面编程)

给程序做增强 事务是最小的执行单元,转账,同时成功、同时失败 TxUtils类式事务管理类,有6个静态方法,可以直接通过类名来调用,threadlocal线程池,还有一个静态代码块,来加载链接 从数据源中获取…

vue源码分析(十)—— 生命周期

文章目录 前言一、关键方法 callHook二、详细的钩子函数说明1.beforeCreate和create2.beforeMount & mounted注意点组件(非根组件)的渲染节点(1)invokeInsertHook函数(2)insert方法(3&#…

docker离线安装及部署各类中间件(x86系统架构)

前言:此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本:docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面,这里放在…

【WIN11新机/重装系统 把尿级系统设置优化】

目录 一、更改鼠标样式二、更改显示器刷新率三、常规文件存储路径0.存储感知1.保存新内容的地方2.快捷访问的文件路径3.Edge浏览器下载路径 四、通知关闭五、开机自启动关闭六、隐私关闭七、性能优化1.开机优化2.用户账控制关闭 八、关闭Windows自动更新九、任务栏设置十、必装…

7.若依参数设置、通知公告、日志管理

参数设置 对系统中的参数进行动态维护。 关闭验证码校验功能 打开页面注册功能 需要修改前端页面代码 通知公告 促进组织内部信息传递 若依只提供了一个半成品,只实现了管理员可以添加通知公告。 日志管理 追踪用户行为和系统运行状况。 登录日志 和操作日志…

修改网络ip地址方法有哪些?常用的有这四种

在数字时代,IP地址作为网络设备的唯一标识,对于网络连接和通信至关重要。然而,有时候我们可能需要修改设备的IP地址,以满足特定的网络需求或解决网络问题。本文将为您详细介绍几种修改网络IP地址的常用方法,无论是对于…

【Java项目】基于SpringBoot的【外卖点餐系统】

【Java项目】基于SpringBoot的【外卖点餐系统】 技术简介:本系统使用JSP技术,采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介:管理员;首页、个人中心、用户管理、商家管理、菜品分类管理、骑手管理、系统管理…

Spring Boot教程之三十九: 使用 Maven 将 Spring Boot 应用程序 Docker 化

如何使用 Maven 将 Spring Boot 应用程序 Docker 化? Docker是一个开源容器化工具,用于在隔离环境中构建、运行和管理应用程序。它方便开发人员捆绑其软件、库和配置文件。Docker 有助于将一个容器与另一个容器隔离。在本文中,为了将Spring B…

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中,数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

uniapp——微信小程序,从客户端会话选择文件

微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档: chooseMessageFile 微信小程序读取文件,请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…

vue3+vite+nginx打包

在开发环境下,已经可以正常地运行一个有增删改查功能的页面了,但如何把它发布到运行服务器呢?仍有许多的问题需要探索。 网上很多文章给了很大的帮助,但总是没有说明原理,对于像我这样的初学者来说,不知其…

CAN201 Introduction to Networking(计算机网络)Pt.2 传输层

文章目录 3. Transport Layer(传输层)3.1 Multiplexing and demultiplexing(多路复用和多路分解)3.2 Connectionless transport:UDP3.3 Principles of reliable data transfer3.4 Pipelined communication3.5 TCP: con…

JVM 详解

一. JVM 内存区域的划分 1. 程序计数器 程序计数器是JVM中一块比较小的空间, 它保存下一条要执行的指令的地址. [注]: 与CPU的程序计数器不同, 这里的下一条指令不是二进制的机器语言, 而是Java字节码. 2. 栈 保存方法中的局部变量, 方法的形参, 方法之间的调用关系. 栈又…

Docker--Docker Network(网络)

Docker为什么需要网络管理 容器的网络默认与宿主机及其他容器之间是隔离的,但有时也需要与宿主机和容器进行通信。 容器间及容器与外部通信的需求 容器间通信:在Docker环境中,容器默认与宿主机及其他容器是相互隔离的。然而,在实际应用中&…

深入浅出 MyBatis | CRUD 操作、配置解析

3、CRUD 3.1 namespace namespace 中的包名要和 Dao/Mapper 接口的包名一致! 比如将 UserDao 改名为 UserMapper 运行发现抱错,这是因为 UserMapper.xml 中没有同步更改 namespace 成功运行 给出 UserMapper 中的所有接口,接下来一一对…

UE5材质节点Panner

Panner节点可以让贴图动起来,快捷键是P,Speed的数值大小就是贴图移动的快慢,x和y是方向 这个节点可以用来做,传送带,护盾,河流,岩浆,瀑布等 制作岩浆流动效果 创建材质,…

Kimi进行学术方向选择精讲!

目录 1.文献搜索 2.辅助选题 3.选题判断 在我们之前的文章中,小编都强调了选题在文章价值中的核心作用。一篇优秀的文章背后,肯定有一个精心挑选的选题。选题的好坏直接影响着文章能够发表的期刊等级。许多宝子们却采取了相反的做法,将大量…