圖片來源: 

iThome

雖然對很多臺灣企業來說,巨量資料仍被視為未來才會逐漸發生的事情,但實際上,臺灣電信業者確實已開始發展處理巨量資料的方法。

企業分析巨量資料的目的,多半是為了分析客戶行為,並針對這些行為給予主動行銷。以過去常運用資料倉儲分析資料的金融業來說,現在有更多即時性的資料出現,若能結合歷史性跟即時性的資料進行綜合分析,就能讓應用資料的效益更高。

現在臺灣也有電信業將巨量資料的分析結果應用在預測駭客攻擊的領域。由於一般駭客在正式攻擊之前,會先嘗試攻擊不同的伺服器,這些攻擊都會在系統的Log中留下軌跡。在Log會有一段敘述,用來描述錯誤訊息,電信業者就藉由可同時處理結構與非結構性資料的資料倉儲系統來處理這些半結構性資料,利用這些錯誤訊息建立模式,進而預測駭客攻擊提早加以預防。顯見得巨量資料在應用領域上已經逐漸多元化。

為了解決這些巨量又大型的非結構性資料,各個企業作法並不同,但Gartner副總裁Donald Feinber表示,大部分的企業會特別打造一個空間或是平臺來存放並分析這些非結構化資料或是巨量資料。中華電信的作法也是如此。

中華電信研究所為了配合中華電信的需求,在2010年1月建置了一個以Hadoop技術為核心的平臺,稱為「大資料運算平臺」,用來分析一些訊務資料、MOD每日收視率分析等。

中華電信研究所寬網室研究員蕭毅表示,目前這個平臺仍在研發階段,會針對中華電信內部的需求來開發平臺功能,接下來,將進一步對內實際提供加值應用,未來也打算將技術包裝後,對外提供巨量資料平臺運算的服務。

開發巨量資料元件庫,即使不會Hadoop技術也能使用平臺資料

這個「大資料運算平臺」目前是由168臺伺服器所組成,資料容量是600TB,以Hadoop雲端運算技術為核心架構。在底層核心架構上,中華電信研究所再利用開放原始碼各種技術開發了其他模組,像是分散式資料庫系統、工作排程、流程管理、資料庫介接工具等來提高平臺的可使用度。同時,為了提升平臺的維運效率,中華電信研究所開發了管理模組、效能監測、告警通報、組態管理等一般網管所具有的機制。

另外,中華電信研究所也開發了一個「大資料元件庫」。蕭毅表示,元件庫就如同中介軟體,藉由這些元件庫的API,開發人員不一定要學會用Hadoop技術來寫程式,就能使用平臺上的資料分析功能。目前這個元件庫底下約有6種元件庫,包括MOD元件庫、影音搜尋元件庫、影像辨識元件庫等。

蕭毅表示,當巨量資料平臺所群組起來的伺服器越多時,就表示要處理資料量越大,相對來說,管理能力就一定要增強,而目前中華電信研究所開發的「大資料運算平臺」程式功能已具有管理200臺伺服器的能力,未來若要商用化,這些能力都會持續擴增,讓可運算的資料量達到PB等級。

開發介面程式可相互轉換結構與非結構性資料,讓資料的分析更具有彈性

中華電信研究所會想要開發這個巨量資料運算平臺,有一個原因就是想要利用Hadoop來處理過去關聯性資料庫不容易處理的大量非結構化資料。非結構化資料通常都呈現非常大型的狀態,就好像是一整篇文章,而不是經過篩選的資料欄位,蕭毅稱為「一尾式」的資料。

蕭毅表示,這種「一尾式」的資料,如果要變成結構性資料,第一個問題是由於資料太過龐大,讓資料庫的費用大幅增加。第二個問題是,在資料量太大的時候,傳統資料庫難以連接不同的資料表。因此,「一尾型的資料因為傳統資料庫無法運算,就改放入Hadoop平臺運算,若原本是簡化過的結構性資料,才放進原來的資料庫分析。」他說。

像之前中華電信研究所曾經利用傳統資料庫來計算MOD每日收視率分析,結果由於資料量過大而無法分析,建構了「大資料運算平臺」以後,運用Hadoop 技術只需1個小時就能計算出結果。蕭毅認為,如果硬體的數量再增加,分析所需要的時間甚至可以在幾分鐘內完成。

雖然巨量資料運算平臺可以解決關聯性資料庫無法分析非結構性資料的難題,但蕭毅認為,只要是200TB以內的資料量都還是可以靠傳統資料庫分析,但超過PB等級資料量的話,傳統的資料庫恐怕就無法負荷。

因此,中華電信研究所也在這個平臺上開發了介面程式來轉換結構與非結構性資料,可以將非結構性資料轉成結構性資料分析,也可以把原先結構性資料打散變成非結構性資料,再讓Hadoop技術做倒立式的搜尋。

建立培訓機制協助技術人員學習Hadoop技術

雖然開發這個平臺為中華電信研究所帶來許多嶄新的測試經驗,但在開發過程中,他們遇到最大的困難就是嚴重的技術瓶頸。

蕭毅表示,最大的挑戰在於NoSQL與Hadoop等巨量資料技術與傳統資料的設計觀念完全不一樣,必須訓練資訊人員接受新方法,而難題就在於說服資深的技術人員學習新技術。「一旦採用Hadoop技術,原始程式和應用系統功能都要修改,要讓技術人員重新學習,這就是我們的困難。」他說。

中華電信要自己開發元件庫也是為了解決這個難題。不過,在這個元件庫下還是得開發不同專業領域元件庫,這時候需要該領域的專家以及能用Hadoop技術開發程式的技術人員共同合作才能完成。

就算可以使用元件庫來簡化開發,對於技術人員來說,要從本來傳統資料庫的元件庫轉換,也會出現轉換障礙。

而且,蕭毅表示,即使可以利用元件庫,技術人員還是直接用Java寫MapReduce的分析程式,在運作效能與速度都會比較好,技術人員還是得熟悉Hadoop技術。

因此,中華電信研究所建立了巨量資料技術的專長培訓機制,來協助技術人員的轉換技能,也為了訓練各應用領域的系統設計人員,建立新的巨量資料架構觀念擁有自行評估設計、規畫、開發的技術能力。

 

Hadoop技術的優缺點比較

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

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

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

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

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

同時,他們也提出幾項目前採用Hadoop技術的缺點,其中有一些也是正在解決的問題。

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

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

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

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

 


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


熱門新聞

Advertisement