皮具市场简介 万字详解整个数据仓库建设体系

本文转载自微信公多号「五分钟学大数据」,作者园陌  。转载本文请相关五分钟学大数据公多号。

数据仓库的基本概念数据仓库概念:

英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的方针是构建面向分析的集成化数据环境,为企业挑供决策声援(Decision Support)。它出于分析性通知和决策声援方针而创建。

数据仓库自己并不“生产”任何数据,同时自己也不必要“消耗”任何的数据,数据来源于外部,并且盛开给外部行使,这也是为什么叫“仓库”,而不叫“工厂”的因为。

基本特征:

数据仓库是面向主题的、集成的、非易失的和时变的数据荟萃,用以声援管理决策。

面向主题:

传统数据库中,最大的特点是面向行使进走数据的布局,各个营业体系能够是相互别离的。而数据仓库则是面向主题的。主题是一个抽象的概念,是较高层次上企业新闻体系中的数据综相符、归类并进走分析行使的抽象。在逻辑意义上,它是对答企业中某一宏不益看分析周围所涉及的分析对象。

集成性:

议定对星散、自力、异构的数据库数据进走抽取、修整、转换和汇总便得到了数据仓库的数据,云云保证了数据仓库内的数据关于整个企业的相反性。

数据仓库中的综相符数据不克从原有的数据库体系直接得到。因此在数据进入数据仓库之前,必然要经过联相符与综相符,这一步是数据仓库建设中最关键、最复杂的一步,所要完善的做事有:

要联相符源数据中一切矛盾之处,如字段的同名异义、异名同义、单位不联相符、字长纷歧致,等等。 进走数据综相符和计算。数据仓库中的数据综相符做事能够在从原有数据库抽取数据时生成,但很多是在数据仓库内部生成的,即进入数据仓库以后进走综相符生成的。

下图表明一个保险公司综相符数据的浅易处理过程,其中数据仓库中与“保险” 主题相关的数据来自于多个迥异的操作型体系。这些体系内部数据的命名能够迥异,数据格式也能够迥异。把迥异来源的数据存储到数据仓库之前,必要往除这些纷歧致。

数仓主题

非易失性(不可更新性)

数据仓库的数据逆映的是一段相等长的时间内历史数据的内容,是迥异时点的数据库快照的荟萃,以及基于这些快照进走统计、综相符和重组的导出数据。

数据非易失性主要是针对行使而言。数据仓库的用户对数据的操作大多是数据查询或比较复杂的发掘,一旦数据进入数据仓库以后,清淡情况下被较长时间保留。数据仓库中清淡有大量的查询操作,但修改和删除操作很少。因此,数据经添工和集成进入数据仓库后是极少更新的,清淡只必要按期的添载和更新。

时变性

数据仓库包含各栽粒度的历史数据。数据仓库中的数据能够与某个特定日期、星期、月份、季度或者年份相关。数据仓库的方针是通太甚析企业以前一段时间营业的经营状况,发掘其中暗藏的模式。固然数据仓库的用户不克修改数据,但并不是说数据仓库的数据是永世不变的。分析的效果只能逆映以前的情况,当营业转折后,发掘出的模式会失踪时效性。因此数据仓库的数据必要更新,以适宜决策的必要。从这个角度讲,数据仓库建设是一个项现在,更是一个过程。数据仓库的数据随时间的转折外现在以下几个方面:

(1) 数据仓库的数据时限清淡要远远长于操作型数据的数据时限。

(2) 操作型体系存储的是现在数据,而数据仓库中的数据是历史数据。

(3) 数据仓库中的数据是遵命时间挨次追添的,它们都带未必间属性。

1. 数据仓库与数据库的区别

数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别。

操作型处理,叫联机事务处理 OLTP(On-Line Transaction Processing,),也能够称面向营业的处理体系,它是针对详细营业在数据库联机的平时操作,清淡对幼批记录进走查询、修改。用户较为关心操作的相答时间、数据的坦然性、完善性和并发声援的用户数等题目。传统的数据库体系行为数据管理的主要办法,主要用于操作型处理,像Mysql,Oracle等相关型数据库清淡属于OLTP。

分析型处理,叫联机分析处理 OLAP(On-Line Analytical Processing)清淡针对某些主题的历史数据进走分析,声援管理决策。

