商业智能(BI)大家可能早已耳熟能详。从早期的报表自动化,到现在的复杂灵活分析,多平台支持,优秀的人机互动,多数据抽取,大数据整合,甚至和当下最火的人工智能都有结合点。可能一提到BI,大家都会自然而然地把这个话题丢给IT。但是由IT主导的BI项目最终是否能够落地?

为什么以技术为主导的IT部门做不好BI项目?

首先我认为BI是最直接,最重要地服务于商业决策者的,尤其是管理层。BI应用是否符合用户习惯,数据是否准确及时,是BI能否活下来的关键之关键。试想一个难以操作,挤满了图表,而且错误百出的BI应用,哪个经理会有兴趣去使用它?一旦失去存在的价值(credibility),被抛弃就成了自然而然的事情。

其次国内的IT人员普遍热衷于技术而忽略业务,对于很多开发人员来说,看InfoQ的兴趣要远大于CEO年终总结里的数字。由于业务知识和经验的缺失,很多时候IT闭门造车搞出来的BI应用根本不是业务人员需要的。慢慢地双方的激情消退,抵触情绪滋长,失败是早晚的事。

另外很多IT部门现在还停留在维护传统大型项目的框架里。当今的商业瞬息万变,与之配对的决策系统也应该具备灵活变化的能力。我相信很多商业决策者经历过类似的痛苦,例如从提出某个报表的修改意见到正式上线往往要等很长时间。但这不能完全怪IT,因为他们需要审批,获取权限,收集数据,测试,写文档 ... 。 所以一个小的修改可能要在6个月后release里才能实现。转型需要时间,但作为重要的决策者,您会等吗?

站在商业和IT之间,BI主要包含了什么?

国外很多大牛都定义过BI的框架。在此,我只是根据前人的经验和一些国内项目的经历总结出自己的内容。从下往上,我的BI各元素框架(BI Component Framework)主要分为3个部分:基础部分(Foundation),实现部分(Enablement),和辅助部分:

BI框架之基础部分(Foundation)

从业务层面来讲整个框架的根基应该是商业或者管理层的“觉醒”和授权。很多公司现在还依赖于excel报表。业务部门习惯于从excel中生成图表,粘贴到PPT里,然后把周报,月报,或者年报呈现给管理层。这样做会面临几个主要的问题:首先是数据的准确性。Excel报表肯定难以避免手工错误,而且在充满大量的 vLookup 或者公式的excel里找出错误是十分痛苦和低效的。其次是资源压力。越复杂的报告所需要的数据和人力越多。期限前集体赶报告的经历很多人应该都有吧。再次是时效性。商业决策讲究的是快速灵活。有些报告,例如公司年报确实不要求实时,但是很多底层的业务决策是不能等到周末或者月末才能开始制定的。最后是安全性。数据和分析结果全都在excel或PPT里。IT部门可以限制email,封锁网盘,但是直接考取那?面对这些问题,管理层必须思考是否需要一个完备的BI系统。

BI应用的灵魂来自于数据。数据就好似血液一样支撑着整个BI系统。但很多时候公司的数据是最为敏感的,例如供应商数据或财务数据。此外一些部门会把数据当成“私有财产”而拒绝或者有限度地与其他部门分享。单纯的BI实施团队(不管是IT主导还是业务主导),在没有高层甚至顶层授权的情况下很难持续地推动BI项目。因此管理层的“觉醒”和授权是我认为完成一个BI项目最优先,最重要的基础。

接下来是了解公司业务。前面已经说过了,IT部门通常精于前沿的技术而忽略业务,但是BI作为业务部门最直接的决策工具,失去了业务的支撑就好比给一个厌食症患者做了一桌子满汉全席。业务的构成有很多,例如公司有哪些KPI,各个部门的核心业务是什么,报告流程是什么,瓶颈在哪里,业务流程都需要哪些职能,是否需要内外合作等等。对于业务的理解,IT技术人员容易习惯性地用用例图(use case)或者系统架构图(system architecture)来表达。但是问一下哪一个经理或者业务员能一下子看懂那些圆圆圈圈代表的意思?在这里我的经验是用最传统的流程图和excel列表,因为大部分非IT人员基本不需要工程培训就可以轻松的理解你要表达的意思。

了解公司的系统和数据是重点。现在只有极罕见的公司还仅使用office或者手工作业,基本上大家都多多少少有些系统,一些大的公司甚至会上马全套的ERP,sales force,CRM等。对BI团队来说,系统本身的迭代,之间的接口,承载能力,权限设置,技术特点等都是需要了解的。数据分析则需要更多的精力。从范围来说除了分析系统内已有的数据,BI团队还要了解手工生成的数据,例如excel报表。从属性来说要分析数据的历史情况,数据的完整性,数据质量,数据层级(hierarchy),数据从属,维度变化(包含缓慢变化维的情况)等等。根据目前的经验,我遇到的数据分析最大的痛点:一是数据质量,尤其是历史数据。很多业务部门,尤其是缺乏控制的部门,其数据都是五花八门的。在清洗的时候会遇到各种问题。二是数据定义。很多公司没有主数据系统,或者根本不遵循主数据。同样一个主体,这个部门或系统定义这个code,另一个部门或系统使用别的code。在数据需要联通的时候我们需要耗费大量的时间去协调和校对。

分析完公司的业务,系统和数据之后真正的难点来了:整合。之前的分析都可以是独立的,但是在这里我们必须在熟知公司业务和数据的情况下把所有信息整合在一起。例如我们要知道在每一个流程里数据进口在哪里,出口在哪里,谁生成数据,谁更新数据,谁使用数据,怎么使用的,同样的数据是否被重复定义或多次使用,主数据是什么,数据属性又是什么等。我认为这个时候BI团队还是要更多的和业务部门坐在一起,交流的方式还是以流程图为主,只不过更加复杂,例如加入数据流和不同的人物信息。描述数据情况的时候则不拘于形式,但要把现状和问题说明白,千万不可以隐藏,否则将来的BI系统一定是垃圾进,垃圾出(rubbish in,rubbish out)。

