BI入門經典 (轉)

fog911811發表於2012-08-17

(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 的核心技術之一。
    我們知道,資料在資料庫中是以資料表來儲存的,比如某商店的銷售資料儲存在如下所示的一張資料表中:

銷售時間   銷售地點 產品 銷售數量 銷售金額
2003-11-1 北京 桔子 10 342.00  
2003-12-1 廣州 香蕉 100 222.00  
2004-1-1 北京 肥皂 20 52.00  
2004-3-1 廣州 香蕉 35 77.00  
2004-3-7 北京 肥皂 20 8.00  
2004-6-10 廣州 桔子 10 16.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 發展的重點方向,SAS,SPSS 等知識類 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 軟體直接連線在業務資料庫上就可以了,但是必須限制負載,禁止做複雜查詢。

    目前的資料庫產品都對資料倉儲提供有專門優化,例如在安裝 MySQL 的高版本時,安裝成序會詢問你是想讓資料庫例項作為 Transaction-Oriented ,還是 Decision Support ,前者就是操作型資料庫,後者就是資料倉儲(決策支援麼,再振臂高呼一遍),針對這兩種形式,資料庫將提供針對性的優化。

(9) BI 花邊     
    BI 的相關知識大致就是這樣了,寫一些花邊作為結束語吧。
    BI 要害:BI 無法處理非結構化資料,只能處理數字資訊,但是在企業中,還存在有大量像文字、流媒體、圖片等非結構化的資料,這些資料同樣蘊藏有大量價值,但是面對這些資料,目前的 BI 工具無能為力。比較靠譜的是 IBM Intelligent Miner for Text,但是它在處理中文方面似乎十分薄弱。
    BI 廠商和產品:

首先讓我們認識一下國外大人物!資料倉儲方面,有 IBM DB2,Oracle,Sybase IQ,NCR Teradata 等等;BI 應用方面,有 Cognos,Business Objects,MicroStrategy,Hyperion,IBM 等等;資料探勘方面,有 IBM,SAS,SPSS 等等。巨無霸 Microsoft 也在 BI 領域插了一腿,推出了 SQL Server Analysis Server、Reporting Services 等 BI 相關產品搶佔山頭!

我們往往容量只把眼光放在國外的BI大佬們而忽略國內漸漸突起的BI新軍,如今國內比較出名的BI有奧威智動的Power-BI,尚南的BlueQuery 及潤乾報表等,特別值得一提的是奧威智動的Power-BI是一款標準化BI,在國內已經具有一定的市場佔有率。
    中國的 BI 市場發展:
時間段 國內 BI 應用情況
2002 年以前   大量 BI 軟體被看作是能從多個資料來源中抽取資料的報表工作,滿眼全是報表。
    一開始,公司的銷售在推銷產品時都向使用者介紹:“我們是 BI 領域最強的……”效果不好;後來那些銷售終於找到了竅門,上來就說:“我們什麼報表都能做!”然後訂單不斷。
2002-2003   OLAP 的價值終於被某些慧眼發現,一些競爭壓力大的企業為了提高競爭力,迫切需要從歷史資料中挖掘價值,迅速發現了 OLAP 的優勢,這時銷售終於不用再說“我們什麼報表都能做”了。但是國家機關、壟斷型企業,仍舊是報表,並且以為 BI 就是報表。
2004


    隨著越來越多成功 BI 專案的實施,OLAP 終於得以見天日,這時國內才形成資料查詢+報表展示+OLAP分析的合理 BI 應用結構。一些資料視覺化的需求也時常被使用者提出,在一些競爭激烈、資料量大的企業,已經出現了資料探勘應用。
  
2005


    資訊提供已經無法滿足很多企業的要求,特別是銀行、通訊、證券等競爭激烈、風險密集的行業,大量湧現對資料探勘的需求,BI 應用終於形成資訊+知識的整體。


BI 工具在中國遇到的難題:

* 複雜表樣:中國是世界上報表最複雜的國家。中國的表樣設計思想與西方不同,西方報表傾向於僅用一張報表說明一個問題,而中國的報表傾向於將盡可能多的問題集中在一張報表中,這種思路直接導致了中國報表的複雜格式和詭異風格。

* 大資料量:中國是世界上人口最多的國家。以中國移動公司為例,僅我國一個省的使用者數量,就相當於歐洲一箇中等國家的人口,是真正的海量資料!國外資料庫、資料倉儲和 BI 應用軟體,都在中國經受著大資料量承載能力的考驗。對於美國,可能一個客戶分析應用兩秒鐘就能出結果,但是在中國這樣的資料量下,可就不是兩秒鐘的問題了。

* 資料回寫:中國是世界上對 BI 系統要求最奇特的國家。本來 BI 系統是以忠實再現源資料為原則,但這個原則在中國遇到了難題,許多領導都提出了資料修改需求,“報表裡數字不好看,就要能改啊,而且有時候也需要調整啊,這樣上級領導看著就好嘛! ”一個領導如是說。目前能滿足此要求的 BI 產品,僅有 Microsoft 和 MicroStrategy 兩家。微軟對中國市場算是吃透了。

相關文章