我们在一些客户那里经常听到的一种关于商业智能BI的说法就是,BI建模很重、数据仓库建模很重,我们希望业务人员不需要专业的建模自己可以通过拖拉拽的方式完成BI数据分析工作,想怎么分析就能怎么分析,完全自由。我们就问,这个说法是谁跟你们讲的,于是客户就说了是谁谁谁讲商业智能BI产品的时候这么去说的。
现在的情况好像就是只要提到BI建模、数据仓库就是不灵活、不敏捷;就是提到BI自助分析,跟建模好像就是天然对立的。这种讲法肯定是错误的,非常的不专业,并且让客户对商业智能BI产品的期望过高,最终不可避免的要踩坑。
首先,我们需要理解下什么是建模。然后再来看下建模和自助分析的关系,他们之间不是一种对立的关系,需要理解下商业智能BI的底层逻辑。
建模是什么
简单来说,建模指的就是建立模型,是为了理解事物而对事物做出的一种抽象。建立系统模型的过程,又称模型化。建模是BI数据分析的重要手段和前提,凡是用模型描述系统的因果关系或相互关系的过程都属于建模。
不管是什么样的商业智能BI工具产品,在做自助分析、可视化页面设计的时候大家一定能看到几个核心的元素:维度Dimension和度量Measure。维度就是看数据的角度,被看的数据就是度量Measure。
比如从产品角度分析销售收入占比,从时间角度看销售收入的趋势,在这个描述中,产品和时间就是分析的维度,销售收入就是被看的、被分析的数据,就是度量Measure,我们有的时候也叫KPI或者指标。
在商业智能BI分析中,只要通过维度或者维度的组合来分析指标的过程,背后本身就构建了一个分析模型,这就是一种把复杂业务抽象到一个分析模型的过程。
所以,谈到商业智能BI必然就会用到建模,建模没有像大家想象的那么神秘。
自助分析是什么
拖拉拽自助分析的本质就是对分析模型的运用。在BI自助分析过程中,会首先选择分析的维度,再选择相应的度量或者指标,通过拖拉拽的方式就实现了可视化,数据就出来了。
它的逻辑就是根据选择的维度和指标,自动的构成了一种分析模型,这个分析模型的背后就会产生一条聚合查询性质的SQL语句发送到底层数据库引擎去做数据查询,把数据聚合算出来,把结果呈现到可视化页面。
建模和自助分析
通过前端可视化BI分析工具选择几张数据表进行数据关联,形成了一个分析模型,在这个分析模型中的维度和度量自动的罗列到分析面板供自助分析人员来使用,这个叫做商业智能BI的前端建模。
通过数据仓库提前把一些基础的分析模型建好,前端BI工具来直接引用成熟的维度和分析指标,这个是把分析模型后置到底层数据架构上来解决,这个叫做后端建模。本质上都是一样的,都是构建分析模型的过程。
这两者的区别只是一个前置到业务人员自己处理模型、一个后置到数据仓库由BI开发人员来处理。后置的主要目的除了公共指标下沉,还解决了指标爆炸的问题。关于前后端建模的差异后面会单独给大家用文章和视频的形式讲一下。
所以,建模在BI分析中本身就是维度和指标的组合,这个过程没有什么很特殊的。只是大家一想到自助分析,就不应该通过预设模型来限制模型中维度和指标的选择,这个理解就是错误的。
不管什么样的模型都可以理解为一种预设,比如像一张大宽表,它的维度和指标在大宽表中就是固定的,只是维度列多一些,指标多一些,给了用户更多的一种组合维度和指标的可能,并不是说就没有模型的概念。
很多BI厂商不是不知道这个道理,那为什么还要这么去讲呢?因为要给用户一种感觉,就是我们的BI产品很灵活,想怎么分析就怎么分析,可以满足任意的分析场景,所以要证明我们自己的产品比别人的更强大。
但是只要大家认真想一想,BI真的能做到想怎么分析就怎么分析,真正的随心所欲的自由分析吗?自由并不是随心所欲,无边际的。所有的自由都是有限度的,一旦你所追求的自由,超出了限度,自由就势必要被约束起来,只有有限度的自由才是真的自由。