天天看點

什麼是大資料:資料再多也不怕,品質始終線上

作者:袁文澤部落格

#頭條創作挑戰賽#袁文澤部落格帶你用大白話了解什麼是數字化轉型,為了友善閱讀,請關注@袁文澤部落格

前面聊到網際網路技術可以幫助我們創造出數量巨大又豐富的資料,我們可以采用這些資料開展“數字化”業務。那麼接下來,如何從這些資料中提煉出有價值的業務知識就成了一個需要解決的問題。

人們解讀資料并從中提煉有用知識的技術叫作資料分析,資料分析指導人們生活實踐的曆史非常悠久。

在傳統的資料分析活動中,資料的規模并不大,可以依靠人力簡單計算來總結經驗。然而,在當今資訊爆炸的時代,資料的充足性大多可以保障,此時對海量資料的分析能力就顯得格外重要了。試想,網際網路每天有那麼多資料被制造出來,就是全地球的人不吃不喝“光數數”,也分析不了那麼多内容,于是就得依靠計算機自動地進行資料計算,讓機器幫助我們進行資料的分析,這裡就引出了本節的主角——大資料技術。

大資料技術所擅長的,就是從大量的資料中以非常高的效率挖掘出有用的業務知識。那麼,大資料技術産生的背景是什麼?它又是如何實作高性能的資訊處理的呢?

規模的困境:效率決定一切

如果說網際網路解決了資料的“開采”問題,則大資料解決了資料的“加工”問題。為了從資料中獲得價值,我們不僅需要資料,還得有處理資料的能力。在數字化時代,資料很多,但是從資料中提煉有價值的知識卻十分困難。一方面需要設計“精巧”的資料分析方法,另一方面也要有強大的執行這些資料分析方法的技術手段。而計算機就是技術手段的重要“實體載體”。

我們都知道,計算機的計算速度與人相比是快很多的,比如我們想用一張Excel表格統計出公司的利潤率,基本上都是一秒鐘出結果。既然計算機這麼厲害,我們是不是就不必擔心資料量太大而處理不了的情況了?顯然,事情并沒有這麼簡單。

盡管平時我們用計算機代替人做一些腦力工作的時候,計算機的運算能力和記憶力看起來已經很強大了,但其實和現在大多數的自動化或智能化業務所需要的資料規模相比,這個能力還遠遠不夠。

家用計算機一般處理幾十條或幾百條資料也就到頭了,而當資料規模真的很大的時候,如大到萬級、百萬級,甚至億級,那麼計算機可能比人還“傻”還“慢”。人算不出來的時候,至少還會估計個大概結果,但是計算機如果在某個“公式”處算不動了,就隻會“卡”在那裡,什麼也做不了,甚至一着急單擊“強制退出”按鈕,就會把之前好不容易算好的資料結果也給“沖”掉了。這種糟心經曆,相信很多人在嘗試用Excel計算規模比較大的資料時都曾遇到過。

如今很多企業都有自己的業務資訊系統,通過網際網路,這些業務資訊系統可以非常輕易地收集動辄“千萬級别”的資料。例如每年的“雙11”期間,任何一個電商平台的使用者量都很可觀。在這麼大的客流中,考慮到每個人又積攢了幾個月甚至一整年的購物清單,需要被計算的資料規模着實驚人!我們創造資料的速度有多快,我們分析這些資料的能力就需要有多強。

在數字化場景下,對大規模資料的處理是十分常見的。然而,在對大規模資料進行計算的時候,光用Excel這種基礎軟體是不行的,資料也不是存在電子表格裡的,而是存在“資料庫”中的。軟體工程師需要自己開發代碼來“運算”這些資料,在這個過程中,需要定制一些複雜的算法來探索資料中“隐含”的關鍵業務知識。

代碼編寫情況會極大地影響資料分析的效率。如果代碼設計得比較優雅,從資料中挖掘知識的效率就會更高。反之,如果代碼設計得非常笨拙,代碼“跑”一遍的效率就會非常低,分析人員從資料中找規律的速度也就比較慢。

在實踐中,通過資料分析找規律是非常耗費時間的。這是一個需要“耐心”探索的任務,資料分析人員需要根據每次“跑”代碼的結果,不斷地調整資料分析政策,進行非常多次的疊代嘗試,最終才能獲得比較“可靠”的業務知識,也就是應用效果好的技術模型。

比方說,影響使用者購買某件産品的因素有10個,包括性别、年齡、位址、喜好、上次購買時間、是否為老使用者、使用者是否使用優惠券等,但是我們不知道究竟是哪幾個因素發揮了作用。是以,我們需要采用組合因素驗證的方法來分别進行計算。

在最複雜的情況下,我們可能需要做将近1000次實驗才能得到比較好的統計分析結果。如果一次實驗需要計算3天,那麼我們需要用将近10年才能得到有價值的業務規律,真等到那個時候,估計連公司都沒有了,更不要說業務了。

時間,永遠是數字化轉型中非常重要的關鍵變量。如果需要等待的時間太久,則即使在理論上技術方案有可行性,但在實用化落地上也是行不通的!

