数仓开发中期:理论巩固

一、数仓以及商业智能(Data Warehousing and Business Intelligence, DW/BI)系统

1.1数据操作和数据获取的区别

对所有组织来说,信息都是其最重要的财富之一。信息几乎总是用作两个目的:操作型记录的保存和分析型决策的制定。简单来说,操作型系统保存数据,而DW/BI系统使用数据。

操作型系统的用户确保组织能正常运转。操作型系统获取订单、签订新客户、监视操作型活动的状态、记录问题。对操作型系统进行优化的目的是使其能够更快

操作型系统一般一次处理一个事务记录。它们按部就班,以可预测的方式完成同样的操作型任务,可预测地执行组织的业务过程。鉴于这种执行特点,操作型系统通常不必维护历史数据,只需修改数据以反映最新的状态。

另一方面,DW/BI系统的用户研究分析企业的运转,并对其性能进行评估。DW/BI系统计算新订单的数量,并与过去一周的订单进行比较,找寻签订新客户的原因,了解客户在抱怨什么。这些信息用于分析并判断操作型过程是否处于正确的工作状态。尽管也需要详细的数据来支持始终处于变化状态的问题,但DW/BI系统一般不会一次只处理一个事务。对 DW/BI系统进行优化的目的是高性能地完成用户的查询,而回答用户的查询通常需要搜索成千上万条事务,并将查询结果放入一个查询集合中。为应对更复杂的问题,DW/BI系统的用户通常要求保存历史环境,用于精确地评估组织在一段时间内的性能。

2.1维度建模简介

基于前述对DW/BI系统目标的介绍,本节开始介绍维度建模的基本概念。维度建模是展现分析数据的首选技术,这一观点之所以被广泛接受,主要基于以下两个需要同时满足的需求:
以商业用户可理解的方式发布数据。
提供高效的查询性能。维度建模并不是一种新技术,早期主要用于简化数据库。50多年来,经过大量案例的考验,IT 组织、行业顾问和商业用户自然而然地被这种以单一维度结构满足人们基本需求的简单性所吸引。简单性至关重要,因为它能够确保用户方便地理解数据,以及确保软件能够快速、有效地发现及发布结果。
假设某个业务经理描述其业务为:“我们在各种各样的市场销售产品,并不断地对我们的表现进行度量。”维度设计者通过仔细倾听和分析,知道其业务强调的是产品、市场、时间。多数人发现其业务包含三维数据,即将其业务数据标识为产品、市场和时间。设想沿着上述三维进行切片和切块操作。多维数据库中的点表示度量结果,例如,销售额或利润,这一结果是满足特定产品、市场和时间的结果。将某些事情以具体、有形的方式抽象成数据集展示出来的能力是解决可理解能力的法宝。如果上述场景表现太简单,这正是我们的所需!从简单的数据模型开始是保持设计简单性的基础。如果从复杂的数据模型起步,那么最终会导致模型过度复杂,从而导致查询性能低下,最终使商业用户反感。爱因斯坦曾经说过“凡事应该尽量简单,直到不能再简单为止。”

业界有时将 3NF 模型称为实体-关系模型。实体-关系图(ER图或ERD)表示了表间的交互关系。3NF模型及维度模型都可以用ERD表示,因为它们都包含可连接的关系表。主要差别在于规范化程度。因为两种模型都可以用ERD表示,我们强调不要将ER模型当成
3NF 模型,将3NF 模型称为规范化模型以消除混淆。规范化的 3NF 模型主要应用于操作型过程中,因为对事务的更新与插入仅触及数据库的单一地方。然而,对 BI查询来说,规范化模型太复杂。用户难以理解、检索,难以记住类似洛杉矶地铁系统那样具有复杂网络的模型。而且,多数关系数据库管理系统不能有效地查询规范化模型,用户查询难以预测的复杂性将耗尽数据库优化器,产生灾难性的查询性能。在 DW/BI这样的展现系统中使用规范化建模方法难以满足对数据的高性能检索需求。幸运的是,维度建模解决了模式过分复杂的问题。

3.1事实表

维度模型中的事实表存储组织机构业务过程事件的性能度量结果。应该尽量将来源于同一个业务过程的底层度量结果存储于一个维度模型中。因为度量的数据量巨大,所以不应该为满足多个组织功能的需要而将这些数据存放在多个地方。应该允许多个组织的业务用户访问同一个单一的集中式数据仓库,确保他们能在整个企业中使用一致的数据。

