bI基础知识

上一篇 / 下一篇  2012-03-20 15:13:59 / 个人分类:日志

http://blog.csdn.net/sgtzzc/article/details/4649770

【前言】

      昨天论坛的SQL Server大版新增了一个BI板块,大家讨论得热火朝天,由于此前因为客户环境的问题,一直在使用sql 2000,没怎么关注这一块的东西,最近刚好要做购物篮的分析,所以到网上搜集了一些资料。为了跟大家保持“步调一致”,也写点或转点东西出来,和大家一起学习和分享。

     这是很好的BI入门资料,对于还不知道BI是什么,为什么要搞BI,以及BI能做什么的朋友来说,应该还是比较有帮助的。很可惜的时候文章中的图片找不到了(文中涉及到参考图片的那部分请忽略),到网上找了一下也没找到,如果有收藏到这部分图片的朋友或看到有这部分图片的朋友,欢迎共享一下。

 

转贴内容】

(1)老板,你要这么多数据做什么?    
   
假如你是一个商品零售公司的老板。
   
你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数据,上亿条销售记录。
   
这时如果我问你:“反正三年前的数据留着也白白占地方,耗费存储成本,索性把它们全删掉吧,这样不用买硬盘就能容纳新数据,如何?”
   
你会从容的接受我这个建议吗?
   
那么老板,你要这么多数据做什么?
   
是的,和我一样,你也已经隐约认识到数据的价值,这就是我们割舍不下历史数据的原因,就像任何一个现代化企业,甚至就像任何一个传统的票号,如百年老店般虔诚地保存着古老的数据,因为我们有直觉,我们的直觉告诉我们:这些数据有用!
   
但这仅仅是一种直觉,到底该怎样把这些占据大量存储空间的数据的价值挖掘出来,让这些数据从成本的消耗者变成利润的促进者?
   
这中间似乎缺少了某些环节。
(2) Business Intelligence -
连接数据与决策者     
    BI(Business Intelligence)是一种运用了数据仓库、在线分析和数据挖掘等技术来处理和分析数据的崭新技术,目的是为企业决策者提供决策支持。
   
让我们振臂高呼三遍:决策支持,决策支持,决策支持!
    BI
是一个工厂:
        >> BI
的原材料是海量的数据;
        >> BI
的产品是由数据加工而来的信息和知识;
        >> BI
将这些产品推送给企业决策者;
        >>
企业决策者利用BI工厂的产品做出正确的决策,促进企业的发展;
   
这就是Business Intelligence,即商业智能——连接数据与决策者,变数据为价值。
    BI
应用的两大类别是信息类应用 和 知识类应用,其特征如下表所示:

信息类BI应用

    指由原始数据加工而来的数据查询报表图表多维分析数据可视化等应用,这些应用的共同特点是:将数据转换为决策者可接受的信息,展现给决策者。
   
例如将银行交易数据加工为银行财务报表。

    仅负责提供信息,而不会主动去分析数据。
    
例如,银行财务报表工具没有深入分析客户流失和银行利率之间关系的能力,而只能靠决策者结合信息,通过人的思考,得出知识。

知识类BI应用

    指通过数据挖掘技术和工具,将数据中隐含的关系发掘出来,利用计算机直接将数据加工为知识,展现给决策者。

    会主动去数据中探查数据关联关系,发掘那些决策者人脑无法迅速发掘的隐含知识,并将其以可理解的形式呈现在决策者面前。

 

(3) BI初级应用模式概览——数据查询(Querying)    
   
数据查询是最简单的BI应用,属于MIS系统遗产,虽然出身比较老土,但是目前仍然是决策者获取信息的最直接的方法。
   
如今,数据查询界面已经彻底摆脱了传统SQL命令行,大量的下拉菜单、输入框、列表框等元素甚至是鼠标拖拽界面将后台干苦力的SQL语句包装成一个妖艳无比的数据获取系统,而本质仍然没有离开数据查询的几大要素:
   >>
查什么
   >>
从哪儿查
   >>
过滤条件
   >>
展示方法
   
目前国外比较流行的数据查询应用已经完全释放了数据查询的灵活性,如右图所示的是Cognos ReportNet的数据查询界面Query Studio,允许用户通过纯浏览器界面,以鼠标拖拽操作定义数据查询要素,并以报表和图表等多种方式展现数据。

(4) BI初级应用模式概览——报表(Reporting)   
   
报表是国内最热衷的BI应用之一,这与报表在我国企事业单位中的历史地位是分不开的。我国的报表以其格式诡异、数据集中、规则古怪等特征著称于世,曾经让无数国外报表工具和BI工具捶胸顿足。
   
报表的两大要素是数据和格式,如果没有格式,则报表应用几乎等同于数据查询应用。可以说,报表就是将查询出来的数据按照指定的格式展现。
   
