数据仓库【2】:架构

news2024/9/23 9:37:15

数据仓库【2】:架构

  • 1、架构图
  • 2、ETL流程
    • 2.1、ETL -- Extract-Transform-Load
      • 2.1.1、数据抽取(Extraction)
      • 2.1.2、数据转换(Transformation)
      • 2.1.3、数据加载( Loading )
    • 2.2、ETL工具
      • 2.2.1、结构化数据ETL工具
      • 2.2.1、非|半结构化数据ETL工具
  • 3、数据积存
    • 3.1、操作数据层(ODS)
  • 4、数据分析
    • 4.1、数据明细层(DWD)
    • 4.2、数据汇总层(DWS)
    • 4.3、数据应用层(ADS)

1、架构图

在这里插入图片描述

2、ETL流程

2.1、ETL – Extract-Transform-Load

  • 将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程
  • 构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先
    定义好的数据仓库模型,将数据加载到数据仓库中去
  • ETL 规则的设计和实施约占整个数据仓库搭建工作量的 60%~80%
    在这里插入图片描述

2.1.1、数据抽取(Extraction)

  • 抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据
  • 结构化数据一般采用JDBC、数据库日志方式,非|半结构化数据会监听文件变动
    抽取方式
    • 数据抽取方式有全量同步、增量同步两种方式
    • 全量同步会将全部数据进行抽取,一般用于初始化数据装载
    • 增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据更新

2.1.2、数据转换(Transformation)

  • 数据转换要经历数据清洗和转换两个阶段
    • 数据清洗主要是对出现的重复、二义性、不完整、违反业务或逻辑规则等问题的数据进行统一的处理
    • 数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换
  • 结构化数据在转换过程中的逻辑较为简单,非 | 半结构化数据的转换会较为复杂

2.1.3、数据加载( Loading )

  • 将最后处理完的数据导入到对应的目标源里

2.2、ETL工具

2.2.1、结构化数据ETL工具

  • Sqoop
  • Kettle
  • Datastage
  • Informatica
  • Kafka

2.2.1、非|半结构化数据ETL工具

  • Flume
  • Logstash

3、数据积存

3.1、操作数据层(ODS)

  • 数据与原业务数据保持一致,可以增加字段用来进行数据管理

  • 存储的历史数据是只读的,提供业务系统查询使用

  • 业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中
    在这里插入图片描述

  • 在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量两种

    • 全量导入:数据第一次导入时,选择此种方式
    • 增量导入:数据非第一次导入,每次只需要导入新增、更改的数据,建议使用外连接&全覆盖方式

4、数据分析

4.1、数据明细层(DWD)

  • 数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域)
  • 数据仍然满足3NF模型,为分析运算做准备
    在这里插入图片描述

4.2、数据汇总层(DWS)

  • 数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表
  • 存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型
    在这里插入图片描述

4.3、数据应用层(ADS)

  • 数据应用层也被称为数据集市
  • 存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担
    • 数据仓库擅长数据分析,直接开放业务查询接口,会加重其负担
      在这里插入图片描述

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

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

相关文章

github新建仓库推送代码教学

之前一直用gitee,准备转到github。因为一步一步尝试。如果是新手或许文章会有帮助 点击 new 创建 拉代码 Idea 打开 复制一个 pom 文件作为 maven 管理 提交代码 不出意外的出意外,报错 点击authorize JetBrains 失败 分析问题 本质就是没有…

零基础入门网络安全必看的5本书籍(附PDF)

书中自有黄金屋,书中自有颜如玉。很多人学习一门技术都会看大量的书籍,经常也有朋友询问:零基础刚入门,应该看哪些书?应该怎么学?等等问题。今天就整理了5本零基础入门网络安全必看书籍,希望能帮…

Ubuntu 22.04.3 Server 设置静态IP 通过修改yaml配置文件方法

目录 1.查看网卡信息 2.修改yaml配置文件 3.应用新的网络配置 4.重新启动网络服务 文章内容 本文介绍Ubuntu 22.04.3 Server系统通过修改yaml配置文件配置静态 ip 的方法。 1.查看网卡信息 使用ifconfig命令查看网卡信息获取网卡名称​ 如果出现Command ifconfig not fo…

若依SQL Server开发使用教程

