奚曉音,何忠江,王 丹
(中國電信股份有限公司上海研究院 上海200122)
在全業務運營的時代,伴隨著各類業務系統建設、運行,隨之而來的是海量的業務數據。如何在浩淼如煙的數據中,探尋對企業發展具有戰略價值的信息,挖掘數據之間所蘊含的聯系,充分發揮數據在企業日常管理過程中的效益,是擺在每一個企業管理人員面前的無法回避的問題。在電信運營商中體現得尤為明顯的是每天都會產生大量的數據,而隨著電信運營商間的競爭加劇,對數據應用分析及挖掘的需求也越來越急迫。通過數據倉庫系統的建設,實現了對數據的抽取、轉換、清理、存儲,通過數據倉庫系統實現了對數據的挖掘、分析和展現,使企業所擁有數據的價值得到了充分的展現。
然而,隨著數據倉庫系統的持續使用,業務分析模型越來越復雜,模型所包含的數據量也在呈幾何倍數增長,導致通過數據倉庫系統實現數據的挖掘、分析和應用的效率越來越低,以某電信運營商為例,一張資產分析報表的運行時間長達數小時,已大大超出了終端用戶對報表運行時間的容忍度。而且,數據從業務系統加載到數據倉庫的時間也越來越長,晚間預留的數據加載時間也在不停地增加,數據加載出錯的概率也在不斷地攀升,導致最終用戶看到報表的時間越來越晚,無法實現原定的隔天看數的目標。但是,市場競爭的加劇又促使用戶需要在最短的時間內看到報表數據或分析結果,有時甚至要求實時地對數據進行分析,以便更好地使企業參與市場競爭。由此,數據應用需求的發展趨勢與數據倉庫的技術現狀之間產生了不可調和的矛盾,急需新技術的引入,來促使數據倉庫系統的改進和發展,更好地為企業的數據應用服務。
傳統數據庫把所有數據都放在硬盤上進行管理,需要通過頻繁地訪問硬盤來進行數據的讀寫操作,由于讀寫操作既受到讀寫機械運行速度的制約,又受到系統調用時間的影響,當數據量很大并且操作頻繁時,傳統數據庫的運行效率會受到很大的影響。于是,人們把目光轉向了內存,希望通過內存計算技術,實現對數據庫數據的快速、高效訪問,提高數據庫的運行效率。
內存數據庫從根本上拋棄了傳統數據庫的管理方式,設計了新的體系架構,并在數據緩存、快速算法、并行操作方面也進行了相應的改進,從而使數據處理速度一般比傳統數據庫要快10倍以上,理想情況甚至可以達到1 000倍。基于內存數據庫的內存計算技術有以下技術特點。
(1)查詢處理過程
指針在內存數據庫中能被廣泛使用。應用進程可以通過指針,也可以通過位置獨立的數據庫偏移量訪問數據,無需像傳統數據庫那樣與緩沖區管理器交互。另外,由于指針長度固定,因此變長字段問題可以很好解決。其次,若一個大的數據對象在數據庫中多次出現,則內存中只需存儲一次,其他地方使用指針來引用,可以有效地減少系統開銷。
(2)并發控制
并發控制的開銷對事務處理性能的影響很大,在數據庫常駐內存后,同樣一個事務的執行時間比傳統數據庫要短得多,這意味著基于鎖的并發控制系統中,事務持有鎖的時間很短,對鎖的競爭就比傳統數據庫要小,傳統數據庫中應用的細粒度鎖的優點對改善性能的意義已不大,因此粗粒度鎖更適用于內存數據庫。采用粗粒度鎖后,事務由于加鎖解鎖而被掛起次數的減少,往往意味著CPU cache刷新次數的減少,因此性能的提高非常明顯。
(3)恢復機制
由于內存數據通常是易失的,操作系統崩潰或進程故障對內存數據庫數據的影響比傳統數據庫要大。為保證系統可靠性,內存數據庫寫日志和備份數據到磁盤是不可缺少的。在內存數據庫中,只有在事務提交寫日志、執行檢查以及系統故障恢復時才需要訪問磁盤。因此,重新設計內存數據庫的事務提交策略和檢查方式,對改善系統性能至關重要。
(4)數據存儲模式
傳統數據庫是基于行存儲的,而在內存數據庫中,數據更適合以列的形式存儲,而且有利于數據的壓縮。
正如前文所述,當前電信企業的數據倉庫系統建設正處于一個矛盾時期,即由日益增加的數據分析量導致數據處理、分析效率的降低與日益急迫的對數據分析結果的需求之間的矛盾,這個矛盾不解決,將直接影響電信企業數據倉庫的應用價值。以某電信運營商為例,在企業戰略轉型時期,企業對數據分析應用的需求呈現以下幾個特點。
(1)跨專業領域的綜合數據分析需求增多
數據倉庫系統在建設初期,是按專業領域分塊建設。即在統一的數據倉庫平臺之上,按專業條塊建設各自的數據倉庫,并在此基礎之上進行相關的數據統計、分析和挖掘。由此,造成整個數據倉庫體系建設分割,缺乏整體性的建模,無法形成數據的有效復用,數據重復加載情況比較嚴重,各業務分析模型之間不能很好地進行數據及業務融合,無法快速、準確地進行跨專業領域的綜合數據分析。并且,各專業領域數據倉庫之間的數據關聯性也較差,跨域的數據分析更是難以開展。造成業務系統中空有大量數據,卻無法及時對企業的經營管理決策過程提供有效的數據支撐。在應用內存計算技術之后,隨著傳統數據倉庫性能瓶頸的消失,數據模型可以建得更復雜,跨專業領域之間的數據綜合分析應用的實現也會變得更快速,更易實現。
(2)數據分析應用的時效性在提高
在數據倉庫系統建設之初,企業對于數據倉庫中數據的分析應用多以月度為單位,其時效性要求不是很高,并且數據量也不多,傳統的數據庫技術足以應付。然而,因企業戰略轉型的需求,加之市場競爭的日趨激烈,企業對于數據分析結果的時效性要求越來越高,從傳統的每月看數發展到目前的實時看數。傳統的數據庫技術無法滿足企業管理層實時看數的業務需求,目前只能做到隔天看數,不能完全支撐企業的管理決策需求。采用內存計算技術后,數據倉庫可實現實時的數據加載和處理,數據分析應用的時效性得以大幅度的提高。
(3)海量數據的分析需求不斷出現
傳統數據倉庫雖然可以實現海量數據的存儲,并在此基礎之上進行數據的分析和統計。但受限于硬盤的讀寫性能,海量數據的讀寫操作往往會消耗大量的時間,降低最終用戶的系統使用感知度。而且,海量的數據需要大量的硬盤進行存儲,從而加大了硬件的投資費用。當采用內存計算技術后,受列式存儲所帶來的數據大壓縮率,可以在同等大小的內存中存放遠多于硬盤的數據,以較小的投資規模實現海量數據的存儲。并且,對于內存中數據的讀取不受機械因素的制約,理論讀寫速度遠快于硬盤,可以大大提高海量數據的讀寫效率,使數據倉庫能滿足電信企業日益增長的數據量的需求。
(4)基于非結構化數據的分析需求日益增多
受傳統數據庫數據存儲結構的制約,以前數據倉庫系統對于非結構化數據的支持不到位,很多基于非結構化數據的分析無法正常開展。受益于內存計算技術所帶來的全新的數據存儲結構,對于非結構化數據的分析將得到有效地提升。以前企業在傳統數據倉庫系統中無法實現的基于非結構化數據的分析需求,在內存計算時代將會得到較大的改觀。今后,在數據分析領域,結構化數據與非結構化數據的綜合分析應用將更有效地揭示數據之間的內存關聯,更好地為企業的分析需求所服務。
(5)對數據分析的快速響應要求越來越高
如今,隨著工作節奏的加快,對于數據分析查詢出結果的時間要求也越來越短。一張報表,以前在10 min內出結果是可以接受的,而現在就變得不可接受。要加快數據分析的響應速度,傳統的數據倉庫在面對日益增長的數據量時,是心有余而力不足。而采用內存計算技術后,這一時間消耗將被大大地縮短,一張包含數億條記錄的查詢在幾秒鐘之內就能得到結果,而在傳統數據倉庫結構中是無法想象的,因為之前往往需要幾個小時甚至十幾個小時才能出結果,這將大大提高企業員工的工作效率,從根本上改變數據分析人員的工作方式,使員工能更專注于分析數據之間的聯系,而不用在意其計算效率。
如上所述,內存計算技術能夠滿足在企業戰略轉型時期企業對數據分析應用的需求。
內存計算技術作為大型數據倉庫系統發展的技術趨勢之一,使電信企業數據倉庫系統建設經歷著從傳統數據倉庫到基于內存計算技術構建數據倉庫系統的轉變過程。在此轉變過程中,應從數據及業務整合、系統構建及應用開放幾個步驟進行。
(1)數據及業務整合
任何一個數據倉庫系統的構建都離不開數據及業務的整合,良好的數據質量及清晰的分析業務需求是數據倉庫建設成功的必備條件。在內存計算技術引入后,傳統模式下的分專業的數據倉庫系統建設模式應得到改變,構建適合企業全面管理的完整的數據倉庫及數據分析系統,將現在分散建設的各專業領域數據倉庫整合成一個完整的數據倉庫,以充分實現數據的綜合分析應用,提升數據的使用價值。
(2)系統構建
在系統構建階段,應注重與原有系統之間的技術及業務的繼承性,盡可能選擇市面上成熟的整體解決方案。
(3)應用開發
新的數據倉庫系統構建應具有一定的開放性,能實現傳統數據數據庫不能實現的業務功能,重視數據倉庫系統與周邊數據分析系統及業務系統之間的聯系性,把數據倉庫打造成一個數據應用的發起者,而不僅是一個數據存儲者。
在數據倉庫系統建設過程中應用內存計算技術,能有效提高數據倉庫的運行效率,加快數據分析過程的進行,更有力地支撐企業對于數據分析結果的應用,讓企業能更加適應快速變化的市場,為企業的經營決策提供數據依據,但是內存計算技術的應用也存在一些難點和風險。
(1)產品的選擇問題
目前,市面上有多個內存數據庫的產品,并且SAP、Oracle等廠商也提出了基于內存計算技術的數據倉庫/數據分析整體解決方案。但內存計算技術及相關產品還沒有統一的標準,相關的開放協議也不完備,并且電信運營商多已建設了比較完整的數據倉庫及數據分析體系,若產品選擇不當會造成與現有已建成的數據倉庫系統的不兼容,從而帶來嚴重的投資風險。
(2)可靠性問題
由于內存數據庫所有數據都存放在內存中,服務器宕機所造成的影響遠超過傳統數據庫。因此,系統的整體可靠性顯得尤為重要。
(3)技術融合的復雜性
內存計算、移動計算及云計算是今后數據分析領域的發展趨勢。如何將3種不同的技術進行有效的整合,互相推動,促進數據分析領域的發展,是一個復雜的問題。
基于傳統數據庫技術的數據倉庫及數據分析平臺,在大數據量的業務應用場景下,系統運行效率低下,系統穩定性較低,不能很好地滿足最終用戶的業務需求,用戶感知度較低。而內存計算技術的出現,可有效地緩解日益急迫的數據分析應用需求與日益延長的數據加載及處理周期之間的矛盾,提升數據倉庫系統及數據分析平臺的應用價值。
內存計算技術為電信運營商數據倉庫及數據分析體系的完善和發展提供了強有力的技術支撐,促進了電信運營商各專業領域的數據綜合統計、分析、挖掘工作的開展,為電信運營商所擁有的海量業務數據的深化使用和價值提升提供了技術保障,也為整個電信行業數據倉庫及數據分析平臺的構建提供了一種可行的技術途徑。
1 張翔.內存數據庫—支撐電信系統發展的利器.http://net.it168.com/ex/2007-03-21/200703211003529.shtml,2007
2 楊武軍,張繼榮,屈軍鎖.內存數據庫技術綜述.西安郵電學院學報,2005,3(10)