中華電信資訊處第四科科長楊秀一點出巨量資料對企業的真正挑戰是「最大的問題是沒有便宜的儲存方式。」所以,中華電信用Hadoop預先處理來減量資料,降低資料倉儲的負擔。

圖片來源: 

iThome

在eBay上,每天有上百萬件商品在線上交易,8,800萬名使用者平均每天查詢商品數百萬次,eBay資料庫系統每天會增加上1.5兆筆新記錄,合計每天增加的資料量超過50TB。

為了提供各種交易媒合以及使用者行為分析,eBay的系統還得每天處理超過50PB的資料量,來進行5千多項商業分析,這正是eBay分析平臺高級總監Oliver Ratzesberger所面臨的挑戰,一個巨量資料(Big Data)的超級挑戰。

巨量資料的挑戰並非只有規模如eBay般的企業才會面臨的問題。在臺灣,中華電信每個月保留的資料如用戶網頁瀏覽記錄等,大約有3~4TB的資料量,若要分析這些原始資料,過程中必須對資料進行多種複製和轉換,系統要處理的資料量還會再增加2倍以上,但中華電信現有資料倉儲設備僅能負荷6~9月所保存的資料量,若直接使用原始資料和傳統資料庫技術,難以進行長期或深入性的分析,來找出關鍵的用戶特性進行客製化行銷。如何分析龐大資料,是中華電信越來越嚴峻的挑戰。

不只員工人數上萬人的中華電信,就連人數不到20人的臺灣社群遊戲廠商力可科技,也遇到資料暴增的難題,力可科技今年新推出的Facebook社群遊戲越來越受歡迎,記錄遊戲資訊的資料庫容量也快速暴增。數千名使用者在一天內產生的遊戲資訊高達2GB,1個月就會增加60GB的資料量,按照這個增長速度,不用幾個月,就會用完資料庫伺服器上的硬碟,力可科技總經理馮彥文既興奮又擔心。

像社交遊戲這類的社交型網站,資料成長速度飛快,你可以想像假設一個社交網站隨時上線的使用者有1萬人,若這些人每天和10位朋友打招呼,一天就會產生10萬筆資料。若是Facebook,每天有5百萬名臺灣用戶上線,光是臺灣地區產生的資料量,每天至少有5千萬筆。

就連醫院也有資料暴增的隱憂,例如義大醫院2004年4月成立後採取全面無紙化的策略,所有醫療影像,包括X光照片、斷層掃描等資料,甚至在導入電子病歷和心血管系統後,7年資料量增加了60倍,從2TB暴增到120TB,義大醫院預估,再過5年,資料量甚至會達到PB等級。

全球資料量2010年成長70億 GB

麥肯錫全球研究中心今年5月發表了一份全球巨量資料研究報告,報告中指出,全球資料量光是在2010年就增加了70億GB,相當於4千座美國國會圖書館典藏資料的總和。

巨量資料並非是新的議題,過去大多只有科學研究時,會遇到這類巨量資料的挑戰,例如高能物理分析、氣象預測、基因分析、生物研究、財務或商業資訊分析等,學者為了進行複雜現象的模擬和預測,經常利用平行運算或分散式運算技術來處理這樣大量的資料分析工作。 但現在,面臨資料暴增挑戰的企業陸續出現,也有越來越多的企業,擔心自己不久之後會面臨同樣的情況。

現在很多提供全球性服務的網路業者如Google的搜尋服務、Flickr的圖片服務、Facebook的各種社交服務等,也都用巨量資料來描述他們所遭遇到的挑戰,再加上行動裝置普及後,光是2010年全球使用中的手機就有50億隻,許多新型態的資料蒐集工具也產生了大量資料,例如相機、麥克風、RFID讀取裝置、無線網路感應等,使用這些裝置提供服務的業者也同樣面臨了巨量資料的處理挑戰。

這樣數10TB甚至是PB等級的資料量無法一次儲存在單一硬碟上,必須分散儲存,一般程式常用的關聯式資料庫架構處理這樣龐大資料時的效率不佳,遠超過傳統常見的資料庫管理工具所能處理的資料量。因為資料規模龐大也連到造成了後續進行資料擷取、保存、使用、分享以及分析時的處理難度。

目前常見的巨量資料例如像網站Log記錄、RFID資訊、感測器網路資訊、社交網路的互動資料、網際網路上的文件、影音圖片、網路搜尋索引、客服中心呼叫記錄、天文資料、大氣科學分析、基因資料、生化分析、複雜或跨學科的科學分析、醫學記錄,甚至是生產線機臺設備產生的Log記錄。

這些大多是非結構性資料,不容易以傳統關聯式資料庫的作法,透過固定資料欄位架構,將資料儲存到關聯式資料庫中來進行處理。除了巨量的挑戰以外,還有資料結構複雜化的挑戰。