事实表中的每行对应一个度量事件。每行中的数据是一个特定级别的细节数据,称为粒度。例如,销售事务中用一行来表示每个卖出的产品。维度建模的核心原则之一是同一事实表中的所有度量行必须具有相同的粒度。牢记建立事实表时使用统一的细节级别这原则可以确保不会出现重复计算度量的问题,
注意:
物理世界的每一个度量事件与对应的事实表行具有一对一的关系,这一思想是维度建模的基本原则。其他工作都是以此为基础建立的。最实用的事实是数值类型和可加类型事实。

4.1维度表

维度表是事实表不可或缺的组成部分。维度表包含与业务过程度量事件有关的文本环它们用于描述与“谁、什么、哪里、何时、如何、为什么”有关的事件。境。如图1-3所示,维度表通常有多列,或者说包含多个属性。有50~100个属性的维度表并不稀奇。尽管如此,也可能存在一些只包含少量属性的维度表。与事实表比较,维度表趋向于包含较少的行,但由于可能存在大量文本列而导致存在多列的情况。每个维度表由单一主键定义(参考图 1-3 的主键概念),用于在与事实表连接操作时实现参照完整性的基础。维度属性可作为查询约束、分组、报表标识的主要来源。对查询或报表请求来说,属性以词或词组加以区分。例如,当用户希望按照品牌来查看销售额时,要查看的品牌必须存在于维度属性中。

5.1ETL转化

DW/BI环境中获取、转换、加载(Extract Transformation and Load,ETL)系统包括一个工作区间、实例化的数据结构以及一个过程集合。ETL系统是处于操作型源系统与DW/BI展现系统之间的区域。此处仅对DW/BI系统中的这一基础模块进行简单介绍。
获取是将数据从操作型系统导入数据仓库环境这一ETL过程的第1步。获取意味着读取并理解源数据并将需要的数据复制到ETL系统中以利于后续的处理操作。从这点来看,数据属于数据仓库。
数据获取到ETL 系统后,需要进行多种转换操作,例如,清洗数据(消除拼写错误、解决领域冲突、处理错误的元素、解析为标准格式),合并来自不同数据源的数据,复制数据等。ETL系统通过增强或数据变换,采用清洗和整合上述任务的方法,增加数据的利用价值。另外,这些工作还可以建立诊断元数据,逐步建立业务过程再工程以改进源系统的数据质量。
ETL 最后的步骤是实际构建和加载数据到展现区域的目标维度模型中。由于ETI系统的主要任务是在交付过程中划分维度和事实,因此其所包含的子系统非常重要。此处定义的子系统关注维度表的处理,例如,代理键分配、查找代码以提供适当的描述、拆分或组合列以提供适当的数据值、连接满足第3范式的数据表成为扁平的不满足规范化要求的维度等。相比之下,事实表往往比较庞大,因此在加载时需要耗费大量时间,将其加载并导入到展现区是必须开展的工作。当维度模型中的维度表和事实表被更新、索引、适当聚集,并确保良好质量后,业各用户就可以开始使用这些数据了。

6.1分层

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于vs2019 c++ STL 中容器的迭代器的 -> 运算符的使用,以 list 双向链表为例

(1)如下的结构体 A ,若有指针 p new A() ;则可以使用 p->m , p->n 解引用运算符。 struct A { int m ; int n; } 对于 STL 中提供的迭代器,提供了类似于指针的功能。对迭代器也可以使用 -> 运算…

ElasticSearch知识点汇总

1、ES中的​​​​​​​倒排索引是什么。 倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典映射表即为倒排索引 2、ES是如何实现master选举的。 选举过程主要包括以下几个步骤: 心跳检测: 每个节点…

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

学习通下载PDF资源

今天突然发现,学习通的pdf资源居然是没有下载入口的,这整的我想cv一下我的作业都搞不了,于是我一怒之下,怒了一下。 可以看到学习通的pdf资源是内嵌在网页的,阅读起来很不方便,虽然他内置了阅读器&#xf…

如何做好一个活动策划?

活动策划的关键要素是什么? 首先,要明确一个概念:做活动就是走钢丝,没有保险的高空走钢丝!因为,活动没有“彩排”,只有现场"直播”! 无论什么类型的活动,人数是50人还是2000人,也不论预算…

Linux网络编程(一) 网络基础

一、一些概念 1.1、局域网与广域网 局域网:局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 1.2、IP IP地址本质就是…

