在之前的文章视频中讲到了BI自助分析和建模的关系,我们介绍到了建模在BI分析中本身就是维度和指标的组合,这个过程没有什么很特殊的。只是大家一想到自助分析,就不应该通过预设模型来限制模型中维度和指标的选择,这个理解就是错误的。
不管什么样的模型都可以理解为一种预设,比如像一张大宽表,它的维度和指标在大宽表中就是固定的,只是维度列多一些,指标多一些,给了用户更多的一种组合维度和指标的可能,并不是说就没有模型的概念。
在理解了这个概念之后,我们再来讲下什么是商业智能BI的前端建模和后端建模,它们有什么区别和联系。
商业智能BI的前端建模
商业智能BI的前端建模可以理解为我们通过BI的前端可视化分析工具来完成数据分析的建模过程。
一种方式是加载一些文本文件比如常用的EXCEL表,可以将文本类型的字段自动转化成分析的维度Dimension,将数值类型的自动转化为被分析的数据就是度量Measure,用户就可以通过BI分析工具自由的拖拉拽完成维度和度量的组合,进行数据的可视化展示或者分析,这种维度和度量的这种组合就构成了一个最简单的分析模型。
第二种方式是通过BI前端分析工具连接到一个数据源数据库上,选择相关的表,通过表与表之间的字段进行左关联、右关联、内连接等等,实际上就是在商业智能BI的前端将数据表加载出来,完成了SQL的基本关联查询操作,由多张表形成了一个关联视图。
同样的道理,文本类的字段转化为维度,数值类的转化为指标度量,当然还可以做一些基础的、简单的数据清洗工作。如果是直连到业务系统数据源,通过表关联构建分析模型,这也是一种建模的方式,但这种场景一定是基于单系统的、非常简单的、小型的BI分析应用场景,否则没有办法适应日益增长的业务分析需求,包括新的业务系统的纳入。
如果是直连到已经建好的数据仓库,就是底层的数据已经经过非常规范的清洗、治理和整合,这种方式就没有问题。前端BI分析工具就可以利用在数据仓库上已有的维度和事实表来构建各种维度和事实表的关联,形成一个高度可扩展的分析模型。
所以,简单总结下基于BI可视化工具的前端建模主要有两种分类,三种形态。第一种分类就是我们经常讲到的个人和部门级的临时的文件类的数据分析,Ad-hoc Report,临时类的基本分析报表,不依赖于任何的业务系统,就是个人临时性的快速验证类的数据分析。
第二种分类就是连接到数据库,一种形态是直连到业务数据源,但往往不能够做太深入的分析,因为业务系统数据源的数据也一些业务分析场景下是要经过一系列复杂的清洗才能达到使用要求。并且直连数据源查询分析的分析模型不可复用,大类的聚合查询对业务系统本身也是一种很大的压力,涉及到跨系统查询就更加不适合企业的BI项目。第二种形态就是直连到数据仓库的数据库,这种方式更加合理。
所以,在企业级的商业智能BI项目架构设计中,除了这种个人的、临时性的验证性的临时分析可以考虑做前端建模外,如果是以连接数据库的形式做前端建模就一定是连接数据仓库数据库,而非直接连接业务系统数据源数据库。
商业智能BI的后端建模
那么在数据仓库中建模的方式就叫后端建模,就是在数据仓库中预先把维度表Dimension Table和事实表Fact Table 先处理好存储起来,这些维度表和事实表本身就可以通过维度字段的关联形成星型和雪花型模型。
在构成维度表和事实表之前,底层的ETL要做大量的数据抽取、转化和加载的工作,这也是整个BI项目建设的核心,开发工作量更大的一部分,差不多要占到项目开发80%左右的时间和精力。
比如从原始业务系统数据源、文件数据源等多业务系统把数据加载到ODS层,再统一清洗、处理形成各种维度表和事实表形成标准的DW层,有些为了聚合查询的方便也会汇总出一部分聚合表放入到数据集市Data Mart层。
像上面提到的数据仓库建模是使用Kimball的维度建模方式,基本上要做到公共指标下沉和基本的维度和指标逻辑关联关系。不管从哪些角度分析,前端引用这些维度和事实表指标的时候都不需要做太多数据处理,就直接可以拿出来分析,达到分析维度和指标的高度可复用性,这个就是商业智能BI的后端建模。
商业智能BI的后端建模做的好,前端BI可视化分析工具在连接到数据仓库数据源的时候,基本上直接访问这些维度和事实表就可以了,通过简单的拖拉拽操作形成基本的星型或者雪花型分析模型,文本字段变成维度,数值类型变成度量,这样就可以快速的选择相应的维度和度量(指标)进行组合,可视化图表根据组合的结果就形成了各种各样的分析结果。
商业智能BI项目架构
所以,一个企业级的、完整的更佳实践的BI项目架构应该是什么样的?就是利用BI数据仓库的建模,即后端建模将大部分的、标准的、高度可复用的分析模型预先设计好沉淀出来,形成标准的维度和事实表存储起来。
之后再通过BI前端可视化分析工具来连接到数据仓库数据库,访问这些可以构成各种分析模型的表,进行可视化分析。遇到特别的分析场景,底层数据仓库的后端模型不能够满足分析场景需要的时候,就可以借助商业智能BI可视化工具的前端建模能力来扩展一些分析模型,完成前端建模和可视化分析的工作。
但通常情况下,我们尽量要避免使用商业智能BI的前端建模,尽量使用商业智能BI后端建模的方式,前端直接基于已经建好的模型拖拉拽做分析就可以了。为什么要避免商业智能BI的前端建模?之后的更新我们会来讲一个新的概念,叫指标爆炸。
好的,今天的分享就到这里,喜欢我们内容的朋友,欢迎关注点赞收藏支持,谢谢大家。