巨量資料衝擊資料倉儲技術升級

這些巨量資料的挑戰帶來IT技術和商用軟體的變革,首當其衝的當然是資料庫和資料倉儲業者,Gartner副總裁Donald Feinberg表示,資料倉儲的角色在2011年時將面臨非常明顯的改變,來因應巨量、複雜、更多不同資料形式的挑戰。

Donald Feinberg認為,資料倉儲的角色之所以會有所轉變,其中一項因素就是資料不僅在數量上變多,而且日益複雜,對於5到10年前所設計出來的資料倉儲系統來說,還必須能處理資訊的多樣性、複雜性、巨大的容量而且系統反應速度要即時等特性。而他認為,雖然巨量資料對不同產業都有不同的意義,但基本上,巨量資料代表的就是大量、複雜和非結構化的資料。

巨量資料影響層面之廣,IDC軟體市場分析師鍾翠玲表示,巨量資料對於各方廠商都是新的戰場,但她認為,資料倉儲會是因應巨量資料的主力。

一直以來,資料倉儲系統大多運用在OLAP(On-Line Analytical Processing)領域,著重在資料採礦、深度分析的功能。在過去,深度資料採礦與建模的工作並沒有立即性的需求,因此,相對於以交易為基礎的OLTP(On-Line Transaction Processing)領域,對時間與立即性的要求沒有那麼高。

不過,隨著巨量資料時代來臨,資料量不僅大幅成長,資料的種類與態樣也越來越複雜,企業對於大量訊息快速分析後要立即給予反應的要求也越來越高。這些對專營OLAP資料倉儲的廠商來說,就帶來了效能與分析多樣性資料的能力都必須提升的挑戰。於是,舉凡壓縮技術、SSD硬碟等都紛紛出籠。

而各家廠商面對巨量資料的因應策略也有所不同。Donald Feinberg表示,現今大多數廠商都在談巨量資料,並試著將此納入資料倉儲管理的環境中。他分析的幾個資料倉儲廠商分別是甲骨文、微軟、IBM、SAP/Sybase、Teradata、EMC的Greenplum等。

他表示,甲骨文與微軟都處於剛開始談論巨量資料的階段,IBM則是靠著Big Insights進入巨量資料領域,Teradata收購的Aster Data被Donald Feinberg歸納為處理多樣性、複雜性資料的領導廠商,因此,他表示,該併購也讓Teradata一舉成為處理巨量資料的領導廠商之一。另外,儲存廠商EMC所併購的Greenplum也將MapReduce納入資料倉儲中,成為另一個處理巨量資料領導廠商。

事實上,隨著資料量增加,已有OLTP領域的廠商推出軟硬體整合的產品跨足進資料倉儲的世界。3年多前甲骨文將自己最擅長的OLTP資料庫搭上昇陽的硬體,推出了一款資料倉儲產品Exadata,並且在第二版的儲存硬碟上加裝了儲存伺服器軟體,讓資料採礦計分的功能直接在儲存硬碟上進行,降低資料庫引擎的負擔。

面對巨量資料的挑戰,甲骨文大中華區臺灣技術諮詢部資深諮詢經理黃久安表示,原先資料庫軟體其實就能處理許多複雜的資料來源,包括文本檔案,甲骨文推出軟硬體搭配的資料倉儲產品,就是因為企業資料量逐漸增加,必須藉由硬體去克服為了分析所帶來的巨量資料。

不過,雖然甲骨文的資料庫引擎可以做到半結構性資料的分析,並宣稱自己的資料倉儲系統可以同時提供OLAP與OLTP的功能,但是,這代表所有的資料都必須儲存在資料倉儲系統中才能分析,若以資料量計價的話,恐怕沒有很經濟。

中華電信資訊處第四科科長楊秀一就指出巨量資料對企業真正的難題是,「最大的問題在於沒有便宜的儲存方式。」他說。

這使得Teradata與IBM Netezza都用另一個平臺先處理大量非結構或是半結構性的資料來達到減量效果。Teradata專門用於儲存分析巨量資料的平臺是併購來的Aster Data,IBM則是採用自家開發的InfoSphere來儲存與分析巨量資料。

資料倉儲結合Hadoop運算技術

這些平臺的特色都是採用了Hadoop開源雲端運算平臺的MapReduce處理技術,來解決關連式資料庫無法分析非結構性資料的困境。像是Aster Data就能同時支援使用者透過標準SQL來進行MapReduce的處理,可先透過MapReduce找出非結構性資料中的有用的結構性資料,減少資料量後,再由傳統資料倉儲接手分析。

MapReduce是Google用來分析龐大網路服務資料的關鍵技術,在2005年釋出後,開源社群改用Java實作出MapReduce技術的開發平臺Hadoop。

