大数据-221 离线数仓 - 数仓 数据集市 建模方法 数仓分层 ODS DW ADS

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(已更完)
  • Prometheus(已更完)
  • Grafana(已更完)
  • 离线数仓(正在更新…)

章节内容

上节我们完成了如下的内容:

  • 基本概念 数仓特征
  • 数据库进行对比

在这里插入图片描述

数据集市

数据仓库(DW)是一种反映主题的全局性数据组织,但全局性数据仓库往往太大,在实际应用中他们按部门或业务分别建立反映各个子主题的局部性数据组织,即数据集市(Data Mart),有时也称它为数据仓库。
数据集市:是按照主题域组织的数据集合,用于支持部门级的数据分析与决策。如在商品销售的数据仓库中可以建立多个不同主题的数据集市:

  • 商品采购数据集市
  • 商品库存数据集市
  • 商品销售数据集市

数据集市仅仅是数据仓库的某一部分,实施难度大大降低,并且能够满足企业内部部分业务部分的迫切需求,在初期获得了较大的成功。但随着数据集市的不断增多,这种架构的缺陷也逐步显现。企业内部独立建设的数据集市由于遵循不同的标准和建设原则,以至于多个数据集市的数据混乱和不一致,形成众多的数据孤岛。

业务发展到一定阶段,出现多个事业部门。每个事业部门都有各自的数据,事业部之间的数据往往都是各自存储的,各自定义的。每个事业部的数据就像一个个孤岛一样无法(或者极其困难)和企业内部的其他数据进行连接互动,这样的情况被称为数据孤岛,简单来说就是数据间缺乏关联性,彼此无法兼容。

建模方法

数据模型就是数据组织和存储方法,它强调业务、数据存取和使用角度合理存储数据。有了适合的基础数据存储环境的模型,能获得以下好处:

  • 性能:良好的数据模型能够帮助我们快速查询所需要的数据,减少数据的I/O吞吐
  • 成本:良好的数据模型能极大的减少不必要的数据冗余,也能实现计算结果复用,极大的降低数据系统中的存储和计算成本。
  • 效率:良好的数据模型能极大的改善使用使用数据的体验,提高使用数据的效率
  • 质量:良好的数据模型能够改善数据统计口径不一致性,减少数据计算错误的可能性。

大数据系统需要数据模型的方法来帮助更好的组织和存储数据,以便在性能、成本、效率和质量之间取得最佳的平衡。

ER模型

数据仓库之父Bill Inmon提出的建模方法是从全企业的高度设计一个3NF模型,用实体关系(Entity RelationShip,ER)模型描述企业业务,在范式理论上符合3NF。数据仓库中的3NF与OLTP系统中的3NF的区别在于,它是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象的抽象。其具体有以下几个特点:

  • 需要全面的了解整个企业业务和数据
  • 实施周期非常的长
  • 对建模人员的能力要求非常高