最先要清新,数据仓库的展现,并不是要取代数据库。数据库是面向事务的设计,数据仓库是面向主题设计的。数据库清淡存储营业数据,数据仓库存储的清淡是历史数据。

数据库设计是尽量避免冗余,清淡针对某一营业行使进走设计,比如一张浅易的User外,记录用户名、暗号等浅易数据即可,相符营业行使,但是不相符分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进走设计。

数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

以银走营业为例。数据库是事务体系的数据平台,客户在银走做的每笔营业都会写入数据库,被记录下来,这边,能够浅易地理解为用数据库记账。数据仓库是分析体系的数据平台,它从事务体系获取数据,并做汇总、添工,为决策者挑供决策的依据。比如,某银走某分走一个月发生多少营业,该分走现在存款余额是多少。倘若存款又多,消耗营业又多,那么该地区就有必要竖立ATM了。

隐微,银走的营业量是重大的,清淡以百万甚至千万次来计算。事务体系是实时的,这就请求时效性,客户存一笔钱必要几十秒是无法忍受的,这就请求数据库只能存储很短一段时间的数据。而分析体系是过后的,它要挑供关注时间段内一切的有效数据。这些数据是海量的,汇总共算首来也要慢一些,但是,只要能够挑供有效的分析数据就达到方针了。

数据仓库,是在数据库已经大量存在的情况下,为了进一步发掘数据资源、为了决策必要而产生的,它决不是所谓的“大型数据库”。

2. 数据仓库分层架构

遵命数据流入流出的过程,数据仓库架构可分为:源数据、数据仓库、数据行使

数据仓库

数据仓库的数据来源于迥异的源数据,并挑供多样的数据行使,数据自下而上流入数据仓库后向表层盛开行使,而数据仓库只是中心集成化数据管理的一个平台。

源数据:此层数据无任何更改,直接因袭外围体系数据结议和数据,偏差外盛开;为一时存储层,是接口数据的一时存储区域,为后一步的数据处理做准备。

数据仓库:也称为细节层,DW层的数据答该是相反的、实在的、清洁的数据,即对源体系数据进走了清洗(往除了杂质)后的数据。

数据行使:前端行使直接读取的数据源;根据报外、专题分析需求而计算生成的数据。

数据仓库从各数据源获取数据及在数据仓库内的数据转换和起伏都能够认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程,ETL是数据仓库的流水线,也能够认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库平时的管理和维护做事的大片面精力就是保持ETL的平常和安详。

那么为什么要数据仓库进走分层呢?

用空间换时间,议定大量的预处理来升迁行使体系的用户体验(效果),因此数据仓库会存在大量冗余的数据;不分层的话,倘若源营业体系的营业规则发生转折将会影响整个数据清洗过程,做事量重大。 议定数据分层管理能够简化数据清洗的过程,由于把正本一步的做事分到了多个步骤往完善,相等于把一个复杂的做事拆成了多个浅易的做事,把一个大的暗盒变成了一个白盒,每一层的处理逻辑都相对浅易和容易理解,云云吾们比较容易保证每一个步骤的切确性,当数据发生舛讹的时候,往往吾们只必要片面调整某个步骤即可。 3. 数据仓库元数据的管理

元数据(Meta Date),主要记录数据仓库中模型的定义、各层级间的映射相关、监控数据仓库的数据状态及ETL的义务运走状态。清淡会议定元数据原料库(Metadata Repository)来联相符地存储和管理元数据,其主要方针是使数据仓库的设计、安放、操作和管理能达成协同和相反。

元数据是数据仓库管理体系的主要构成片面,元数据管理是企业级数据仓库中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、行使和维护。

构建数据仓库的主要步骤之一是ETL。这时元数据将发挥主要的作用,它定义了源数据体系到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。数据抽取和转换的行家以及数据仓库管理员正是议定元数据高效地构建数据仓库。 用户在行使数据仓库时,议定元数据访问数据,清晰数据项的含义以及定制报外。 数据仓库的周围及其复杂性离不开切确的元数据管理,包括增补或移除外部数据源,转折数据清洗形式,限制出错的查询以及安排备份等。

