前言
隨著對各種業(yè)務(wù)支撐系統(tǒng)以及信息系統(tǒng)應(yīng)用的不斷深入, 企業(yè)累積了大量的數(shù)據(jù)。如何從這些數(shù)據(jù)中獲取對企業(yè)競爭和發(fā)展有著關(guān)鍵作用的各種信息和知識變得尤為重要, 因此商務(wù)智能(Business Intelligence)應(yīng)運(yùn)而生。商務(wù)智能系統(tǒng)目前已經(jīng)得到很多企業(yè)的重視并被逐步應(yīng)用。商務(wù)智能分析的基礎(chǔ)是企業(yè)長期運(yùn)營所積累的大量數(shù)據(jù), 這些數(shù)據(jù)來自不同的生產(chǎn)系統(tǒng)或者業(yè)務(wù)支撐系統(tǒng), 一般都有異構(gòu)、數(shù)據(jù)量大、數(shù)據(jù)質(zhì)量較差等特點(diǎn), 因此我們又不得不面臨一個(gè)嚴(yán)峻的問題, 那就是如何提升利用這些數(shù)據(jù)進(jìn)行分析決策的商務(wù)智能系統(tǒng)的性能。
1 商務(wù)智能概述
商務(wù)智能是對商業(yè)數(shù)據(jù)的采集、管理、分析得出所需信息并最終用信息指導(dǎo)決策的過程。其目的是使企業(yè)的決策者能更方便地通過商務(wù)智能系統(tǒng)從大量的數(shù)據(jù)中獲取信息和知識, 以便作出更恰當(dāng)?shù)臎Q策。商務(wù)智能又被稱為第三代商業(yè)信息系統(tǒng), 因?yàn)橐郧暗纳a(chǎn)系統(tǒng)、業(yè)務(wù)支撐系統(tǒng)的核心是聯(lián)機(jī)事務(wù)處理(OLTP), 而商務(wù)智能的核心則在于聯(lián)機(jī)分析處理(OLAP) 。商務(wù)智能系統(tǒng)一般有數(shù)據(jù)倉庫( 或數(shù)據(jù)集市) 、ETL 過程、OLAP 分析模型、數(shù)據(jù)挖掘模型以及前端分析展現(xiàn)工具等幾個(gè)核心模塊。從目前國內(nèi)的應(yīng)用來看, 其中對商務(wù)智能系統(tǒng)性能影響較大的主要是數(shù)據(jù)倉庫( 或數(shù)據(jù)集市) 、ETL 過程、OLAP分析模型。
1.1 數(shù)據(jù)倉庫簡述
數(shù)據(jù)倉庫是建設(shè)商務(wù)智能系統(tǒng)的基礎(chǔ), 通過數(shù)據(jù)倉庫, 商務(wù)智能可以截取或載入大量原始信息, 歸并各種不同來源的、異構(gòu)的數(shù)據(jù)源的數(shù)據(jù), 用于支持企業(yè)管理和商業(yè)決策。數(shù)據(jù)倉庫具有以下特性:
(1) 數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的和隨時(shí)間不斷變化的數(shù)據(jù)集合。
(2)數(shù)據(jù)倉庫又是以關(guān)系數(shù)據(jù)庫、并行處理和分布式技術(shù)為基礎(chǔ)的。
(3)數(shù)據(jù)倉庫具有豐富的數(shù)據(jù)采集、數(shù)據(jù)管理、數(shù)據(jù)分析和信息描述能力。依據(jù)所管理數(shù)據(jù)的類型及所解決問題的范圍, 數(shù)據(jù)倉庫可分為企業(yè)數(shù)據(jù)倉庫、操作型數(shù)據(jù)存儲、數(shù)據(jù)集市等三種類型。企業(yè)數(shù)據(jù)倉庫包含當(dāng)前、歷史及綜合的數(shù)據(jù), 用于企業(yè)級的決策分析; 而數(shù)據(jù)集市是數(shù)據(jù)倉庫的一種具體化, 通常面對的是企業(yè)中一個(gè)部門或者某一專門的主題;操作型數(shù)據(jù)存儲指數(shù)據(jù) ETL 過程中的臨時(shí)過渡區(qū), 其僅包含當(dāng)前、細(xì)節(jié)和輕度綜合的數(shù)據(jù)。
1.2 ETL 過程簡述
ETL 是數(shù)據(jù)的提取、轉(zhuǎn)換和加載(Extract, Transform and loading) 的過程, 旨在從多個(gè)數(shù)據(jù)源( 可以包括生產(chǎn)系統(tǒng)和業(yè)務(wù)支撐系統(tǒng)的關(guān)系數(shù)據(jù)庫、文本、HTML 數(shù)據(jù)、XML數(shù)據(jù)等) 及時(shí)提取業(yè)務(wù)數(shù)據(jù)并進(jìn)行清理轉(zhuǎn)換, 然后集成這些數(shù)據(jù), 并將它們載入數(shù)據(jù)倉庫數(shù)據(jù)庫中, 為數(shù)據(jù)分析做好準(zhǔn)備。ETL 過程中的主要處理包括抽取、驗(yàn)證、清洗、轉(zhuǎn)換、聚集、加載。
(1) 抽取:數(shù)據(jù)提取是捕獲源數(shù)據(jù)的過程, 主要有完全刷新和增量更新兩種捕獲數(shù)據(jù)的方法;
(2) 驗(yàn)證:域檢查和外鍵檢查等;
(3) 清洗:數(shù)據(jù)清理是清理有效數(shù)據(jù),使之更精確更有意義的過程;
(4) 轉(zhuǎn)換:主要包括從數(shù)據(jù)源的數(shù)據(jù)合并、域轉(zhuǎn)換和同步、數(shù)據(jù)類型和格式的轉(zhuǎn)換、用于不同目標(biāo)表的數(shù)據(jù)分離;
(5) 聚集:數(shù)據(jù)聚集是收集并以總結(jié)行式表達(dá)信息的過程;
(6) 加載:數(shù)據(jù)移至中心數(shù)據(jù)倉庫中的目標(biāo)表通常是 ETL 過程的最后步驟。
1.3 OLAP 模型簡述
OLAP 模型是進(jìn)行數(shù)據(jù)分析以及建立數(shù)據(jù)挖掘模型的基礎(chǔ)。OLAP 的基本思想是, 根據(jù)數(shù)據(jù)倉庫中的主題確定一組我們關(guān)心的業(yè)務(wù)指標(biāo), 這些指標(biāo)在 OLAP 模型中叫度量值; 確定與這些指標(biāo)相關(guān)聯(lián)的在數(shù)據(jù)分析時(shí)會被關(guān)心分析角度, OLAP 模型中叫做維度。在此基礎(chǔ)上在維度中的各個(gè)層次上對指標(biāo)值進(jìn)行預(yù)先的聚合等預(yù)處理以便提高查詢時(shí)的響應(yīng)速度。OLAP模型的核心是度量值和維, 通過對多維數(shù)據(jù)的鉆取、切片及旋轉(zhuǎn)等分析動作, 來完成對不同度量值在不同層次上的查詢分析。
2 影響商務(wù)智能系統(tǒng)性能的關(guān)鍵因素
根據(jù)項(xiàng)目實(shí)施經(jīng)驗(yàn), 數(shù)據(jù)倉庫的設(shè)計(jì)會直接影響 ETL 過程的性能和 OLAP 模型性能, 因此設(shè)計(jì)具有良好結(jié)構(gòu)的數(shù)據(jù)倉庫則成為商務(wù)智能系統(tǒng)性能的基礎(chǔ)。商務(wù)智能系統(tǒng)上線運(yùn)行過程中, ETL 過程所耗費(fèi)的時(shí)間一般在整個(gè)系統(tǒng)中會占用相當(dāng)多的時(shí)間, 因此提升 ETL 性能是整個(gè)系統(tǒng)性能提升的關(guān)鍵之一, OLAP 模型則是后面的數(shù)據(jù)分析和數(shù)據(jù)挖掘的基礎(chǔ), 因此OLAP 模型對查詢分析的響應(yīng)速度也顯得尤為重要。如何建立合理的 OLAP 模型,或者說如何優(yōu)化 OLAP 模型的性能則成為整個(gè)商務(wù)智能系統(tǒng)性能提升的又一關(guān)鍵。
2.1 數(shù)據(jù)倉庫設(shè)計(jì)中的關(guān)鍵因素
(1) 索引的使用。從嚴(yán)格意義上說, 數(shù)據(jù)倉庫仍然是一種關(guān)系數(shù)據(jù)庫, 因此與在任何關(guān)系數(shù)據(jù)庫中一樣, 索引對數(shù)據(jù)倉庫的性能具有重要作用。
(2) 設(shè)計(jì)怎樣的數(shù)據(jù)表才能裝載數(shù)據(jù)量龐大的數(shù)據(jù)和承載大量數(shù)據(jù)的插入、刪除、修改、查詢對系統(tǒng)帶來的壓力。這是因?yàn)樯虅?wù)智能系統(tǒng)中的數(shù)據(jù)來源一般來說數(shù)據(jù)量會比較大, 且會定期的產(chǎn)生大量的數(shù)據(jù), 需要對表進(jìn)行大量的插入、修改操作, 同時(shí), 商務(wù)智能系統(tǒng)中, 對數(shù)據(jù)表的查詢也是非常頻繁的, 特別是作為事實(shí)表的數(shù)據(jù)。
(3) 各種鍵的數(shù)據(jù)類型的選擇。維度表和事實(shí)表以及各種中間臨時(shí)表的鍵的數(shù)據(jù)類型直接影響 ETL 和 OLAP 的性能。
2.2 ETL 過程設(shè)計(jì)中的關(guān)鍵因素
(1) 由于 目 前 大部分 ETL 工具采用程序轉(zhuǎn)換和 SQL 視圖轉(zhuǎn)換相結(jié)合的方式,選擇合理的轉(zhuǎn)換方式可對性能有較大的提升。
(2)ETL 過程中各個(gè)活動的執(zhí)行順序、并行性等也對性能提升有關(guān)鍵性的作用。
2.3 OLAP 模型設(shè)計(jì)中的關(guān)鍵因素
(1) 維度的結(jié)構(gòu)模型設(shè)計(jì)會直接影響整個(gè) OLAP 模型的預(yù)處理以及對查詢的響應(yīng)速度。
(2)CUBE 分區(qū)的設(shè)計(jì), 當(dāng)數(shù)據(jù)量過大或者使用多臺服務(wù)作 OLAP Server 要實(shí)現(xiàn)各服務(wù)器的負(fù)載均衡時(shí), 必須考慮 CUBE分區(qū)。優(yōu)良的分區(qū)設(shè)計(jì)是 CUBE 性能的關(guān)鍵之一。
(3)CUBE 中計(jì)算成員的設(shè)計(jì)。
3 提升商務(wù)智能系統(tǒng)性能的解決方案
基于對影響商務(wù)智能系統(tǒng)性能的關(guān)鍵因素的分析, 就可針對性地提出相應(yīng)的解決方案。
3.1 提升數(shù)據(jù)倉庫性能解決方案
(1) 在數(shù)據(jù)倉庫設(shè)計(jì)中使用索引, 每個(gè)維度表都必須在主鍵上建立索引。事實(shí)數(shù)據(jù)表必須在由維度表外鍵構(gòu)成的組合主鍵上建立索引。在其它列( 如標(biāo)識層次結(jié)構(gòu)級別的列) 上, 索引對某些專用查詢的性能也很有用。由于星型架構(gòu)和雪花型架構(gòu)很簡單, 大多數(shù)數(shù)據(jù)倉庫應(yīng)用程序所需的索引主要就是這些。對于特殊查詢和創(chuàng)建報(bào)表, 則可能需要其它索引。為了配合 ETL 中大量數(shù)據(jù)的載入, 聚集索引的取舍則主要取決于對數(shù)據(jù)載入性能和數(shù)據(jù)查詢的性能的綜合評估。
(2) 對數(shù)據(jù)量較大的表例如某些事實(shí)表則盡可能對表進(jìn)行分區(qū)。所謂分區(qū)是指將表分成多個(gè)較小的表( 稱為成員表) , 每一個(gè)成員表與原始表有相同的格式, 但僅包含原始表中的部分行。也可將每一個(gè)表放在不同的資源( 文件或服務(wù)器) 上, 以使處理負(fù)荷分散到多個(gè)資源上。分區(qū)后每個(gè)分區(qū)表數(shù)據(jù)量相對較小, 可提升數(shù)據(jù)載入、修改、查詢過程的性能; 分區(qū)也對 OLAP 模型中的 CUBE 分區(qū)起到較好的作用。
(3) 每個(gè)維度表的主鍵應(yīng)盡可能的設(shè)計(jì)為數(shù)值類型, 一般是整型。相應(yīng)的事實(shí)表由維度表外鍵構(gòu)成的主鍵也盡可能的設(shè)計(jì)為整型。
3.2 提升 ETL 過程性能的解決方案
(1) 正因?yàn)榇蟛糠?ETL 工具采用程序轉(zhuǎn)換和 SQL 視圖轉(zhuǎn)換相結(jié)合的方式, 且部分 ETL 工具在程序轉(zhuǎn)換上提供了相當(dāng)強(qiáng)大的功能, 因此轉(zhuǎn)換方式的選擇顯得相當(dāng)重要。一般來說, 數(shù)據(jù)域轉(zhuǎn)換和同步、數(shù)據(jù)類型和格式的轉(zhuǎn)換、用于不同目標(biāo)表的數(shù)據(jù)分離等操作, 采用程序轉(zhuǎn)換可實(shí)現(xiàn)較SQL 視圖轉(zhuǎn)換更優(yōu)越的性能; 數(shù)據(jù)源的連接、合并等操作則應(yīng)選擇 SQL 視圖轉(zhuǎn)換。
(2)一般的 ETL 工具中 ETL 流程的各個(gè)活動是串行的, 并沒有自動對流程中的各個(gè)活動的并行執(zhí)行進(jìn)行專門優(yōu)化的機(jī)制。那么同一時(shí)刻 ETL 流程中只有某一個(gè)活動在執(zhí)行, 而其余的活動必須等待其上一個(gè)活動執(zhí)行完畢方可開始執(zhí)行。為了提高一個(gè) ETL 流程中各個(gè)活動的并行性, 可在 ETL 流程執(zhí)行前, 對各個(gè)活動進(jìn)行時(shí)間代價(jià)估算, 按一定規(guī)則對 ETL 流程中各個(gè)活動的輸人水平分割成相等大小的多個(gè)水平裂片, 使后一個(gè)活動的執(zhí)行不須等前一活動的所有數(shù)據(jù)完全處理結(jié)束才能執(zhí)行, 只須前一活動的部分?jǐn)?shù)據(jù)裂片到達(dá)即可開始執(zhí)行, 從而減少各個(gè)階段的空閑等待時(shí)間, 來加快響應(yīng)時(shí)間, 實(shí)現(xiàn) ETL 流程中各個(gè)活動的并行流水執(zhí)行。
3.3 提升 OLAP 模型的解決方案
(1)在設(shè)計(jì) OLAP 的維度的過程中, 有多種維度結(jié)構(gòu)包括星型結(jié)構(gòu)、雪花結(jié)構(gòu)、父子維度、虛擬維度等。一般情況下星型結(jié)構(gòu)會相對雪花結(jié)構(gòu)的性能高; 虛擬維度會相對普通星型結(jié)構(gòu)性能高。因此在維度設(shè)計(jì)過程中, 應(yīng)在能滿足需求的前提下盡可能使用恰當(dāng)?shù)木S度。
(2) 多維數(shù)據(jù)集分區(qū)允許多維數(shù)據(jù)集的源數(shù)據(jù)和聚合數(shù)據(jù)分布在多臺服務(wù)器中。多維數(shù)據(jù)集中的每個(gè)分區(qū)都可以有不同的數(shù)據(jù)源。一般分區(qū)建立有兩種方式,一是來自同一事實(shí)表, 按切片分區(qū); 一是來自不同事實(shí)表的數(shù)據(jù)可按表源實(shí)現(xiàn)分區(qū)。當(dāng)數(shù)據(jù)量較大時(shí)對 CUBE 分區(qū), 使得每次處理可只處理當(dāng)前的分區(qū)和需要更新的分區(qū), 而不必每次都完整處理整個(gè)多維數(shù)據(jù)集, 實(shí)現(xiàn)增量更新。然而, 當(dāng)多個(gè)分區(qū)存在時(shí), 查詢則需對各個(gè)分區(qū)的聚合數(shù)據(jù)進(jìn)行進(jìn)一步聚合, 這會影響查詢響應(yīng)速度, 因此為了提高查詢響應(yīng)速度必須預(yù)先對不再更新的分區(qū)進(jìn)行合并。還需要注意的是在建立分區(qū)時(shí)應(yīng)保證各個(gè)將來可能合并的分區(qū)使用相同的聚合以便合并。
(3) 為了避免因?yàn)橛?jì)算成員而影響整個(gè)多維數(shù)據(jù)集性能, 應(yīng)注意建立計(jì)算成員時(shí) MDX 函數(shù)和表達(dá)式的選擇, 例如 FIL-TER函數(shù)對性能的影響是較大的, 應(yīng)慎重使用。
4 結(jié)束語
在當(dāng)今社會, 信息化程度越來越高,競爭日益激烈, 企業(yè)會越來越多地使用商務(wù)智能系統(tǒng), 這也對商務(wù)智能系統(tǒng)的性能提出了更高的要求。實(shí)際實(shí)施過程中, 影響商務(wù)智能系統(tǒng)性能的因素是多方面的,例如硬件因素、數(shù)據(jù)質(zhì)量、系統(tǒng)本身的設(shè)計(jì)等。從商務(wù)智能系統(tǒng)的核心模塊的設(shè)計(jì)角度出發(fā)研究影響系統(tǒng)性能的關(guān)鍵因素和相應(yīng)解決方案, 對商務(wù)智能系統(tǒng)項(xiàng)目的實(shí)施人員和實(shí)施過程有不可忽視的作用。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:商務(wù)智能系統(tǒng)性能研究
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10820615785.html