采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策,其建模步骤分为三个阶段:

  • 高层模型:一个高度抽象的模型,描述主要的主题以及主题间的关系,用于描述企业的业务总体概况
  • 中层模型:在高层模型的基础上,细化主题的数据项
  • 物理模型(也叫底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进行物理属性的设计,也可能做一些表的合并、分区的设计等等

维度模型

维度模型是数据仓库领域的Palph Kimball 大师所倡导的,他的《数据仓库工具箱》是数据仓库工程领域最流行的数据仓库建模经典。
维度模型从分析决策的需求出发构建模型,为分析需求服务,重点关注用户如何更快的完成需求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星型模型,以及在一些特殊场景下的雪花模型。
其设计主要分为以下步骤:

  • 选择需要进行分析决策的业务过程,业务过程可以是:单个业务事件,比如交易的支付、退款的。某个事件的状态,比如当前的账户余额等。一系列相关业务事件组成的业务流程。
  • 选择数据的粒度,在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。
  • 识别维表,选择好粒度之后,就需要基于此粒度设计维度表,包括维度属性,用于分析时进行分组和筛选。
  • 选择事实,确定分析需要衡量的指标

现代企业业务变化快、人员流动频繁、业务知识功底不够全面,导致ER模型设计产出周期长。大多企业实施数据仓库的经验说明:在不太成熟、快速变化的业务面前,构建ER模型的风险非常大,不太适合去构建ER模型。而维度建模对技术要求不高,快速上手,敏捷迭代,快速交付,更快速完成分析需求,有较好的大规模复杂查询的响应性能。

数仓分层

数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了数据建模、ETL(数据抽取、转换、加载)、作业调度等在内的完整的理论体系流程。数据仓库在构建过程中通常需要进行分层处理。业务不同,分层的技术处理手段也不同。
分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控。详细来讲,主要有下面几个原因:

  • 清晰的数据结构:每一个数据分层都有它的作用域,在使用表的时候能更方便的定位和理解。
  • 将复杂的问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的问题,比较简单和容易理解,而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的地方开始修复。
  • 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够极大减少重复计算
  • 屏蔽原始数据的异常:屏蔽业务的影响,不必改一次业务就重新接入数据
  • 数据血缘的追踪:最终给业务呈现的是一个能直接使用业务表,但是它的来源很多,如果有一张来源表出问题了,借助血缘最终能够快速准确的定位到问题,并清楚它的危害范围。

数仓的常见分层一般为3层,分别为:

  • 数据操作层
  • 数据仓库层
  • 应用数据层(数据集市层)。

当然根据研究人员经验或者业务,可以分为更多不同的层,只要能达到流程清晰,方便查数即可。

在这里插入图片描述

ODS

ODS(Operation Data Store 数据准备区),数据仓库源头系统的数据表通常会原封不同的存储一份,这称为ODS层,也称为准备区。它们是后续数据仓库加工数据的来源。ODS层数据的主要来源包括:

  • 业务数据库,可用DataX、Sqoop等工具来抽取,每天定时抽取一次,在实时的应用中,可用Canal监听MySQL Binlog,实时接入变更的数据。
  • 埋点日志,线上系统会打入各种日志,这些日志一般以文件的形式保存,可以用Flume定时抽取
  • 其他数据源,从第三方购买的数据,或是网络爬虫的数据

DW

DW(Data WareHouse 数据仓库层),包含DWD、DWS、DIM层,由ODS层数据加工而成,主要完成数据加工与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。

  • DWD(Data WareHouse Detail 细节数据层),是业务与数据仓库的隔离层,以业务过程为建模驱动,基于每个具体的业务过程特点,构建细粒度的明细层事实表。可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当地冗余,也即宽表化处理。
  • DWS(Data WareHouse Service 服务数据层),基于DWD的基础数据,整合汇总成分析某个主题域的服务数据。以分析的主题为建模驱动,基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。
  • 公共维度层(DIM):基于维度建模理念思想,建立一致性维度
  • TMP层:临时层,存放计算过程中临时产生的数据

ADS

ADS(Application Data Store)应用数据层,基于DW数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。

简单总结

数据仓库层次的划分不是固定不变的,可以根据实际需求进行适当裁剪或者是添加,如果业务相对简单和独立,可以将DWD、DWS进行合并。

在这里插入图片描述

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

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

相关文章

aws中AcmClient.describeCertificate返回值中没有ResourceRecord

我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。 AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。 $acmClient new AcmClient([region > us-east-1,version > 2015-12-08,credentials>[/…

C++20 概念与约束(2)—— 初识概念与约束

《C20 概念与约束(1)—— SFINAE》 ●《C20 概念与约束(2)—— 初识概念与约束》 《C20 概念与约束(3)—— 约束的进阶用法》 1、概念 C20 中引入新的编译期关键字 concept 用于创建概念。个人认为将其…

拦截器实现http请求访问本地图片

本文来记录下拦截器实现http请求访问本地图片 文章目录 概述代码实现本文小结 概述 如下图,本机(服务器)存储的图片想要在浏览器上通过Url地址访问: 浏览器直接访问 代码实现 烂机器实现文件真实地址和物理地址之间的映射 Slf4j Configuration public cl…

Python技巧:查询模块的版本号的方法

1,pycharm里面的 Python interpreter 或者 Python package 2,通过 __version_info__ import matplotlib print(matplotlib.__version_info__) 3,查看目录里面的 _version.py 文件

计算机网络——HTTP篇

基础篇 IOS七层网络模型 TCP/IP四层模型? 应⽤层:位于传输层之上,主要提供两个终端设备上的应⽤程序之间的通信,它定义了信息交换的格式,消息会交给下⼀层传输层来传输。 传输层的主要任务就是负责向两台设备进程之间…

Unity插件NodeCanvas之行为树的详细教程

文章目录 前言叶节点 Leafs1、行为 Action2、判断 Condition控制组件 Composites1、顺序执行器 Sequencer2、选择执行器 Selector3、概率选择执行器 Probability Selector4、权重选择执行器 Priority Selector5、平行执行器 Parallel6、轮流选择器 Flip Selector7、完整执行器 …

Qt 使用QTreeView显示并动态的增删改查JSON文件数据

文章目录 效果图概述部分代码总结 效果图 概述 本案例在此开源项目QJsonModel的基础上实现,动态的生成并操作JSON数据,QJsonModel是一个基于QAbstractItemModel的JSON数据模型,它提供了一种简单的方式来将JSON数据可视化,功能简单…

计算机专业可以报考公务员吗?都有哪些职位?

C哥专业提供——计软考研院校选择分析专业课备考指南规划 计算机专业是历年来考公的热门专业,岗位较多,且研究生进入体制内直接是副科级待遇,铁饭碗还是很香的! 25国考计算机专业可以选择的岗位 招聘人数:学硕>专硕…

视频智能分析平台LiteAIServer算法定制未戴安全帽检测技术:智能安防领域的新篇章

在当今这个科技日新月异的时代,人工智能(AI)和计算机视觉技术的飞速发展正在以前所未有的速度改变我们的生活、工作乃至整个社会的面貌。在建筑行业中,安全问题一直是重中之重,而工人未戴安全帽的问题更是工地安全管理…

C++ 优先算法 —— 四数之和(双指针)

目录 题目:四数之和 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 双指针算法 不漏的处理: 去重处理: 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 双指针算法 题目:四数之和 1. 题目解析 题目截图: 这道题与三数之和&am…

思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉啊“ (**)

Linux vi/vim | 菜鸟教程 https://zhuanlan.zhihu.com/p/602675406 Linux Vim编辑器的基本使用_vim文本编辑器-CSDN博客 这里提出使用 vi / vim 进行简单的编辑操作的原因,主要是在容器镜像中,普遍都是使用这个。 在 linux 服务器应用场景&#x…

C# 通俗易懂的介绍基础知识(七)——栈Stack(从日常生活开始讲解)

目录 一、前言 二、栈是排列方式 三、栈的单词 四、程序中的栈 五、栈的方法 1.声明并初始化栈 2.往栈里放东西(学名:入栈) 3.从栈往外拿东西 (学名:出栈) 4.清空栈 5.遍历 Stack 6.获取Stack的长…

React Query在现代前端开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 引言 React Query …

面试题之---解释一下原型和原型链

实例化对象 和普调函数一样,只不过调用的时候要和new连用(实例化),不然就是一个普通函数调用 function Person () {} const o1 new Person() //能得到一个空对象 const o2 Person() //什么也得不到,这就是普通的…

Java项目实战II基于微信小程序的助农扶贫的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网技术的快速发展&#xf…

【Linux】阿里云服务器搭建gradio实例

文章目录 0 前言1 整体结构2 Python开放环境搭建2.1 SSL安装2.2 python安装 3 开发3.1 工具使用3.2 gradio3.3 langchain 4 nginx部署4.1 下载安装4.2 配置访问gradio 5 服务编写6 扩展:安装软件步骤总结 0 前言 因为课程原因,需要做一个大模型相关的大作…

vue3中如何实现标准元素 拖动 功能 【收藏备用】

最近在用vue3做一个企业后台管理系统的项目,在登录页面的时候需要用户滑动滑块来获取验证码登录系统 用到了元素拖放 这里也顺便记录一下 如何使用的. 目录 1.功能介绍 2.代码部分 3 实现过程 3.1 设置可拖动元素 3.2 拖动什么 3.3 放到何处 3.4 进行放置 1.功能介绍…

小水电远程集控运维系统简介及应用价值

一、政策背景 2023年7月14日水利部办公厅印发了《智能化小型水电站技术指南( 试行)》和(《小水电集控中心技术指南( 试行)》两个指导性文件,明确要求实施小水电绿色改造和现代化提升工程,推进建设智能集约的现代化小水电。 二、系统概述 小…

公司电脑加全屏水印怎么加(怎么打水印满屏)?4个方法精选!包教包会!

在企业管理中,为了保护公司机密信息的安全,给公司电脑添加全屏水印已成为一种常见的安全措施。 全屏水印不仅可以震慑潜在的窥探者,还能在信息不慎泄露时提供追溯线索。 那么,如何给公司电脑添加全屏水印呢? 以下是4…

AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战

文章目录 1 LLM 大模型在工作中的实际应用以及局限性LLM 大模型工作中实际应用大模型2点局限性 2 基于大模型和向量数据库的企业级知识库架构剖析向量数据库向量数据库选型知识库文档检索增强(Retrieval Augmented Generation)向量数据库应用技术总体架构向量数据库应用离线索引…