1. sys_menu表中的将菜单ID修改为自动ID,解决不能增加菜单的问题,操作流程如下: 解决方案如下 菜单栏->工具->选项 点击设计器,去掉阻止保存要求更新创建表的更改选项,点确认既可以保存了 2 自动生成代码找不表的解决方案…

智能优化算法应用:基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.指数分布算法4.实验参数设定5.算法结果6.…

20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据

20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据 2023/12/25 20:05 结论:硬件蓝牙分析仪 不一定比 手机端的APK的效果好! 亿佰特E104-2G4U04A需要3片【单通道】,电脑端的UI为全英文的。 BLE-AnalyzerPro WCH升级版B…

前端---css 的介绍

1. css 的定义 css(Cascading Style Sheet)层叠样式表,它是用来美化页面的一种语言。 没有使用css的效果图 使用css的效果图 2. css 的作用 美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。控制页面布局, 比如: 设置浮动、定位等样式。 3. css 的基本语…

B/S和C/S的区别和联系

B/S和C/S的区别和联系 1 B/S2 C/S3 B/S和C/S区别4 B/S和C/S联系 1 B/S B/S(Brower/Server)架构,也称为B/S结构或B/S模式,是Web兴起后的一种网络结构模式。在这种模式下,Web浏览器成为客户端最主要的软件。系统功能实现…

MongoDB文档操作

3.3 文档操作 3.1 文档介绍 文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。 文档是一组键值(key-value)对(即 BSON),一个简单的文档例子如下&…

AI 引擎系列 8 - 运行时比率参数简介

简介 在 Versal AI 引擎 2 一文 中,我们注意到计算图 (graph) 文件中有一行内容用于为每个内核实例定义运行时比率参数。 在本文中,我们将讲解该参数如何影响 AI 引擎应用的资源使用率和性能。 要求 下文要求您通读前几篇 AI 引擎系列博文。 AI 引擎系…

低代码实施复杂应用的实践方法

内容来自演讲:韦有炬 | 柳州知行远企业管理咨询有限公司 | 总经理 摘要 本文探讨了在全民开发时代如何使用低代码实施复杂应用并降低上线风险。文章分析了复杂系统实施失败的风险,包括项目规划不周、人员变动、企业基础管理不足等,并对比了低…

基于JavaServelet的同学录管理系统(Java毕业设计)

点击咨询源码 大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的…

智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.卷积优化算法4.实验参数设定5.算法结果6.…

搭建react+ant design pro+umi 项目框架

一、 写本文的原因 我搭建reactantdumi这个框架的原始资料主要是来源于(ReactUmi4从零快速搭建中后台系统保姆级记录教程(一、项目创建及初始化)) 而我写这篇文章的本意就是用来记录我用搭建时候的步骤汇总。 二、 npm和node版…

找不到msvcr90.dll文件怎么办?msvcr90.dll丢失如何修复?

在日常使用计算机的过程中,我们可能会遇到一些错误提示,其中之一就是“msvcr90.dll缺失”。那么,msvcr90.dll到底是什么?为什么会出现丢失的情况?本文将为您详细介绍msvcr90.dll的定义、丢失原因以及提供5种不同的解决…

介绍一个在线K8S练习平台

是不是有很多小伙伴想学习k8s,但是又没有机器去练习。使用自己的笔记本电脑或者主机只能搭建单机版本的k8s来练习。 现在福利来了,给大家介绍一个在线多节点k8s练习平台:Play with Kubernetes。 Play with Kubernetes 介绍 Play with Kube…

虚拟机安装centos7系统步骤

1、下载系统镜像文件 下载地址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso 2、鼠标右键点击虚拟机-->设置-->CD/DVDD-->使用ISO映像文件-->点击浏览,选择文件,而后保存设置 3、点…

程序员必须掌握的排序算法:插入排序的原理与实现

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 插入排序八大排序之一是一种非常简单直观的排序算法,尽管插入排序在时间复杂度上并不…

【笔记】入门PCB设计(全30集带目录) 杜洋工作室 AD09 Altium Designer

入门PCB设计(全30集带目录) 杜洋工作室 AD09 p1 创建p2 原理图上增加元件1)加元件2)放导线3)自定义元件1. 自定义排针2.有引脚的元件 p3 完整原理图 p1 创建 step1.创建(PCB)工程,后缀.PrjPCB。…

LeetCode-相交链表(160)

题目描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。 注意&#xf…