[閒聊] 新聞一則

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2011/06/10 21:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
http://www.ithome.com.tw/itadm/article.php?c=68023 面對資料快速成長以及非結構性資料的增加,中華電信資訊處第四科 科長楊秀一表示,中華電信近來利用Hadoop雲端運算技術自行開發了 一個專門用來分析非結構化資料的巨量資料(Big Data)運算平臺, 嘗試在資料進到資料倉儲系統之前,先進行資料的分析與處理以減少 資料倉儲的資料量。 . . 舉例來說,同樣打一通5分鐘的電話,每一通經過的基地臺數量與路 徑完全不同,導致每一筆資料的長度並不一樣。因此,在處理資料時 ,先訂出可讓資料長度相同的規則,就能將相同長度的資料放在同一 個欄位,進行結構化的分析。 楊秀一表示,將資料在進入資料倉儲之前就先放進另一個平臺分析, 而不是將所有資料放進資料庫後,再將資料取出分析,可以減少一次 資料庫的I/O負擔。 ============================================================ 第一段的部份,laechan 已經把它用在某個系統了。該系統很多 mud 也有,但是聖殿的可以運作的很龐大。(目前是刻意縮小規模) 第二、三段的部份,它的主要用意,就是在「取」資料時loading 可 以盡可能地減小。 所以它有很多做法。就純粹的「存」跟「取」這部份,它的重點是擺 在「如何設計資料結構」。我舉個例,例如底下的資料結構.. //第一種格式 mapping student=([ // 數學 物理 化學 "nahceal":({ 90 , 80 , 70 }), "highelf":({ 80 , 90 , 70 }), "laechan":({ 20 , 20 , 20 }), ]); 那麼,一種「可變」的儲存方式就如下.. //第二種格式 mapping student=([ // 數-物-化 "nahceal":"90-80-70", <= 把原先陣列儲存的資料改成只需一個字串就搞定 "highelf":"80-90-70", 這就是所謂的先對資料做處理、再儲存資料的做法 "laechan":"20-20-20", ]); 甚至上面的變態型式也可能如下.. mixed student=({ <= 把整個 mapping 資料改成陣列資料,同樣是資料前處理 "nahceal-90-80-70", "highelf-80-90-70", "laechan-20-20-20", }); 然後聖殿常用的做法就是如下.. //第三種格式 mapping student=({ // 數-物-化 "nahceal 90 80 70", <= 已經先格式化過資料 "highelf 80 90 70", "laechan 20 20 20", }); 然後我們的程式碼就可以這樣寫.. str="大家的成績如下\n"+ implode(student,"\n")+"\n"; <= 這樣超快的 如果是第二種格式就會變底下.. string tmp,str; mixed tmps=({}); str="大家的成績如下\n"; foreach(names in keys_student) { tmp=student[names]; tmp=substr(tmp,"-"," "); str+=sprintf("%-11s %s\n",names,tmp); } laechan 也早已實作這個概念,基本上就是有遇過相關困擾, 才產生相關做法的一種演進。聖殿以前在線角色數一超過某個 數字(<300),就無法成功顯示 who 的結果,當初也是因為這樣 才對 who 指令做了改良,同樣是運用資料前處理的做法。據上 次實驗的結果即使是 10XX 人也能正常顯示。 Belldandy. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.3.82
文章代碼(AID): #1DyXj3wW (mud_sanc)
文章代碼(AID): #1DyXj3wW (mud_sanc)