BI 软件能对付多少数据分析任务?

其实没多少!

从早期喊的多维分析到近年来喊敏捷 BI,BI 厂商一直在强调自助能力,宣称可以由业务人员自己随心所欲地分析数据,而用户也常常有强烈的需求,双方一拍即合,很容易形成购买行为。

不过,就大多数缺乏 BI 应用经验的用户所期望的工作内容而言,自助分析的目标就可以说远远达不到!从经验上看,最好情况也就能解决 30% 左右的问题而已,而大多数 BI 产品连这个数也达不到,只能处理 10% 左右的需求。

数据分析的根本在于数据,或者说是在于计算,而不是界面。新一代敏捷 BI 产品在界面美观度和操作方便度上有了不小的进步,但数据运算能力还是没能超出多维分析的范围。
多维分析是指针对某个事先准备好的数据集(称为立方体 CUBE),以一定的条件过滤后(称为切片)按指定维度查看某些统计值,比如某年中某产品按地区和月份汇总的销售量和销售额,用 SQL 写出来都是这么一种样子:

复制代码
SELECT Di,...,SUM(Mi),COUNT(Mi),... FROM T GROUP BY Di,... WHERE Di=... AND Di IN (...) ...

BI 软件的作用在于让用户改变过滤条件和查看维度时特别方便,可以从当前已经看到的状态走到目标状态,就是所谓的旋转、钻取、切片等动作,这对于交互分析很有意义。但是,无论怎样的方便流畅,能做的运算也还是这么一句 GROUP BY+WHERE,并没有更多。

BI 产品有时还能支持一些简单的跨行组运算,比如计算比上期、排名、占比等,显然这些运算的结果对于商业分析也有着重要的意义。跨行组运算和常规汇总不同,常规汇总只有给定一组维度就可以统计了,而跨行组运算还要多一个范围层次,但市面上大多数 BI 软件并没有关注这个,会武断地把范围层约定为全集。这样如果想看看某地区销售额在省内的排名,就只能先把数据切片限定在省内,然后一个个省来看,否则就只能看到在全国范围内的排名了,这很不方便。考察 BI 软件时要特别注意这一点,是不是支持给跨行组运算设定范围层,厂商当然都会说能支持跨行组运算,但支持程度弱的时候就会导致有些分析任务做不了。

做到多维分析这一步,其实只能解决 10% 左右的自助需求,这是 BI 产品最常见的自助能力。

多维分析的主要问题在于有个建模过程,也就是要事先准备数据集,分析的数据也要限定在数据集中。但实际应用中会经常超出这个范围,可能会涉及到以前没想到的数据项,或者和另一个数据集做一个关联运算,这都会导致再建模。而建模需要求助于技术人员,这样业务人员的自助就无从谈起了。

为解决这个局限性,有些 BI 产品开始提供关联查询 能力。一般是在多维分析前面增加一步,能够基于多个数据集关联计算出新的数据集再来做多维分析,或者在多维分析过程中支持多个立方体间的某些关联运算。这相当于允许业务用户一定程度可以自己建模。

不过,实现关联查询并不容易,其根源是关系数据库对关联运算(JOIN)的定义过于简单造成的,导致数据集之间的关联关系看起来过于繁琐,超出许多业务人员的理解能力。这个困境在 BI 产品的界面协助下能有一些改善,好的 BI 产品能够让业务人员自动处理表间唯一的关联关系。但面向不唯一的情况(企业应用中很常见)仍然很困难,我们之后会再仔细讲这个话题。要从根本上解决这个问题,就要改变数据库层的数据组织模型。而几乎所有的 BI 产品都不会重新定义数据库的数据模型,其关联查询能力就会受限。

一个可用于检验 BI 产品关联能力的通俗例子:查询女经理的男员工。这个很简单的查询需求中涉及到同一数据集的多次关联,大多数 BI 产品都处理不了(除非事先建模)。

有了关联查询能力后,BI 产品能解决的自助需求占比能提高到 20%-30%,具体程度要看产品提供的关联能力的强弱。

剩下更多的需求,就都会涉及到有多步骤的过程计算 ,这完全超出绝大多数 BI 产品的设计目标了,但却是用户特别希望解决的问题,做到这一步,才能叫业务人员随心所欲地分析数据。

一个简单办法是使用 BI 产品导出基本数据,由业务人员自己用 Excel 等桌面工具去做,Excel 足够灵活方便,可以相对随心所欲地完成多步骤运算,从这个意义讲呢,Excel 才是最重要的 BI 工具。

不过,Excel 面对较复杂的数据计算以及要反复执行的运算也会无能为力,而且数据量大了也撑不住,在许多应用场景无法胜任。Excel 这些缺失,都可以用 esProc SPL 来配合补充,不过说来话长,之后再讲。

针对于用户最普遍的自助数据分析需求,BI 产品的能力实际上是相当弱的。经常的情况是:BI 厂商说的是多维分析,而用户想的是那些需要过程计算才能解决的问题,这个错位就会导致期望高而失望大的局面。用户要清楚自己的自助需求:是否做到多维分析就够了?有多少关联查询需求?业务人员是否会提出大量需要过程计算的问题?这样才能设定合理的期望值,知道 BI 产品对自己的作用在哪里,不被产品的花哨界面和流畅操作迷惑,避免事后的遗憾。

BI 界以前有个词叫 shelfware,就是用来描述这种中看不中用的产品。厂家人员开玩笑说卖的不是 software,而是买来就被扔进柜子不再动的 shelfware。在演示阶段让用户产生极大的期望以为真能让业务人员自己分析,实际用起来完全不是那回事,结果都被当作报表工具在用,而这些 BI 软件做报表的能力还很差。这是购买 BI 产品的一个大坑!

相关推荐
jiunian_cn19 分钟前
【Redis】数据库管理操作
数据库·redis·缓存
Sylvia-girl20 分钟前
IO流~~
java·开发语言
Re.不晚36 分钟前
JAVA进阶之路——无奖问答挑战3
java·开发语言
代码游侠37 分钟前
C语言核心概念复习——C语言基础阶段
linux·开发语言·c++·学习
_Johnny_43 分钟前
ETCD 配额/空间告警模拟方案
网络·数据库·etcd
㓗冽1 小时前
60题之内难题分析
开发语言·c++·算法
dingdingfish1 小时前
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
开发语言·学习·bash
rainbow68891 小时前
C++开源库dxflib解析DXF文件实战
开发语言·c++·开源
猫头虎1 小时前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
deepxuan1 小时前
Day7--python
开发语言·python