开发者社区> 行者武松> 正文

【数据蒋堂】第11期:不要对自助BI期望过高

简介:
+关注继续查看

640?wx_fmt=png&wxfrom=5&wx_lazy=1

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

“分析”这个词并没有一个业界公认的严格定义,所以不能说这些BI产品是否过份宣传了。不过,就大多数缺乏BI应用经验的用户所期望的工作内容而言,自助分析的目标就可以说远远达不到!从经验上看,最好情况也就能解决30%左右的问题而已,而大多数BI产品连这个数也达不到,只能处理10%左右的需求。

我们分为三个层面讨论这个问题。

多维分析


多维分析是指针对某个事先建好的数据集(称为立方体)做交互操作。这是大多数BI产品目前能够提供出来的分析能力,尽管新一代产品在界面美观度和操作方便度上有了不小的进步,但能完成的运算功能并没有本质变化。

多维分析的主要问题是有个建模过程,也就是事先准备数据集。如果要分析的数据都可以限定在某个数据集中,且动作只限于产品提供的那些(旋转、钻取、切片之类),那么没有问题。但这是个小概率事件,实际应用中会经常超出这个范围。增加一个以前没想到的数据项,和另一个数据集做一个关联运算,都会导致再建模。而建模需要求助于技术人员,这样业务人员的自助就无从谈起了。

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

关联查询

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

不过,实现关联查询并不容易,其根源是关系数据库对关联运算(JOIN)的定义过于简单造成的,导致数据集之间的关联关系看起来过于繁琐,超出许多业务人员的理解能力。这个困境在BI产品的界面协助下能有一些改善,好的BI产品能够让业务人员正确处理没有形成环的关联关系。但是,要从根本上解决问题,就要改变数据库层的数据组织模型。而几乎所有的BI产品都不会重新定义数据库的数据模型,其关联查询能力就会受限。这些较深入的技术问题我们将在后续文章中逐步谈及。

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

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

过程计算

剩下70%左右或更多的需求,都会涉及到多步骤有过程的计算。而过程计算完全超出BI产品的设计目标,甚至可以不被认为是数据分析,但却是用户特别希望解决的问题,也就是让业务人员能够随心所欲地(在其权限范围内)获取数据。

一个简单办法是使用BI产品导出基本数据,由业务人员自己用Excel等桌面工具去做。但是,Excel并不擅长处理多层次数据的关联运算(我们后续会讨论到),而且数据量大了也撑不住,在许多应用场景无法胜任。

在没有更好的交互计算技术出现之前,这些问题还是需要技术人员才能解决。在这个前提下,BI产品能做的事就不是让业务人员自己实现过程计算,而是要想法提高业务人员获取技术资源的效率,以及技术人员实现需求的开发效率。

具体来讲有两个方面:一是建立历史问题库,某些以前曾经做过的问题,可以直接由业务人员直接调出算法改变参数执行;即使是新需求,也可以找到类似问题以协助技术人员准确理解,技术人员和业务人员的理解不一致是造成事务延期的主要因素之一;二是提供高效且可管理的开发技术,让技术人员能快速编写和修改计算代码,并可将这些代码存入历史算法库中保管和再次执行。目前业界并没有多少适合的技术,SQL可管理性较好,但编写繁琐而难以处理有过程计算;存储过程需要再编译而不方便再次执行;Java代码也要再编译而基本上不可管理;其它脚本语言的集成性又较差也难以入库管理和再次执行。


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


原文发布时间为:2017-6-15
本文作者:蒋步星
本文来自云栖社区合作伙伴“数据蒋堂”,了解相关信息可以关注“数据蒋堂”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ApsaraDB for Redis之内存去哪儿了(一)数据过期与逐出策略
## 背景 Redis作为一个高性能的内存NoSQL数据库,其容量受到最大内存限制的限制。 用户在使用阿里云Redis时,除了对性能,稳定性有很高的要求外,对内存占用也比较敏感。在使用过程中,有些用户会觉得自己的线上实例内存占用比自己预想的要大。 事实上,实例中的内存除了保存原始的键值对所需的开销外,还有一些运行时产生的额外内存,包括: 1. 垃圾数据和过期Key所占空间 1
1388 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29187 0
redis过期数据删除策略
过期数据删除策略  redis的过期数据删除策略使用了惰性删除和定期删除两种策略: 惰性删除发生在redis处理读写请求的过程,如get/set等命令。
2028 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20706 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23582 0
MongoDB 自动删除集合中过期的数据——TTL索引
简介 ​ TTL (Time To Live, 有生命周期的) 索引是特殊单字段索引,MongoDB可以用来在一定时间后自动从集合中删除文档的特殊索引。 这对于某些类型的数据非常好,例如机器生成的事件数据,日志和会话信息,这些信息只需要在数据库中保留一段时间。 ​ 创建 TTL 索引,只需要在使用 db.collection.createIndex() 方法,对字段值为日期或者包含日期的数组设置 expireAfterSeconds 选项即可。 1、如果字段是一个数组,并有多个日期值时,MongoDB使用最低(即最早)日期值来计算失效阈值。 2、如果字段不是日期类型也不是一个包含日期的数组
122 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36455 0
Redis 中数据的过期策略和淘汰策略
本文分析Redis 中数据的过期策略和淘汰策略
127 0
+关注
行者武松
杀人者,打虎武松也。
17112
文章
2569
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载