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級數量的資料。

資料倉儲、資料庫皆因巨量資料而有新挑戰

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

但是,對於擅長處理結構化資料的關聯式資料庫管理系統來說,是很難去處理巨量資料的。因此,Donald Feinberg表示,目前大部分的企業會特別打造一個空間或是平臺來存放非結構化資料或是巨量資料。

因應巨量資料的來臨,Donald Feinberg表示,未來邏輯資料倉儲的概念將會浮現,也就是將不同性質的資料存放在不同的資料庫中,就可以用適當的工具來獲取正確的資訊,同時,邏輯資料倉儲會利用適當的後設資料連結所有資料倉儲系統中不同的資料。

Donald Feinberg也表示,有許多工具都是用來處理巨量而非結構化的資料,但是,將有很多應用程式是使用MapReduce技術開發。

資料倉儲廠商面臨必須快速回應查詢的挑戰

巨量資料影響層面之廣,IDC軟體市場分析師鍾翠玲表示,巨量資料對於各方廠商都是新的戰場,其中也包含了儲存廠商,像是EMC買下資料倉儲軟體業者Greenplum就是一例。原因正是,她認為,資料倉儲的確是可因應巨量資料的主力。

不過,對資料倉儲廠商來說,還是有不少挑戰存在,首當其衝的是,他們必須要強化關聯式資料庫的效能,增加資料管理和資料壓縮的功能。

因為過往關聯性資料庫產品處理大量資料時的運作速度都不快,需要引進新技術來加速資料查詢的功能。另外,資料倉儲的廠商也開始嘗試不只採用傳統硬碟來儲存資料,像是使用快閃記憶體的資料庫、記憶體式資料庫等,都逐漸產生。

另一個挑戰就是傳統關聯性資料庫無法分析非結構化資料,因此,併購具有分析非結構化資料的廠商以及資料管理廠商,是目前資料倉儲大廠擴增實力的方向。

資料管理的影響主要是資訊安全的考量。IDC軟體市場分析師吳乃沛表示,巨量資料對於儲存技術與資訊安全也都會產生衝擊。首先,快照、重覆資料刪除等技術,在巨量資料時代變得很重要,就衍生了資料擷取權限的管理。

舉例來說,現在企業後端與前端所看到的資料模式並不一樣,當企業要處理非結構化資料時,就必須界定出是IT部門還是業務單位才是資料管理者。而吳乃沛表示,由於這牽涉的不僅是技術問題,還有公司政策的制定,因此界定出資料管理者是臺灣企業目前最頭痛的問題。

 

中華電信「大資料運算平臺」組成要素

1. 168臺伺服器叢集,容量600TB。

2. Hadoop雲端運算技術為核心。

3. 平臺使用度模組化工具,如分散式資料庫系統、工作排程、流程管理、資料庫介接工具。

4. 平臺維護效率模組化工具,如效能監測、告警通知、組態管理等。

5.「大資料元件庫」提供API,簡化開發。

 

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

 

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

 

eBay分析平臺高級總監Oliver Ratzesberger認為,近年來在分析資料領域最大的挑戰就是要同時處理結構化與非結構化的資料,而傳統的關聯性資料庫無法解決非結構化資料。

 

eBay將資料庫中的資料架構虛擬化,讓資料庫資源可彈性配置,也減少因分析造成的大量資料複製的資料量,各單位也可以透過自助服務申請所需要使用的資料超市(Data Mart)。

 

分析結構與半結構化資料表範例

eBay的資料表同時存放結構與半結構資料,結構化資料的欄位不變,其他較複雜的非結構化訊息則集中在另一個欄位中,一旦出現查詢需求時,就可以經過相對應數值匹配。

(看大圖)

 

Hadoop技術的優缺點比較

中華電信研究所從2010年1月建置好「大資料運算平臺」後,陸陸續續在這個平臺上測試了不少工作,包含訊務的分析以及MOD收視率分析等。

綜合這1年半來運用Hadoop技術的經驗,中華電信研究所認為,Hadoop技術各有幾項優缺點。

第一個優點是,運用Hadoop技術可以節省成本。中華電信研究所寬網室研究員蕭毅表示,開發巨量資料運算平臺的硬體很便宜,軟體也是免費的,如果要計算一樣的資料量來說,只需要支付用傳統資料庫計算時價格的10分之1。

第二個優點是,減輕程式維護人力。蕭毅表示,過去企業要維護一個傳統資料庫,需要大量的專業人力,尤其是要計算PB等級的資料量時,資料庫會變得更加複雜,加上備份的機制,對於程式維護來說是很大的負擔。但利用Hadoop技術,由於每一筆資料體積龐大,只要利用類似使用搜尋引擎的功能就可以找到資料,而且Hadoop也會自動備份3次,大大減低程式維護的人力。

另外,中華電信研究所也看好Hadoop技術將成為Java程式語言主流架構,可以同時支援開發單機版,或是多機版。

同時,他們也發現好幾項Hadoop技術的缺點,其中有一些也是正他們在著手解決的問題。

第一個缺點是,安全性不足的問題。蕭毅解釋,中華電信研究所未來想要讓這個「大資料運算平臺」上擁有多租戶的功能,但是如果要將這些用戶隔開,就必須自行開發程式或使用不同的硬體來區分不同的用戶,不過,他認為,這對於單一企業應用此技術開發單一平臺來說,就不會有這個問題。

第二個缺點是程式開發人員必須要學習MapReduce架構才能在Hadoop平臺開發程式,而且沒有針對各行各業需求打造的元件庫。

第三個缺點則是各版本功能的差異較大,容易造成應用程式相容性的問題。蕭毅表示,為了解決這個問題,在開發的過程中就必須加進許多管控機制才能讓程式運作更順暢。

第四個缺點則是管理機制大多為指令介面,缺乏友善的,Hadoop的圖像管理介面。事實上,蕭毅認為,對專業的開發人員來說,指令介面並沒有什麼問題,不過對於一般的人來說,容易產生距離感。

 


相關報導請參考「改寫IT規則的技術新趨勢」


熱門新聞

Advertisement