报表应用包含了报表展现和报表制作两大模块。报表展现就是让决策者看到报表,并允许决策者通过条件定义来选择报表数据,例如选择报表年度、部门、机构等等;报表制作面向报表的开发人员,其格式定义灵活性、数据映射灵活性、计算方法的丰富程度等均影响了BI报表应用的质量。
   
需要澄清一下的是,Microsoft Excel不算是一个BI报表工具,因为Excel没有连接数据源的能力,充其量是一个Spread Sheet。但是Excel强大的格式功能让报表制作人员竟折腰,乃至到后来,几乎所有BI厂商都提供了面向Microsoft Excel的插件,通过插件,Excel可以连接到BI的数据源上,摇身一变为BI报表工具,丑小鸭变天鹅。


5) BI
高级应用模式概览——在线分析(OnLine Analytical Processing,OLAP)     
    OLAP
,即联机分析处理,是BI带来的一种全新的数据观察方式,是BI的核心技术之一。
   
我们知道,数据在数据库中是以数据表来存储的,比如某商店的销售数据存储在如下所示的一张数据表中:

销售时间

销售地点

产品

销售数量

销售金额

2004-11-1

北京

肥皂

10

342.00

2004-11-6

广州

桔子

30

123.00

2004-12-3

北京

香蕉

20

12.00

2004-12-13

上海

桔子

50

189.00

2005-1-8

北京

肥皂

10

342.00

2005-1-23

上海

牙刷

30

150.00

2005-2-4

广州

牙刷

20

100.00

决策者希望知道的往往是分布、占比、趋势之类的宏观信息,比如下列问题:

        >>北京地区的销售数量虽时间的变化趋势?

        >>哪种产品在2005年销售比2004年销售增幅最大?

        >> 2004年各产品销售额的比例分布? ……

   面对这种需求,必须用SQL语句进行大量的SUM操作,每得出一个问题的结果,就需要SQL SUM。面对上面的7条记录,我们可以很容易的得出结果,但是当我们面对百万级甚至亿级的记录条数时,例如移动公司通话数据,每次SQL SUM都需要消耗大量的时间来计算,决策者经常是在第一天提出分析需求,等到第二天才能拿到计算结果,这种分析方式是“脱机分析”,效率很低。

   为了提高数据分析效率,OLAP技术彻底打破以记录为单位的数据浏览方式,而将数据分离为“维度(Dimension)”和“度量(Measure)”:

       >>维度是观察数据的角度,例如上面示例中的“销售时间”、“销售地点”、“产品”;

        >>度量是具体考察的数量值,例如上例中的“销售数量”和“销售金额”;

   这样一来,我们就可以将上面这张平版的数据列表转换为一个拥有三个维度的数据立方体( Cube )

而探查数据的过程,就是在这个立方体中确定一个点,然后观察这个点的度量值:

当然,数据立方体并不局限于三个维度,这里采用三个维度来说明问题,只是因为通过图形可以表现出来的极限就是三个维度。

   维度可以划分层次,例如时间上可以从日向上汇总为月和年,产品可以向上汇总为食品和日用品,地点可以向上汇总为华北和华南,用户可以沿着维度的层次任意向下钻取(Drill Down)和向上汇总(Roll Up)

通过这种方式,我们就可以摆脱SQL SUM对速度的制约,快速定位符合不同条件的细节数据,更可以迅速得到某一层次的汇总数据。OLAP技术为决策者提供了多角度、多层次、高效率的数据探查方式,决策者的思维不再被固定的下拉菜单、查询条件所束缚,而是由决策者的思维带领数据的获取,任意组合分析角度和分析目标,这种打破传统的互动性分析和高效率使OLAP成为BI系统的核心应用。

(*)第四喷:BI高级应用模式 —— 数据可视化与数据挖掘 

    
(6) BI
应用模式概览——数据可视化(Visualization)

数据可视化应用致力于将信息以尽可能多的形式展现出来,目的是使决策者通过图形这种直观的表现方式迅速获得信息中蕴藏的知识,如趋势、分布、密度等要素。   值得一提的是,以MapInfo公司为代表的GIS软件商,目前也正在努力结合BI应用。MapInfo率先提出了Location Intelligence概念,依托于地理信息系统,展现各地区的属性值,例如人口密度,工业产值,人均医院数量等等,这种可视化应用部分与BI数据可视化应用重合,并形成有力补充,有时可以在一个项目中互相搭配。
   
   
上图所示的是Cognos Visualizer产品,这家伙用几近哗众取宠的丰富形式展现数据和信息,包含了地图、饼图、瀑布图等近五十种展现图形,并提供了二维和三维两种展现方式。所有的图形元素都是可活动的,例如用户可以通过点击地图上的某一个省,钻取到这个省各个城市的信息,这种可交互性是BI与普通图片生成软件的显著差异。

 

 

 