某制造公司屋顶分布式光伏发电案例分享--分布式光伏电力监控系统解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★分布式光伏监控系统 分布式光伏监控电力系统遵循安全可靠、经济合理原则,满足电力系统自动化总体规划要求,且充分考虑光伏发电的因素,对分布式光伏发电、用电进行集中监控、统一调度、统一运维、满足…

苍穹外卖项目---------收获以及改进(5-6天)

①HttpClient 核心作用:在java编码中发送http请求 第一步:引入依赖 第二步:使用封装一个工具类 package com.sky.utils;import com.alibaba.fastjson.JSONObject; import org.apache.http.NameValuePair; import org.apache.http.client.co…

向各位请教一个问题

这是菜鸟上的一道题目,单单拿出来问问大家,看看能不能解惑 ,谢谢各位! 题目25:求12!3!...20!的和 解题思路:这个题不知道为什么我用DEV C 5.11显示出来为0.000000,可能版本有问题?&a…

【JVM】内存结构

内存结构 Java 虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程一一对应的数据区域会随着线程开始和结束而创建和销毁。 线程私有…

Agent AI智能体:我们的生活即将如何改变?

你有没有想过,那个帮你设置闹钟、提醒你朋友的生日,甚至帮你订外卖的智能助手,其实就是Agent AI智能体?它们已经在我们生活中扮演了越来越重要的角色。现在,让我们一起想象一下,随着这些AI智能体变得越来越…

【Ansiable】ansible的模块和主机清单

Ansible Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比…

【无标题】程序设计和c语言-谭浩强配套(适合专升本)

一晃大半年没更新了,一直在备考,想着这几天把前段时间学的c语言给大家分享一下,在此做了一个专栏,有需要的小伙伴可私信获取。 说明:本专栏所有内容皆适合专升本复习资料,本人手上也有日常刷题整理的错题以…

电脑提示mfc140u.dll文件丢失了?怎么快速修复mfc140u.dll文件

当你的电脑提示你的mfc140u.dll文件丢失了,那么就要小心了,可能你的某些程序出问题了!这时候需要我们去进行相关的修复,只有修复了这个mfc140u.dll文件,才能正常的使用某些程序。下面一起来了解一下mfc140u.dll文件吧。…

修改ElTable组件的样式(element-plus)

效果展示 <div class"table_main"><ElTable:data"tableList":header-cell-style"{color: #ffffff,background: #6f7f93,}"class"table_border":highlight-current-row"false"><ElTableColumn type"inde…

sql注入练习

1.什么是SQL注入 SQL注入是比较常见的网络攻击方式之一&#xff0c;它不是利用操作系统的BUG来实现攻击&#xff0c;而是针对程序员编写时的疏忽&#xff0c;通过SQL语句&#xff0c;实现无账号登录&#xff0c;甚至篡改数据库 2.sql注入原理 攻击者注入一段包含注释符的SQL语…

欧鹏RHCE 第四次作业

unit4.web服务的部署及高级优化方案 1. 搭建web服务器要求如下&#xff1a; 1.web服务器的主机ip&#xff1a;172.25.254.100 2.web服务器的默认访问目录为/var/www/html 默认发布内容为default‘s page 3.站点news.timinglee.org默认发布目录为/var/www/virtual/timinglee.org…

建设智慧公厕,打造便捷、环保、安全的公共厕所使用体验

近年来&#xff0c;随着科技的快速发展&#xff0c;智慧公厕在城市建设中起到了重要的作用。通过信息化手段、智慧化管理和科技创新智能设备等措施&#xff0c;智慧公厕实现了许多令人惊叹的改变。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案例项…

蓝桥杯13届JAVA A组 国赛

​​​​​​​ package 蓝桥杯国赛; // 贪心选个数最少的进行摆 // 2:1 ,3:1, 4:1,5 : 3,6:3,7:1 // 选 1&#xff0c;7&#xff0c;4&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;9 // 然后都选满10个 public class 火彩棒数字 {public static void main(String[] a…

超越传统游戏:生成式人工智能对游戏的变革性影响

人工智能&#xff08;AI&#xff09;在游戏中的应用 游戏产业是一个充满活力、不断发展的领域&#xff0c;人工智能&#xff08;AI&#xff09;的融入对其产生了重大影响。这一技术进步彻底改变了游戏的开发、玩法和体验方式。本文分析的重点是传统人工智能和生成式人工智能在游…
最新文章