元数据可分为技术元数据和营业元数据。技术元数据为开发和管理数据仓库的IT 人员行使,它描述了与数据仓库开发、管理和维护相关的数据,包括数据源新闻、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。而营业元数据为管理层和营业分析人员服务,从营业角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,协助营业人员更益地理解数据仓库中哪些数据是可用的以及如何行使。

由上可见,元数据不光定义了数据仓库中数据的模式、来源、抽取和转换规则等,而且是整个数据仓库体系运走的基础,元数据把数据仓库体系中各个疏松的组件相关首来,构成了一个有机的集体。

数仓建模形式

数据仓库的建模形式有很多栽,每一栽建模形式代外了形而上学上的一个不益看点,代外了一栽归纳、概括世界的一栽形式。常见的有 范式建模法、维度建模法、实体建模法等,每栽形式从内心上将是从迥异的角度望待营业中的题目。

1. 范式建模法(Third Normal Form,3NF)

范式建模法其实是吾们在构建数据模型常用的一个形式,该形式的主要由 Inmon 所挑倡,主要解决相关型数据库的数据存储,行使的一栽技术层面上的形式。现在,吾们在相关型数据库中的建模形式,大片面采用的是三范式建模法。

范式 是相符某一栽级别的相关模式的荟萃。构造数据库必须遵命肯定的规则,而在相关型数据库中这栽规则就是范式,这一过程也被称为规范化。现在相关数据库有六栽范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。

在数据仓库的模型设计中,清淡采用第三范式。一个相符第三范式的相关必须具有以下三个条件 :

每个属性值唯一,不具有多义性 ; 每个非主属性必须十足倚赖于整个主键,而非主键的一片面 ; 每个非主属性不克倚赖于其他相关中的属性,由于云云的话,这栽属性答该归到其他相关中往。

范式建模

根据 Inmon 的不益看点,数据仓库模型的建设形式和营业体系的企业数据模型相通。在营业体系中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模型和逻辑模型。同样,主题域模型能够望成是营业模型的概念模型,而逻辑模型则是域模型在相关型数据库上的实例化。

2. 维度建模法(Dimensional Modeling)

维度模型是数据仓库周围另一位行家Ralph Kimall所倡导,他的《数据仓库工具箱》是数据仓库工程周围最通走的数仓建模经典。维度建模以分析决策的需求起程构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完善分析需求,同时还有较益的大周围复杂查询的相答性能。

维度建模

典型的代外是吾们比较熟知的星形模型(Star-schema),以及在一些稀奇场景下适用的雪花模型(Snow-schema)。

维度建模中比较主要的概念就是 原形外(Fact table)和维度外(Dimension table)。其最浅易的描述就是,遵命原形外、维度外来构建数据仓库、数据集市。

现在在互联网公司最常用的建模形式就是维度建模,稍后将重点讲解。

3. 实体建模法(Entity Modeling)

实体建模法并不是数据仓库建模中常见的一个形式,它来源于形而上学的一个流派。从形而上学的意义上说,客不益看世界答该是能够细分的,客不益看世界答该能够分成由一个个实体,以及实体与实体之间的相关构成。那么吾们在数据仓库的建模过程中十足能够引入这个抽象的形式,将整个营业也能够划分成一个个的实体,而每个实体之间的相关,以及针对这些相关的表明就是吾们数据建模必要做的做事。

固然实体法粗望首来相通有一些抽象,其实理解首来很容易。即吾们能够将任何一个营业过程划分成 3 个片面,实体,事件,表明,如下图所示:

实体建模

上图外述的是一个抽象的含义,倘若吾们描述一个浅易的原形:“幼明开车往私塾上学”。以这个营业原形为例,吾们能够把“幼明”,“私塾”望成是一个实体,“上学”描述的是一个营业过程,吾们在这边能够抽象为一个详细“事件”,而“开车往”则能够望成是事件“上学”的一个表明。

维度建模

维度建模是现在行使较为普及的,特意行使于分析型数据库、数据仓库、数据集市建模的形式。数据集市能够理解为是一栽"幼型数据仓库"。

1. 维度建模中外的类型 1. 原形外

发生在实际世界中的操作型事件,其所产生的可度量数值,存储在原形外中。从最矮的粒度级别来望,原形生手对答一个度量事件,逆之亦然。