(7) BI应用模式概览——数据挖掘(Data Mining)     
    
数据挖掘是最高级的BI应用,因为它能代替部分人脑功能。
   
数据挖掘隶属于知识发现(Knowledge Discovery)在结构化数据中的特例。
   
数据挖掘的目的是通过计算机对大量数据进行分析,找出数据之间潜藏的规律和知识,并以可理解的方式展现给用户。
    
数据挖掘的三大要素是:
         >>
技术和算法:目前常用的数据挖掘技术包括——
                
自动类别侦测(Auto Cluster Detection)
                
决策树(Decision Trees)
                
神经网络(Neural Networks)
         >>
数据:由于数据挖掘是一个在已知中挖掘未知的过程,
                
因此需要大量数据的积累作为数据源,数据积累
                
量越大,数据挖掘工具就会有更多的参考点。
         >>
预测模型:也就是将需要进行数据挖掘的业务逻辑由
                
计算机模拟出来,这也是数据挖掘的主要任务。
   
与信息类BI应用相比,以数据挖掘为代表的知识类BI应用目前还不成熟,但是从另一个角度来看,数据挖掘可发展的空间还很大,是今后BI发展的重点方向,SASSPSS等知识类BI应用厂商形象逐渐高大,悄悄占据了新的利润增长点。

上图中是著名的IBM Intelligent Miner在分析客户的消费行为。它能对大量的客户数据进行分析,然后自动将客户划分为若干群体(自动类别侦测),并将每个群体的消费特征显示出来,这样决策者就能一目了然的针对不同客户的消费习惯,制定促销计划或广告计划。
   
    
上述功能如果单靠信息类BI应用来实现,则需要决策者根据经验进行大量的OLAP分析、数据查询工作,而且还不一定能发现数据中隐藏的规律。例如上述客户分类,对于一个拥有400万用户的银行来说,如果没有数据挖掘工具,会把人活活累死的。

(8) BI底座——数据仓库技术(Data Warehouse)     
   在开始喷这个主题之前,让我们先看看数据仓库的官方定义:
   
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。以上是数据仓库的官方定义。
   
“操作型数据库”如银行里记账系统数据库,每一次业务操作(比如你存了5元钱),都会立刻记录到这个数据库中,长此以往,满肚子积累的都是零碎的数据,这种干脏活累活还不得闲的数据库就叫“操作型数据库”,面向的是业务操作。
   
“数据仓库”用于决策支持,面向分析型数据处理,不同于操作型数据库;另外,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
   
操作型数据库、数据仓库与数据库之间的关系,就像C:D:与硬盘之间的关系一样,数据库是硬盘,操作型数据库是C:,数据仓库是D:,操作型数据库与数据仓库都存储在数据库里,只不过表结构的设计模式和用途不同。  

那么为什么要在操作型数据库和BI之间加这么一层“数据仓库”呢?

 

   一是因为操作型数据库日夜奔忙,以快速响应业务为主要目标,根本没精力伺候BI这边的数据需求,而且BI这边的数据需求通常是汇总型的,一个select sum(xx) group by xx就能让操作型数据库耗费大量资源,业务处理跟不上趟,麻烦就大了,比如你存了5000元钱,发现十分钟后钱还没到账,作何感想?一定是该银行的领导在看饼图?

二是因为企业中一般存在有多个应用,对应着多个操作型数据库,比如人力资源库、财务库、销售单据库、库存货品库等等,BI为了提供全景的数据视图,就必须将这些分散的数据综合起来,例如为了实现一个融合销售和库存信息的OLAP分析,BI工具必须能够高效的取得两个数据库中的数据,这时最高效的方法就是将数据先整合到数据仓库中,而BI应用统一从数据仓库里取数。

将分散的操作型数据库中的数据整合到数据仓库中是一门大学问,催生了数据整合软件的市场。这种整合并不是简单的将表叠加在一起,而是必须提取出每个操作型数据库的维度,将共同的维度设定为共用维度,然后将包含具体度量值的数据库表按照主题统一成若干张大表(术语“事实表”,Fact Tables),按照维度-度量模型建立数据仓库表结构,然后进行数据抽取转换。后续的抽取一般是在操作性数据库负载比较小的时候(如凌晨),对新数据进行增量抽取,这样数据仓库中的数据就会形成积累。

大多数BI应用并不要求获取实时的数据,比如决策者,只需要在每周一看到上周的周报就可以了,95%BI应用都要 求实时性,允许数据有1小时至1个月不等的滞后,这是决策支持系统的应用特点,这个滞后区间就是数据抽取工具工作的时间。当然,BI应用中通常还将包含极少的对实时数据的要求,这时仅需针对这些特殊需求,将BI Querying软件直接连接在业务数据库上就可以了,但是必须限制负载,禁止做复杂查询。


TAG:

 

评分:0

我来说两句

Open Toolbar