清華大學資訊系副教授李哲榮表示,若要在一群資料中找出「最正確的」資料關聯,可能會需要花上十天來做,但如果只是要找「夠正確的」資料關聯,可能只需要花1個小時。

從1GB到1TB,看似只是資料數量的改變,但事實上,資料處理方式也因其量變,而悄悄產生了質變。如果以往企業處理1GB的資料需要10分鐘,現在面對1,000倍的1TB資料,就需要3天的時間了,三天的等待,對許多企業而言,已經足以痛失重要訂單,甚至喪失決策的良機。

除了面對資料量的不斷膨脹,即時資料處理的要求也日漸迫切,學界與業界都開始重新思索資料處理的本質,並且從根本的思維改變,調整資料處理的根本方式。從大資料帶來的思維、方法的改變中,企業也能對於現有的資料處理挑戰,有一番新的領悟與啟發。

觀念1 把程式送到資料處,而非把資料送進程式
從電腦的演進史來看,圖靈計算機可以說是現代計算機架構的原型,圖靈計算機的設計就是把資料視為可動的,將資料移動到運算單位與程式碼中進行運算,而程式碼本身則是被視為「不動」的。這樣的計算模型沿用已久,甚至在電腦科學的領域中,已被視為一種理所當然的設計了,但華碩雲端公司總經理吳漢章認為,這種模型最初的假設,是程式相對於資料單元,是比較大的單位,比較不易更動的模塊,因此將資料送到程式處,讓資料格式配合程式預設的輸入方式,是最合理的做法。

但是,這樣的假設在大資料浪潮下,已經逐漸失去絕對合理性。網際網路的爆炸性普及、社群網路、各種影音串流的結構化、非結構化資料的大量產生,都加速擴大資料量與資料的歧異性,在這種情形下,要再將資料送到固定的程式碼作處理,已不是最合理的做法。

吳漢章表示,以往是運算單元(程式碼)大於資料量,而在大資料的情境下,資料量與資料的多樣性都遠超過程式碼本身,因此,合理的設計應該是讓程式碼去配合既有的資料,這是大資料浪潮下的一個重要思維轉變。
實際上,Google的MapReduce在原始設計中,其執行效能並不理想。原因是大量的資料分散在不同的叢集(Cluster),如果要把數MB大小的資料,送到相對微小的幾KB的程式處執行,將難以達到良好的資料處理效率。當時剛進Google不久的和沛科技總經理翟本喬看出了這一點,就建議當時開發MapReduce的團隊,應將與資料相對應的程式碼送到資料所在處執行,而非將資料送到程式碼的伺服器處理,光是這樣的改變,就使MapReduce的效率增進了5到10倍。

觀念2 資料處理只要夠好,而非最好的品質
對資料處理正確性的講究,一向是資料處理的基本要求。一個在一大群資料中找出最大數字的程式,面對一萬組不同的數字群跑一萬次,即使算得再慢,仍應每次都能找出資料群中真正的最大值,如果找到的不是最大的,那就是程式設計有錯,「正確性」相對於「效率」, 一直是計算上更為重要的前提。

但是,清華大學資工系副教授,同時也是資工系Nvidia GPU研究中心負責人的李哲榮表示,就連這樣基本的觀念,在大資料浪潮的衝擊下也已面臨了動搖。以社群網路來說,其中的每個使用者都有數百個聯絡人,要從其中的互動資料交織出來的網絡,推薦每個使用者他「最可能認識」的朋友,可能就會需要花上幾十天來做,但如果只是要找「夠正確的」朋友關係來推薦,可能只需要花1分鐘就能得出解答。像在這樣非關鍵性的,即使有發生誤差也無妨的應用上,就利用到了「只求夠好,而非最好」的新觀念。

李哲榮也舉例,像是推薦系統(Amazon在使用者買完東西後,會再推薦相關產品,Google針對使用者習慣的精準廣告投放,或者Facebook的好友推薦),背後其實牽涉了複雜的統計模型、資料關聯,若要實際算出「最適合」的推薦,將會耗費大量的運算資源與時間,何況在推薦商品、朋友的行為上,即使精準性略差也不會造成嚴重影響,像此類的資料處理,最適合用「只求夠好,而非最好」方法來做處理,犧牲絕對的正確性來換取效率大幅提升。

觀念3 資料多不見得有價值,無用的資料更耗費資源

長久以來存在著一個迷思。網際網路、社群網站普及之後,網路上出現了大量結構化、非結構化資料,收集資料也變得相對容易。很多企業會認為蒐集越多資料,就擁有越多的訊息可供日後的分析。但實際上,企業所能處理這些資料的軟硬體資源,卻往往是有限的。吳漢章表示,一旦不需要的資料進入到企業系統內,其傳輸、運算、分析、儲存、甚至是刪除資料,都需要花費額外計算成本,在資料篩選上,每減少一個限制,資料量可能就會增加1倍,對於系統的整體負擔也就增加了1倍。

更甚者,若企業要兼顧資料處理的即時性,資料量倍增,在某些操作行為上,例如排序等,造成的運算時間增加則可能不只1倍。以快速排序演算法而言,在最差情形下,其運算複雜度是2次方關係的增加,意味著資料量變成3倍時,運算時間將不只增為3倍,而是延長為原本的9倍。

因此,吳漢章表示,在資料進入到系統的那一刻,就必須仔細考量資料在未來的可用性,舉例來說,很多人視社群網路上的留言為可貴資源,但是在更多的情況下,這些留言對企業來說,可能並沒有實際意義,也並不具備真正的商業價值,何況,網路上這些資料膨脹的速度極快,若企業想把這些資料全數收進資料庫,將造成往後資料處理、儲存上極大的負擔。

因此,吳漢章表示,系統前端的資料篩選、資料減量就成為資料處理重要的步驟,而這同時也考驗了資料處理者的判斷,以及企業策略的考量。

觀念4 人的介入與判斷,才能解決技術侷限
所有的資料處理,到最後,仍然必須回歸到實際需求的層面來探討,剝除了實際需求來談資料處理,就很容易陷入資料處理速度極限的瓶頸。雖然目前軟硬體發展、演算法設計等,都隱約讓人們看見了資料處理速度的上限,但是聖藍科技執行長王建興提醒,這些處理完的資料,最終還是為人所用的,因此,面對技術極限,人還是能夠藉由權衡(Tradeoff)、取捨、對現況的判斷,以身而為人的感受能力,在各種技術的限制間,取得一個平衡點,而就這是機器所不能及之處。

王建興以一項產品的設計作為舉例。奇揚網科(Awind)在其WiPresent產品中,設計要讓手機壓縮影音串流,同時以Wi-Fi傳送到電視上播放。但是,團隊在設計階段遇到了一個難題:若是要壓縮影片至Wi-Fi頻寬可順暢傳輸、播放的大小,則在手機端需要花費較長的壓縮時間,但另一方面,若是要減少手機上影片的壓縮率,因為影片容量較大,則會讓傳送至電視的速度變慢。

王建興認為,以上的例子,在理論和硬體限制上,都沒有兩全其美的解決辦法。壓縮速度與傳輸速度都存在著各自的技術極限,以及隨之而來不可避免的權衡,但是,設計者仍然可以在其中做出取捨,在能夠接受的壓縮率範圍內,盡量讓傳輸順暢進行。王建興認為,類似這類在技術限制下尋找平衡點的做法,在大資料趨勢與即時處理的要求下,是一種值得參考的方針與思維。


Advertisement

更多 iThome相關內容