商业智能BI技术作为目前大数据技术的重要应用方向之一,被广泛地应用到企业数据分析、数据可视化、数据挖掘、“智慧+”等各类场景。而数据仓库作为其重要的底层数据支撑,与数据中台、数据湖等更广泛的平台,共同为BI技术提供了坚实的数据底座。
一、BI报表和数据仓库的关系
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它将各种异构数据进行集中存储,为分析性报告和决策支持的目的而创建。进而提供指导企业改进业务流程、监控运营过程、追溯质量以及控制成本。
BI商业智能,是一套完整的系统性解决方案,从数据仓库,到ETL(数据清洗),OLAP分析,以及深度的数据挖掘,前端报表展现。在具体企业数据分析项目中,会将它们中的若干流程有机结合起来,实现一个完整的企业数据分析技术方案。
商业智能BI不仅仅包含前端可视化分析、报表展现的能力,更包含了底层数据仓库的建设过程。
所以,如果是把BI商业智能堪称一个方案,那数据仓库就是其中的一环。如果把BI商业智能理解为一个数据应用,那数据仓库就是底层的数据层,为数据分析的提供数据支撑。
数据库与数据仓库的区别
数据库 Database (Oracle, MySql, SqlServer,PostgreSQL等)主要用于事务处理,数据仓库 Datawarehouse (Amazon Redshift, Hive)主要用于数据分析。用途上的不同决定了这两种架构的特点不同。
数据库(Database)的特点是:相对复杂的表格结构,存储结构相对紧致,少冗余数据。读和写都有优化。相对简单的read/write/query,单次作用于相对的少量数据。
数据仓库(DatawareHouse)的特点是:相对简单的(Denormalized)表格结构,存储结构相对松散,多冗余数据。一般只是读优化。相对复杂的read/query,单次作用于相对大量的数据(历史数据)。
二、OLAP和OLTP、宽表理论
OLAP(On-Line Analytical Processing)联机分析处理,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一,主要应用在数据仓库,使用对象是决策者。OLAP系统强调的是数据分析,响应速度要求没那么高。
OLTP(On-Line Transaction Processing)联机事务处理,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。主要应用是传统关系型数据库。OLTP系统强调的是内存效率,实时性比较高。
宽表理论
宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。宽表的本支是用空间换时间,便于训练迭代、减少表关联数量,修改少量数据时不需要该多张表。
维度
维度,即观察数据的角度。比如员工数据,可以从性别角度来分析,也可以更加细化,从入职时间或者地区的维度来观察。维度是一组离散的值,比如说性别中的男和女,或者时间维度上的每一个独立的日期。因此在统计时可以将维度值相同的记录聚合在一起,然后应用聚合函数做累加/平均/最大和最小值等聚合计算。
度量
度量,即被聚合(观察)的统计值,也就是聚合运算的结果。比如说员工数据中不同性别员工的人数,又或者说在同一年入职的员工有多少。
以Wyn商业智能软件为例,其中数据集和数据模型,即分布对应了宽表模式和维度模式的数仓结构。
数据集是基于数据源创建的,支持关系型数据库、Elastic Search、MongoDB、Excel、JSON、API等各种数据源格式。数据集将数据进行抽取缓存,支持数据清洗、复杂计算以及添加复杂的过滤器,最终以宽表模型进行物理存储,交互速度快。但由于中间经过缓存过程,因此数据不是实时更新,需通过刷新计划进行数据同步,常用于实时性要求不高的历史数据分析。
数据模型基于维度模型设计,在数据查询上有更好的表现。Wyn具有强大的数据建模的能力,同时支持了抽取数据模型和直连数据模型,满足用户更多的数据分析场景,帮助用户更好的实现数据分析需求。可以满足基于已有数据仓库和实时性要求较高的数据分析。
三、星型模型和雪花模型
在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。
星型模型
当所有维表都直接连接到“事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余。
雪花模型
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。它的优点是: 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构有效地去除了数据冗余。
四、数据仓库分层体系
1、为什么要进行分层设计
数据仓库分层设计的主要目的包括:
空间换时间建立公共清洗层,能够极大地减少数据重复计算,提升复用性可拓展性,可以适应各种非预期的数据列添加和算法各层只做1、2个步骤,分层解耦,出了问题方便定位问题,从有问题的步进行调试节省排错时间,假如所有数据任务加起来要执行2个小时,如果只搞一层,那么每次新执行任务都需要2个小时,如果分层将任务拆分以后,可以分开执行任务,针对具体问题的修改就只需要更少的时间
统一指标口径,往往来自不同数据库的相同数据的叫法不一,需要将它们统一起来不分层的话,如果源业务系统的业务规则发生变化,将会影响整个数据清洗过程,修改工作量巨大(随着业务的拓展,不会大幅影响到数据模型的整体构架)改善数据质量,也可通过模型对外输出统一统计口径,降低出错概率2、分层设计的方法
ODS层(原始数据层)“面向主题的”数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就是在ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。(1)业务数据一般是采用数据迁移工具以固定频率同步到数仓中构建ODS层
(2)接入层一般不会对源数据做任何处理、清洗,便于之后回溯。
DWD层(明细层宽表)该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。(1)进行表关联、清洗加工(2)维度派生、度量指标派生
DWS层(轻量汇总层宽表)又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。
一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。
在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。
(1)轻量汇总,如天级别的汇总(2)聚合后的指标计算
ADS层(应用数据层)主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。DIM层(维表层)高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。
五、商业智能软件的应用
通过本文的介绍,我们系统性的学习了数据仓库的设计理论和实践知识。Wyn商业智能软件,作为嵌入式商业智能软件,基于数据参仓库的底座,可以实现包括:数据源接入、数据建模、数据可视化、报表统计等各种数据分析需求。并且,这些功能可以嵌入到B/S、C/S、APP、SaaS、PaaS等架构的软件产品中,快速增强其数据整合、自助式BI分析、数据可视化、报表设计等方面能力,已经广泛应用于ERP、MES、APS、OA、企业微信、钉钉等应用系统中,让用户在使用业务系统过程中,可以随时借助数据分析来辅助决策的制定。
智能数据建模
Wyn具备强大的双驱数据建模能力,同时支持抽取数据模型和直连数据模型,灵活满足了不同的数据分析场景,抽取数据模型适合大数据量、历史数据分析,分析速度和性能表现更佳。直连模型无数据延迟,适合实时数据分析和展示,主要应用于预警监控指标类场景。
自助分析
自助式BI(也叫做自助式分析),是一种新的数据分析方式。让没有统计分析、数据挖掘、数据库 SQL 知识的业务人员,也可以通过丰富的数据交互和探索功能,发现数据背后的原因和价值,从而辅助业务决策的制定。自助式BI分析功能可以来自于独立的 BI 软件,也可以由行业应用软件直接提供。
Wyn入式商业智能和报表软件,提供自助式BI分析功能,最终用户可以非常灵活的与数据交互,探索数据背后的原因并发掘更多价值,为决策制定提供有效的数据支撑。在仪表板设计和分析阶段,均提供图表联动、数据钻取、数据切片器、OLAP 等交互式分析功能,用户仅需通过极少的操作,便能找到最有价值的数据。
以上就是整个数据仓库设计的主要知识点了,希望对从事BI行业的朋友有所帮助和启发。