在以上元素都介绍完之后,我们终于可以和IT坐下来谈谈感情,顺便聊一下数据存储,建模以及BI工具的实施了。

数据不会像水一样从源头直接流进BI系统。通常我们需要通过一个叫做ETL(技术术语,全拼是Extraction,Transformation,Loading)的流程来把数据从源头抓取到BI的数据仓库(data warehouse)。除了业务部门的终端系统和数据之外还有各种介于“中间层”的辅助数据,例如主数据,也要通过ETL流程把它们保存到BI仓库里。不同的IT部门会使用不同的技术来实现数据仓库,例如MySQL,微软的SQL,或者云端的数据库技术等等。

BI建模和普通的数据库建模有很大区别。一般系统数据库建模更多的是考虑数据存储,而BI本身只消费数据,其模型主要是为了服务将来的报表和分析。因此负责BI建模的架构师除了能够驾驭两种数据库的思维之外,还要有很强的技术能力和业务理解力。好的模型除了能针对不同的业务需求做出快速反应之外,还要有足够的拓展性以防备未来的业务变更或者新需求。因此好的数据建模师特别值钱。

有了BI所依赖的数据仓库和模型之后,我们可以开始用BI工具来开发对业务用户有意义的信息和应用。别忘了到目前为止大多数业务部门和管理层是不知道或者看不懂BI团队在干什么的,直到我们在屏幕上把表格或者图形做出来。BI工具有很多种,例如传统的SAP,IBM,Oracle等提供的重型BI工具,也包括时下流行的新型工具,例如QlikView,Tableau,PowerBI还有帆软公司的FineBI等等。当然一些大公司也可以使用自己开发的BI工具。

当数据、模型和工具都敲定之后,之后就可以开始真正的BI实施了。

一文读懂商业智能(BI):企业数据分析的中枢的更多相关文章

  1. 关于BI商业智能的“8大问”|一文读懂大数据BI

    这里不再阐述商业智能的概念了,关于BI,就从过往的了解,搜索以及知乎的一些问答,大家困惑的点主要集中于大数据与BI的关系,BI的一些技术问题,以及BI行业和个人职业前景的发展.这里归纳成8个问题点,每 ...

  2. 大数据篇:一文读懂@数据仓库(PPT文字版)

    大数据篇:一文读懂@数据仓库 1 网络词汇总结 1.1 数据中台 数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念. 数据中台是一套可持续"让企业的数据用起 ...

  3. 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现

    一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...

  4. 【FIORI系列】SAP 一文读懂SAP Fiori是什么

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FIORI系列]SAP 一文读懂SAP Fio ...

  5. 一文读懂clickhouse集群监控

    更多精彩内容,请关注微信公众号:后端技术小屋 一文读懂clickhouse集群监控 常言道,兵马未至,粮草先行,在clickhouse上生产环境之前,我们就得制定好相关的监控方案,包括metric采集 ...

  6. 一文读懂Java动态代理

    作者 :潘潘 日期 :2020-11-22 事实上,对于很多Java编程人员来说,可能只需要达到从入门到上手的编程水准,就能很好的完成大部分研发工作.除非自己强主动获取,或者工作倒逼你学习,否则我们好 ...

  7. 一文读懂HTTP/2及HTTP/3特性

    摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何 ...

  8. 一文读懂高性能网络编程中的I/O模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  9. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HT ...

随机推荐

  1. 13-01 java StringBuffer类,StringBuilder类

    StringBuffer类的构造方法 package cn.itcast_01; /* * 线程安全(多线程讲解) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 ...

  2. 学习推荐-Postgresql学习手册

    Postgresql之旅: http://www.cnblogs.com/stephen-liu74/archive/2012/06/08/2315679.html postgresql逻辑结构+权限 ...

  3. Elasticsearch使用filter进行匹配关系and,or,not,range查询

    RESTful接口URL的格式: http://localhost:9200/<index>/<type>/[<id>] 其中index.type是必须提供的. i ...

  4. 网络Socket编程TCP协议例子

    1.单线程TCP服务端 public class TcpChatServer { private Integer port=8000; private ServerSocket serverSocke ...

  5. Jmeter测试Mysql数据库-入门篇

    一.jmter配置数据库 1.在配置jmter之前需要先安装数据库连接池驱动,进入到官方下载页面https://dev.mysql.com/downloads/connector/j/,下载对应的驱动 ...

  6. JavaScript -- 数组Array

    -----021-ActiveXObject.html----- <!DOCTYPE html> <html> <head> <meta http-equiv ...

  7. Spring mvc 4系列教程(三)—— Spring4.X的新特性

    1.Spring4.0的新特性 从2004年Spring的1.0发布后,后面又发布了很多重要的版本:Spring2.0提供了XML命令空间和AspectJ的支持:Spring2.5提出了注解驱动(an ...

  8. 轻量级web富文本框——wangEditor使用手册(6)——配置“上传图片”功能

    最新版wangEditor: 配置说明:http://www.wangeditor.com/doc.html demo演示:http://www.wangeditor.com/wangEditor/d ...

  9. 前端组件化Polymer入门教程(1)——初识&&安装

    前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...

  10. [Python学习笔记-002] lambda, map, filter and reduce

    1. lambda lambda, 即匿名函数,可以理解为跟C语言的宏类似.例如: >>> max = lambda x, y: x if x > y else y >& ...