MapReduce的基本概念其實不難懂,用一個真實的數錢幣故事來解釋。有位企業主為了刁難銀行,用50元硬幣和10元硬幣償還316萬元的貸款,數萬枚硬幣重達1公噸,還得找來吊車才能送到銀行,幾位行員七手八腳花了好幾個小時才清點完畢。銀行只要不斷加派人手,就能縮短清點時間,例如能立即找到100個人手,10分鐘內就能完成,不會影響到正常銀行運作。

就像這個不斷加派人手來清點錢幣的做法一樣,MapReduce可以不斷增加更多伺服器來提高運算能力,增加可承載的運算量。透過Map程式將資料切割成不相關的區塊,分配給大量電腦處理,再透過Reduce程式將結果彙整,輸出開發者需要的結果。

資料倉儲業者正是利用Hadoop的高擴充分散式運算技術,來解決巨大資料的難題。不過,另外建置一個平臺,除了增加建置成本之外,當然也就多一道資料存取的工作,資料的正確性也就成了另一個風險。

以單純軟體起家的Greenplum雖可同時支援SQL與MapReduce,直接讀取企業存取資料的儲存設備中的資料,並且在計價時只計算保留在資料倉儲空間中的資料量。過去Greenplum一直都是以販售軟體為主,讓企業自行搭配硬體。去年第三季他們也推出了軟硬體整合的產品。

就目前而言,各家廠商認為臺灣企業對於分析結構性資料的需求仍舊大於非結構性資料,而龐大資料的產生,則是正在發生中的事情,多數企業開始面對巨量資料的問題,都是在為了未來而打算,而不是現在就面臨的困難。

低成本的NoSQL資料庫技術

倒是網路業者更快面臨了巨量資料,例如先前提到的力可科技,或像eBay、Facebook、Google等,他們為了解決PB等級的資料儲存和擴充問題,也開始研發建置成本較低的分散式開源資料庫,也就是所謂的NoSQL資料庫。這類技術可使用個人電腦等級的伺服器,以較低的成本,但大量的設備來撐起巨量資料需要的儲存規模和分析處理能力。

像是Google自行研發的BigTable就是最好的例子。其他如Amazon、Yahoo、Facebook、Twitter也都投入這類NoSQL資料庫的研發。甚至連微軟Azure雲端平臺也使用了NoSQL技術來存取資料。而像Facebook也開發了一套NoSQL資料庫Cassandra,在600多個運算核心的叢集系統上,儲存了超過120TB的站內郵件資料。

目前主要有4種NoSQL資料,包括Key-Value資料庫,記憶體資料庫(In-memory Database)、圖學資料庫(Graph Database)以及文件資料庫(Document Database)。

Key-Value資料庫是NoSQL資料庫中最大宗的類型,這類資料最大的特色就是採用Key-Value資料架構,最簡單的Key-Value資料庫中,每一筆記錄只有2個欄位,也就是Key欄位和Value欄位,每一個Key對應到一個Value欄位,沒有傳統關聯式資料庫的欄位架構(Schema),讀取資料的方式也只有設定值、取出值或刪除值等簡單的操作,沒有像SQL語言那樣可以進行Join的複雜查詢。但是Key-Value架構的好處正是因為沒有Schema,只要建立另一群Key值,就等於是建立了另一個資料表,而因為每一群資料之間沒有關連,可以任意切割或擴充。

其他,記憶體資料庫是將資料儲存在記憶體的NoSQL資料庫,文件資料庫則是用來儲存非結構性的文件,而圖學資料庫不是專門用來處理圖片的資料庫,而是指運用圖學架構來儲存節點間關係資料架構,例如用樹狀結構來組織從屬關係或網狀結構來儲存朋友關係。

臺灣已有企業打造出巨量資料分析平臺

隨著巨量資料的挑戰日益普及,這些從網路業者累積的巨量資料因應經驗,不但讓其他企業獲益,更讓傳統資料倉儲業者累積和升級商用產品。

對多數臺灣企業而言,巨量資料的挑戰還是一個未來的議題,但已有企業已經著手開始因應,例如中華電信打造了一個168臺伺服器的Hadoop運算平臺,嘗試分析大量非結構性資料如訊務資料與MOD收視率分析等,未來還打算將平臺商品化來協助外部企業分析PB級數量的資料。

在這次封面故事中,我們採訪了中華電信以及eBay如何分析巨量資料的實踐經驗,希望透過這些經驗,提供企業未雨綢繆的參考。

 

Hadoop是目前最受歡迎的高擴充雲端運算技術,不論企業或IT廠商都使用Hadoop來處理巨量資料,圖為Hadoop提供的網頁管理介面,可以監控每一個運算節點的執行情形。照片提供/賴弘哲、陳建文

 


相關報導請參考「PB級資料的挑戰:巨量資料來襲

熱門新聞

Advertisement