摘要:
商業智能,英文名字叫Business Intelligence,英文簡稱BI。
BI這詞看上去很神秘,給人很高科技的感覺,但真正了解的人不多,又加上某些廠商亂用BI來胡弄人,將好好的BI搞得不成人樣。本文將會為大家分享我的粗淺理解,當然如果你是老鳥,請無視此文!
什么是BI?
BI是一個意義很廣的詞,沒有標准的定義,簡單說說我的理解:BI是一個對大量數據進行處理、分析、挖掘的框架,其目的就是希望得到有用的決策依據。
下圖大致展示了這樣的一個框架:

該圖由左到右依次划分為ETL集成數據、數據倉庫建模、建立Cube(數據立方體)、數據呈現四部分。
ETL集成數據
ETL三個字母是Extract(數據抽取)、 Transform(轉換)、 Loading(裝載)三個單詞的首字母。我們暫時不必去深究這三個詞的意思,簡單地說就是我們分析數據之前,需要將各處的數據匯總到一個地方,這個過程需要對原來的數據進行處理。
數據倉庫建模
在這部分我們見到數據倉庫(Dataware,簡稱DW)、數據集市這些概念,很多書將這兩個概念說得很玄乎,實際上數據倉庫、數據集市只是兩個概念而已,在物理上往往就是一兩個數據庫甚至是數據表而已。數據倉庫,你可以認為就是原數據經過ETL后集中存儲的地方,數據倉庫的存儲結構需要精心設計。而數據集市只是將ETL后的數據分類存放而已,數據集市同樣也需要精心設計存儲結構。
建立Cube
我們先溫習一下數據庫存儲的特點,一般來說數據庫設計要盡量避免數據冗余,這樣可提高數據庫執行的效率也避免了數據不一致的問題。數據庫上有大量的增加、刪除、查找、修改等操作,要求快和具備實時性,數據庫就是針對這些特點來設計的。數據庫的CRUD操作(Create,Read,Update,Delete),被稱為聯機事務處理OLTP(on-line transaction processing)。
Cube是數據立方體,這是一種特殊的數據存儲結構,它設計主要目的是方便讀取,而不是方便寫入。Cube中存在大量的冗余數據,以便可以快速地從不同角度、粒度來獲取數據。這種面向數據分析的數據庫操作,被稱為聯機分析處理OLAP(On-Line Analytical Processing)。
Cube是在數據倉庫、數據集市的基礎上建立的,建立Cube時需要指定維度、粒度等內容,設置是雪花型、星型等,這些內容比較復雜,不太熟悉的朋友先暫且了解到有這些名詞就OK了,稍后再詳細介紹。
數據呈現
建立數據倉庫、數據集市、Cube,其目的有兩:
1.為查詢做好准備。
2.就是為數據挖掘做好准備。
市面上有很多做報表的工具,功能看上去很強大,能做柱狀圖、餅圖等等,並且還戴上BI的帽子。其實這些工具並不是完整的BI工具,它們只做到數據展示這層而已。數據倉庫、數據集市建好后,可用普通的SQL語句進行查詢,而對於Cube,可用Cube專用的查詢語句進行查詢。
數據挖掘英文叫Data mining,那什么是數據挖掘呢?有很多說法,說說我的理解:是指用某些方法和工具,對數據進行分析,發現隱藏規律的一種方法。
數據挖掘有很多方法,如關聯、聚類、分類、回歸、序列分析、偏差分析等,這些內容都比較深奧。關於數據挖掘的詳細內容,稍后我會再分享一篇文章。這里只需要知道,數據挖掘比一般的SQL查詢不知道要強大多少倍,能得到超乎你想像的結果。
BI工具
BI工具我了解的不多,SQL Server 和 Oracle 兩大數據庫工具能完整地支持上述的BI框架,而大量充斥的BI小工具主要針對ETL和報表這兩個層次的。如果大家遇到有人用BI的招牌來兜售軟件,大家應該能識別出該軟件的含金量。BI的核心技術在於數據存儲、數據發掘,這兩者都是高科技的玩意,我好像還沒有見到這方面的國產優秀軟件。
BI的應用
BI在國內的應用很多是門面工程,無論是去胡弄人的人還是被胡弄的人,其實都不知道什么是BI,一旦套上商業智能、決策分析這樣的帽子,所有人都變成穿上“皇帝新衣”的人了。
要真正理解BI,關鍵一層是理解數據挖掘,熟悉各種數據挖掘算法的原理、特點和用途,運用這些知識來思考如何挖掘現存的數據。
舉幾個例子:
例1:據說若干年前麥當勞是沒有套餐的,后來麥當勞對產品的銷售數據進行分析,發現購買了漢堡包和薯條的客戶,有70%以上的幾率會購買可樂,所以麥當勞就將這三樣東西捆綁來套餐來賣,結果銷量大增。
例2:我經常在當當網購書,該網站很會推銷,我看某本書時,它還會列出我可能感興趣的書,很多時候我又忍不住去點了那些書看看,結果到了那本書的介紹頁面,它又列出我其它可能感興趣的書。這個“推薦”算法還是有一定技術含量的,這功能背后很可能應用了數據挖掘技術。
BI是很高技術含量的活,要在各行各業中應用,需要我們切實掌握BI的知識特別是數據挖掘的知識,為客戶提供優秀的解決方案。