原形外外示对分析主题的度量。比如一次购买走为吾们就能够理解为是一个原形。

原形与维度

图中的订单外就是一个原形外,你能够理解他就是在实际中发生的一次操作型事件,吾们每完善一个订单,就会在订单中增补一条记录。原形外的特征:外里异国存放实际的内容,他是一堆主键的荟萃,这些ID别离能对答到维度外中的一条记录。原形外包含了与各维度外相相关的外键,可与维度外相关。原形外的度量清淡是数值类型,且记录数会不息增补,外数据周围敏捷添长。

明细外(宽外):

原形外的数据中,有些属性共同构成了一个字段(糅相符在一首),比如年月日时分秒构成了时间,当必要根据某一属性进走分组统计的时候,必要截取拼接之类的操作,效果极矮。如:

local_time 2021-03-18 06:31:42

为了分析方便,能够原形外中的一个字段切割挑取多个属性出来构成新的字段,由于字段变多了,以是称为宽外,正本的成为窄外。

将上述的local_time字段扩展为如下6个字段:

year month day hour m s 2021 03 18 06 31 42

又由于宽外的新闻更添清亮明细,以是也能够称之为明细外。

2.维度外

每个维度外都包含单一的主键列。维度外的主键能够行为与之相关的任何原形外的外键,自然,维度生手的描述环境答与原形生手十足对答。维度外清淡比较宽,是扁平型非规范外,包含大量的矮粒度的文本属性。

维度外示你要对数据进走分析时所用的一个量,比如你要分析产品出售情况, 你能够选择按类别来进走分析,或按区域来分析。每个类别就构成一个维度。原形外的图中的用户外、商家外、时间外这些都属于维度外,这些外都有一个唯一的主键,然后在外中存放了详细的数据新闻。

总的说来,在数据仓库中不必要厉格遵命规范化设计原则。由于数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。原形外的设计是以能够切确记录历史新闻为准则,维度外的设计是以能够以正当的角度来聚相符主题内容为准则。

2. 维度建模三栽模式 1. 星型模式

星形模式(Star Schema)是最常用的维度建模方式。星型模式是以原形外为中心,一切的维度外直一连接在原形外上,像星星相通。星形模式的维度建模由一个原形外和一组维外成,且具有以下特点:a. 维外只和原形外相关,维外之间异国相关;b. 每个维外主键为单列,且该主键安放在原形外中,行为双方连接的外键;c. 以原形外为核心,维外围绕核心呈星形分布;

2. 雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度外能够拥有其他维度外的,固然这栽模型相比星型更规范一些,但是由于这栽模型不太容易理解,维护成本比较高,而且性能方面必要相关多层维外,性能也比星型模型要矮。以是清淡不是很常用

雪花模式

3.星座模式

星座模式是星型模式延迟而来,星型模式是基于一张原形外的,而星座模式是基于多张原形外的,而且共享维度新闻。前线介绍的两栽维度建模形式都是多维外对答单原形外,但在很多时候维度空间内的原形外不止一个,而一个维外也能够被多个原形外用到。在营业发展后期,绝大片面维度建模都采用的是星座模式。

星座模型

3. 维度建模过程

吾们清新维度建模的外类型有原形外,维度外;模式有星形模型,雪花模型,星座模型这些概念了,但是实际营业中,给了吾们一堆数据,吾们怎么拿这些数据进走数仓建设呢,数仓工具箱作者根据自己60多年的实际营业经验,给吾们总结了如下四步,请务必记住!

数仓工具箱中的维度建模四步走:

维度建模四步走

请切记以上四步,不管什么营业,就遵命这个步骤来,挨次不要搞乱,由于这四步是环环相扣,步步相连。下面详细拆解下每个步骤怎么做

1、选择营业过程

维度建模是紧贴营业的,以是必须以营业为根基进走建模,那么选择营业过程,顾名思义就是在整个营业流程中选取吾们必要建模的营业,根据运营挑供的需求及日后的易扩展性等进走选择营业。比如商城,整个商城流程分为商家端,用户端,平台端,运营需求是总订单量,订单人数,及用户的购买情况等,吾们选择营业过程就选择用户端的数据,商家及平台端暂不考虑。营业选择特意主要,由于后面一切的步骤都是基于此营业数据伸开的。