也就是說,如果機器對資料的分析處理速度非常慢,那麼分析人員就不能在有意義的時間範圍内得到有用的知識。如果要耗費極大的時間代價才能發現一些微不足道的規律,那麼這種模式是沒有辦法“靈活”地支援業務創新工作的。

于是,為了很好地解決上面提及的問題,在大規模資料場景下,計算機在算數的時候依然能夠“表現優秀”的技術能力,就成為數字化轉型中十分重要的技術主題。工程師們發明了一系列的技術方案來解決這方面的問題,我們給其起了個統一的名字,就叫作大資料技術。

分布式政策:一起幹活力量大

顧名思義,大資料就是面向大規模資料進行計算處理的應用技術,大資料技術的概念在過去十幾年間的熱度幾乎沒有下降。而最近,随着“公有雲”“資料中台”等新潮詞彙的大力宣傳推廣,大資料幾乎成了大中型企業進行數字化轉型的技術标配。

那麼,大資料技術,是如何實作高效率的呢?這裡面的基本原理又是什麼?

計算機在分析處理資料的時候,由于硬體裝置的中央處理器(CPU)和記憶體的容量是非常有限的,是以資料通常是一點一點地進行計算的。畢竟,飯要一口一口地吃才行。而當資料量大了,飯也就吃不完了!高配計算機可以一口氣多吃點,而普通計算機本來就“笨”,再随着裝置老化,“吃飯”的速度就會越來越慢。

于是,我們可以非常直接地想到使用高品質計算機來解決大資料計算的問題。然而在面對網際網路場景下産生的如此驚人數量的資料時,這種高品質計算機需要達到超級計算機的性能才行。這裡所說的超級計算機其實就是算力超級強大的單體計算機主機,比如大陸非常有名的“神威·太湖之光”和“天河二号”。那麼問題來了,數字化這件事每個企業都得面對,各位老闆們也要買超級計算機嗎?

一台“天河二号”的造價是25億元,每天光耗電費用就超過60萬元。是以,看着研究成果還可以,但可能大部分企業真付不起這個錢!

那怎麼辦呢?既然買一台這麼高精尖的計算機來處理大資料是不現實的,倒不如找多台普通的計算機一起幹活比較靠譜。一個人胃口小一些沒關系,大家一人一口總能吃完!多台普通計算機的成本肯定會比單台高性能計算機的成本低很多,這種技術政策使得處理海量資料成為一般企業“消費得起”的技術項目。

多台普通計算機代替一台“超級計算機”的方案,技術圈也有個比較專業的名字,叫作“分布式架構”。這些計算機在一起工作的時候,需要互相連成網絡,實作資訊的即時通信,進而達到工作任務的配合。看到了吧,網際網路技術再次發揮了作用,隻要有網絡,就有了連接配接,就有了提供資訊的管道。

一個重要的事實再次印證了,無論是人還是機器,隻要被連接配接在一起,就會産生更多的創意并提高效率!

“分布式架構”在現實場景中,具體是怎麼解決大資料的“疑難雜症”的呢?

例如,分析某個區域一天之内發生的1億筆線上支付交易記錄,并使用某個計算機算法來自動找到其中所有的可能詐騙交易。在使用單台普通計算機計算的時候,處理這麼多資料需要花費1個月,要是用超級計算機來計算,那麼隻要2分鐘就可以。但是超級計算機我買不起,我隻有普通計算機,也不想等太久,畢竟上司催得緊,我該怎麼辦?有同僚出了個主意,找300多台計算機一起工作,每台計算機處理30多萬條資料,隻需要等2小時就好了。

用這種方法,每台計算機在自己的那份資料中把詐騙交易找到,然後彙總到某台計算機上,最後把結果一起輸出,任務就完成了!

随着個人PC成本的逐漸降低,Google公司的工程師率先提出了上面這個“分布式架構”的具體實作方法,并提出了其中兩個特别重要的技術架構:GFS(分布式的資料存儲架構)和MapReduce(分布式的資料計算架構)。其中,GFS解決了大規模資料的存儲問題,而MapReduce解決了大規模資料的計算問題。

關于“分布式”理念的提出和技術實作這裡還有一個小插曲:Google在提出“分布式”技術時隻公開了理論上的方法,這個方法後來被一個名為Doug Cutting的軟體工程師“苦哈哈”地用了2年業餘時間把代碼實作了,并非常“善良地”公開給所有的程式員免費使用,這些“免費”的代碼也就是非常知名的Hadoop項目。Doug Cutting成全了自己的“情懷”,坑了Google,因為盈利點沒了!

Hadoop項目提供了大量可以簡單調用的應用程式接口,程式員們在設計并實作軟體應用的時候,如果需要使用多台計算機的大資料存儲能力或大資料計算能力,就不用自己再重複“造輪子”實作這些基礎功能了。Hadoop讓“高大上”的大資料技術走下“神壇”,走進各個軟體公司的工作室。大資料是以變成了一種“即插即用”的親民技術。

企業級架構:從“雲”到中台

