一、系统结构
流程:源数据层—>数据加工层—>数据仓库层—>数据应用层—>数据访问层
左侧:结构化数据(Mysql)(研究)
右侧:非结构化数据(Hadoop)(不研究)
二、目标|群体
目标:熟悉数据仓库的框架结构、概念和步骤
群体:适合数据仓库的入门数据分析小白群体
排版:极简
三、分析步骤
1、结构化数据仓库系统
流程:数据源—>ETL—>数据仓库(数据集市)|数据仓库服务器—>OLAP服务器—>数据应用(高级报表、多维分析、数据挖掘)
数据仓库系统:由数据源、集成工具(ETL)、数据仓库与数据仓库服务器、OLAP服务器、元数据与元数据管理工具、数据集市和前台分析工具等组成。
2、数据源
数据源:外部数据、操作型数据库、订单系统、商家系统、客户系统、客服系统等
3、数据存储和管理
ETL(Extract - Transform - Load ):数据抽取(Extracting)、清洗(Cleaning)、转换(Transformation)、加载(Load)工具,简称为ETL工具,完成数据的集成。
数据抽取:就是从数据源中选择数据仓库需要的数据。数据抽取的技术难点在于要针对不同平台、不同结构、不同厂商的数据库,设计不同的抽取工具。
数据清洗:为了保证数据的质量,对抽取得到的数据要进行清洗,例如,消除不一致性(同名异义、异名同义等)、统一计量单位、估算默认值,等等。
数据转换:是将清洗后的数据按照数据仓库的主题进行组织。
数据加载,就是将数据装入数据仓库中。
ELT:(Extract - Load- Transform ):方法与ETL相反。
数据库(DB):简而言之可视为电子化的文件柜,存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
操作数据存储(ODS:Operational Data Store):是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据。
数据仓库(DW):面对主题、集成、不可更新、随时间不断变化的数据集合,用以更好地支持企业或组织的决策分析处理。
数据仓库服务器(data warehouse server),负责管理数据仓库中的数据,存储企业级的数据,为整个企业的数据分析提供一个完整的、统一的视图。一般由关系数据库管理系统扩展而成。
数据集市:是一种小型的数据仓库。它通常有较少的主题域,因此细节数据以及历史数据都较少,是部门级的。数据集市面向部门级的应用,一般只能为某个部门的管理人员服务,因此也称之为部门级数据仓库。
数据集市:从属型数据集市和独立型数据集市,“自上而下“地建立数据仓库是从属型数据集市,“自下向上”地建立数据仓库是独立型数据集市。
企图由数据集市直接升级为数据仓库的做法,实际上是避开了数据仓库建设中必须面对的核心问题:组织问题和设计问题。一个完全由数据集市简单叠加而成的“数据仓库”,不可能成为真正有用的决策分析平台。首先,数据集市设计中的不全面性导致了它不可能具有数据仓库所需要的长期稳定的体系结构。同时,这种简单叠加的“数据仓库”不仅会影响企业原有的业务系统,而且也会影响先期建立的数据集市,任何一方的轻微变动都可能给其他系统带来自底向上的一系列大的变动。
4、分析和挖掘引擎
OLAP服务器(Online Analytical Processing:在线数据分析程序):对分析需要的数据按照多维数据模型进行再次重组,以支持用户多角度、多层次的数据分析。其具体实现可以分为:ROLAP、MOLAP、HOLAP以及特殊SQL服务器。
元数据:是整个数据仓库的所有描述性信息(描述数据的数据),例如列名,或描述结构、功能等。
5、应用
查询报表:制作各类表格式数据报表、图形报表的工具,代表软件EXCEL
多维分析:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放,代表软件Tableau、FindBI。
多维分析方法:切块、切片、旋转、钻取、上卷。
数据挖掘:数据库中挖掘信息的过程,代表软件:SAS、SPSS
数据仓库使用对象:操作层(基层程序员)—>数据仓库层(企业高层或DSS分析员)—>部门|数据集市(部门级)—>个体层(主管经理层|)
四、设计数据仓库
1、主要步骤:
数据仓库的规划和需求分析(Powerdesigner)—>数据仓库的建模—>数据仓库的物理模型设计—>数据仓库的部署—>数据仓库的维护。
2、设计示意:
五、疑问解答
1、关系型数据库和非关系型数据库区别?
2、DB、ETL、DW、OLAP、DM、BI关系区别?
①、DB/Database/数据库——这里一般指的就是OLTP数据库,在线事物数据库,用来支持生产的,比如超市的买卖系统。DB保留的是数据信息的最新状态,只有一个状态!比如,每天早上起床洗脸照镜子,看到的就是当时的状态,至于之前的每天的状态,不会出现的你的眼前,这个眼前就是db。
②、DW/Data Warehouse/数据仓库——这里保存的是DB中的不同时间点的状态,比如,每天早上洗完照镜子时,都拍一张照片,天天这样,这些照片放入到一个相册中,之后就可以查看每一天的状态了,这个相册就是数据仓库,他保存的是数据在不同时间点的状态,对同一个数据信息,保留不同时间点的状态,就便于我们做统计分析了。
③、ETL/Extraction-Transformation-Loading——用于完成DB到DW的数据转存,它将DB中的某一个时间点的状态,“抽取”出来,根据DW的存储模型要求,“转换”一下数据格式,然后再“加载”到DW的一个过程,这里需要强调的是,DB的模型是ER模型,遵从范式化设计原则,而DW的数据模型是雪花型结构或者星型结构,用的是面向主题,面向问题的设计思路,所以DB和DW的模型结构不同,需要进行转换。
④、OLAP——在线分析系统,简单说就是报表系统,销售报表,统计报表,等等,这个大家都熟悉,当然,OLAP的统计要更复杂更丰富一些,比如切面,钻取等等。
⑤、DM/Data Mining/数据挖掘——这个挖掘,不是简单的统计了,他是根据概率论的或者其他的统计学原理,将DW中的大数据量进行分析,找出我们不能直观发现的规律,比如,如果我们每天早上照相,量身材的时候,还记录下头一天吃的东西,黄瓜,猪腿,烤鸭,以及心情,如果记录上10年,形成了3650天的相貌和饮食心情的数据,我们每个人都记录,有20万人记录了,那么,我们也许通过这些记录,可以分析出,身材相貌和饮食的客观规律;再说一个典型的实例,就是英国的超市,在积累了大量数据之后,对数据分析挖掘之后,得到了一个规律:将小孩的尿布和啤酒放在一起,销量会更好——业务专家在得到该结论之后,仔细分析,知道了原因,因为英国男人喜欢看足球的多,老婆把小孩介绍男人看管,小孩尿尿需要尿布,而男人看足球喜欢喝酒,所以两样商品有密切的关系,放在一起销售会更好!
⑥、BI/Business Intelligence/商业智能——领导,决策者,在获取了OLAP的统计信息,和DM得到的科学规律之后,对生产进行适当的调整,比如,命令超市人员将啤酒喝尿布放在一起销售,这就反作用于DB修改存货数据了——这就是整个BI的作用!
参考:https://www.cnblogs.com/ycdx2001/p/4538750.html
3、数据仓库为什么要分层?
①、清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
②、数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
③、减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
④、把复杂问题简单化:讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
⑤、屏蔽原始数据的异常。
⑥、屏蔽业务的影响,不必改一次业务就需要重新接入数据。
4、数据仓库如何分层?
数据运营层(ODS)、数据仓库层/数据集市(DW)、数据产品层(APP)
六、概念补充
DSS(Decision Support System):支持决策系统
OLTP(On-line Transaction Processing):操作型处理主要完成数据的收集、整理、存储、查询和增、删、改操作等,主要由一般工作人员和基层管理人员完成。
OLAP(On-Line Analytical Processing):分析型处理是对数据的再加工,往往要访问大量的历史数据,进行复杂的统计分析,从中获取信息,因此也称为信息型处理,主要由中高级管理人员完成。
星形模式(Star Schema)是最常用的数据仓库设计结构的实现模式,它由一个事实表和一组维表组成,每个维表都有一个维主键,所有这些维组合成事实表的主键,换言之,事实表主键的每个元素都是维表的外键。
雪花模式(Snowflake Schema)是对星形模式的扩展,每一个维表都可以向外连接多个详细类别表。
事实星座模型:需要多个事实表共享维度表,因而可以视为星形模型的集合,故亦被称为星系模型。
三范式:
第一范式:字段是最小的的单元不可再分;
第二范式:满足第一范式,表中的字段必须完全依赖于全部主键而非部分主键;
第三范式:满足第二范式,非主键外的所有字段必须互不依赖;
七、参考文献
《数据仓库工具箱(第3版)-维度建模权威指南》
《数据仓库与数据分析教程-王珊-高等教育出版社》
《数据仓库与数据挖掘实践-电子工业出版社》
八、备注信息
若有错误,还望指出,我会及时更新,谢谢!