2、声明粒度

先举个例子:对于用户来说,一个用户有一个身份证号,一个户籍地址,多个手机号,多张银走卡,那么与用户粒度相通的粒度属性有身份证粒度,户籍地址粒度,比用户粒度更细的粒度有手机号粒度,银走卡粒度,存在一对一的相关就是相通粒度。为什么要挑相通粒度呢,由于维度建模中请求吾们,在联相符原形外中,必须具有相通的粒度,联相符原形外中不要混用多栽迥异的粒度,迥异的粒度数据竖立迥异的原形外。并且从给定的营业过程获取数据时,剧烈提出从关注原子粒度最先设计,也就是从最细粒度最先,由于原子粒度能够承受无法预期的用户查询。但是上卷汇总粒度对查询性能的升迁很主要的,以是对于有清晰需求的数据,吾们竖立针对需求的上卷汇总粒度,对需求不清明的数据吾们竖立原子粒度。

3、确认维度

维度外是行为营业分析的入口和描述性标识,以是也被称为数据仓库的“灵魂”。在一堆的数据中怎么确认哪些是维度属性呢,倘若该列是对详细值的描述,是一个文本或常量,某一收敛和走标识的参与者,此时该属性往往是维度属性,数仓工具箱中通知吾们牢牢掌握原形外的粒度,就能将一切能够存在的维度区分开,并且要确保维度外中不克展现重复数据,答使维度主键唯一

4、确认原形

原形外是用来度量的,基本上都以数目值外示,原形外中的每走对答一个度量,每走中的数据是一个特定级别的细节数据,称为粒度。维度建模的核心原则之一是联相符原形外中的一切度量必须具有相通的粒度。云云能确保不会展现重复计算度量的题目。未必候往往不克确定该列数据是原形属性照样维度属性。记住最实用的原形就是数值类型和可添类原形。以是能够通太甚析该列是否是一栽包含多个值并行为计算的参与者的度量,这栽情况下该列往往是原形。

实际营业中数仓分层

数仓分层要结相符公司营业进走,并且必要清亮清晰各层职责,要保证数据层的安详又要屏蔽对下游影响,清淡采用如下分层结构:

数据分层架构

数据层详细实现

行使四张图表明每层的详细实现

数据源层ODS

数据源层

数据源层主要将各个营业数据导入到大数据平台,行为营业数据的快照存储。

数据明细层DW

数据明细层

原形外中的每走对答一个度量,每走中的数据是一个特定级别的细节数据,称为粒度。要记住的是联相符原形外中的一切度量必须具有相通的粒度。

维度外清淡都是单一主键,幼批是说相符主键,仔细维度外不要展现重复数据,否则和原形外相关会展现数据发散题目。

未必候往往不克确定该列数据是原形属性照样维度属性。记住最实用的原形就是数值类型和可添类原形。以是能够通太甚析该列是否是一栽包含多个值并行为计算的参与者的度量,这栽情况下该列往往是原形;倘若该列是对详细值的描述,是一个文本或常量,某一收敛和走标识的参与者,此时该属性往往是维度属性。但是照样要结相符营业进走最后判定是维度照样原形。

数据轻度汇总层DM

数据轻度汇总层

此层命名为轻汇总层,就代外这一层已经最先对数据进走汇总,但是不是十足汇总,只是对相通粒度的数据进走相关汇总,迥异粒度但是有相关的数据也可进走汇总,此时必要将粒度议定聚相符等操作进走联相符。

数据行使层APP

数据行使层

数据行使层的外就是挑供给用户行使的,数仓建设到此就挨近尾声了,接下来就根据迥异的需求进走迥异的取数,如直接进走报外展现,或挑供给数据分析的同事所需的数据,或其他的营业撑持。

末了

技术是为营业服务的,营业是为公司创造价值的,脱离营业的技术是有时义的。以是数仓的建设与营业是痛痒相关的皮具市场简介,公司的营业迥异,数仓的建设也是迥异的,只有正当的才是最益的。

posted on 2021-07-04  作者:admin  阅读量:

栏目导航

Powered by 大众体育app下载 @2018 RSS地图 HTML地图