前面講了這麼多,我們知道“分布式”其實就是多台計算機一起工作的資料處理技術方案。同時,我們可以把多台計算機,以及能夠讓這些計算機好好配合、協作工作的軟體架構,統稱為“雲”。是以,“分布式計算”也叫作“雲計算”,“分布式存儲”也叫作“雲存儲”,“雲計算”和“雲存儲”都是“雲”的具體内容。

雲=多台計算機+分布式的軟體架構

這幾年,“雲”這個概念實在是太火了。資料上雲,算法上雲,應用上雲,服務也上雲,各個企業都争先恐後地采用基于雲的技術架構。有了雲,就有了能夠運用大資料的神秘能力!

那麼,企業該如何獲得“雲”的能力呢?有兩種基本方法,一是自己建構“雲”,二是租用“雲”。

企業自己建構“雲”就相當于自己花錢搭建一個機房,買很多台計算機擺上,連上網線,在每台計算機上面都安裝并配置好支援大資料應用的軟體架構,比如前面提到的Hadoop。

企業租用“雲”,就是找一個合格的第三方公司,讓這個第三方公司來完成建構“雲”的麻煩事兒,并且承包運作具有強大“雲”能力的機房。此時,這些需要獲得大資料技術能力的企業可以花錢租用這個第三方公司對外提供的“雲”服務。如果這個第三方公司把某一固定數量的大資料資源提供給一家企業使用,那麼這個“雲”就是“私有雲”;如果把同一數量的大資料資源開放共享給多家企業使用,各家企業按需付費,那麼這個“雲”就是“公有雲”。

一般自己建“雲”的企業都是那些财大氣粗的大企業。畢竟,購買一堆普通計算機的成本也不是一個“小數目”。這些企業還有一個特點,就是特别重視資料安全和資料價值,不希望自己的資料被“偷”,或者自己的資料被别人莫名其妙地用了,進而陷入“資訊安全”方面的坑裡。例如銀行機構,基本上都會自己蓋園區、造機房。

什麼是大資料:資料再多也不怕,品質始終線上

圖檔來自網絡

當然,對于業務不是太敏感的企業,自己“燒錢”建設“雲”未免過于奢侈了,是以通常優先考慮“租用雲”的解決方案,并且大多租用“公有雲”。咱買不起房,還租不起房嗎?租房不用花錢買地、不用裝修、不用修繕,直接住就行了,省錢又省心。機房有人看着,網絡和程式有人維護,用多少計算機的計算和存儲資源,就花多少錢,還不浪費!國外主要的“公有雲”有亞馬遜的AWS和微軟的Azure,而國内比較主流的“公有雲”既包括名字“響亮霸氣”的阿裡雲、華為雲,也有名字十分接地氣的網易雲和百度雲。

由于可以對大資料技術能力進行租用,在涉及和大資料相關的“數字化”業務時,再也沒有經濟成本方面的門檻,任何中小企業都可以對大資料技術“躍躍欲試”了。

當然,除了“私有雲”和“公有雲”,企業對大資料技術還有一種更加省力的玩法,就是直接從具備大資料技術能力的第三方公司擷取資料分析服務,而不必關心這些服務背後是怎麼工作的。能夠直接提供資料分析服務的第三方公司也叫作行業SaaS廠商。

什麼是大資料:資料再多也不怕,品質始終線上

圖檔來源于網絡

“雲”隻提供底層的大資料處理功能,而SaaS則是在“雲”的基礎之上,結合“中台”的業務資料和具體的計算分析引擎,提供的綜合資料服務,可以對特定的領域和特定的行業提供企業級的資料支援。

我們都知道阿裡巴巴是一家非常厲害的企業,其經營的淘寶平台上有成千上萬個小商戶在賣東西,阿裡巴巴把這些商戶的交易資訊都收集起來,放在自己建設的“中台”上,又搭建了很多資料分析算法來分析“中台”上的資料。特定的算法加上這些算法處理的資料結果,就形成了有價值的SaaS資料服務。這就像一台提前把焦距和色彩都調好了的傻瓜相機一樣,拍照的時候需要什麼風景效果,直接“擷取”就可以了。

不同的資料服務可以用來分析不同的業務知識,給其他中小企業進行業務賦能。例如,有的算法可以預測使用者買哪種商品,有的算法可以評估産品的品質,有的算法可以進行商品比價和排序。如果一家企業想進行産品設計、客戶管理或營銷活動,則可以在自己設計的App或小程式中,調用這些資料服務,對正在開展的業務進行數字化更新。

“中台”就像航空母艦似的,它擁有足夠多的資料“燃料”,企業如果挂靠在“中台”上,這些“燃料”就會成為企業業務增長的助推劑。

什麼是大資料:資料再多也不怕,品質始終線上

圖檔來自網絡

關于“中台”,後面的章節中會詳細讨論,畢竟“中台”是在企業數字化過程中扮演的一個非常重要的角色,是銜接從業務到資料,再從資料到業務的重要“樞紐”。

該圖是為企業提供雲服務的大型資料中心一角,需要專門的工程技術人員來對這些伺服器進行日常的監控和維護。将大資料基礎能力外包給專業的第三方公司來做,是目前比較流行的做法。

繼續閱讀