漫談對大數(shù)據(jù)的思考
“大數(shù)據(jù)”已躍升為我們行業(yè)中最受炒作的術(shù)語之一,但炒作不應(yīng)使人們忽視這樣一個事實,即這是數(shù)據(jù)在世界上的作用真正重要的轉(zhuǎn)變。數(shù)據(jù)源的數(shù)量、速度和價值正在迅速增加。數(shù)據(jù)管理必須在五個廣泛領(lǐng)域發(fā)生變化:從更廣泛的來源提取數(shù)據(jù),使用新的數(shù)據(jù)庫和集成方法改變數(shù)據(jù)管理的組織方式,在運行分析項目中使用敏捷原則,強調(diào)數(shù)據(jù)技術(shù)將數(shù)據(jù)與噪聲分開的解釋,以及精心設(shè)計的可視化的重要性使該數(shù)據(jù)更容易理解。這意味著我們不需要大的分析項目,相反我們希望新的數(shù)據(jù)思維滲透到我們的日常工作中。
- 數(shù)據(jù)在我們的活動中扮演的角色發(fā)生了重大變化。
- 盡管大數(shù)據(jù)這個詞經(jīng)常被用來描述這種變化,但這不僅僅是我們希望使用多少數(shù)據(jù)。
- 你可能想把“大”應(yīng)用到數(shù)據(jù)的重要性上——數(shù)據(jù)在我們的生活中發(fā)揮著更大的作用,而不只是從字面上理解“大數(shù)據(jù)”。
- 大數(shù)據(jù)是一個引起大量炒作的術(shù)語。但我認為在這種情況下抵制我們通常對炒作的厭惡很重要——思維正在發(fā)生重大變化。
- 這種轉(zhuǎn)變迫使我們改變許多長期以來對數(shù)據(jù)的假設(shè)。它開辟了新機遇,但也需要新思維和新技能。
一 數(shù)據(jù)世界正在發(fā)生怎樣的變化
數(shù)據(jù)是凌亂的
在結(jié)構(gòu)上
- 傳統(tǒng)上,數(shù)據(jù)被認為來自組織良好的數(shù)據(jù)庫,這些數(shù)據(jù)庫具有受控模式,具有強大的驗證條件。
- 但我們現(xiàn)在看到的數(shù)據(jù)有多種形式:日志文件、消息隊列、電子表格。這些數(shù)據(jù)分散在整個組織及其生態(tài)系統(tǒng)中。
- 通常很少或沒有模式來控制其結(jié)構(gòu)。
- 數(shù)據(jù)通常是不統(tǒng)一的,每個元素都具有不同的屬性。
在內(nèi)容上
- 由于存在多個數(shù)據(jù)源、眾包甚至自動推理和發(fā)現(xiàn)數(shù)據(jù)——數(shù)據(jù)質(zhì)量存在很大問題。
數(shù)據(jù)是分散式
- 通過Internet的廣泛可用性和易于訪問意味著數(shù)據(jù)來自更多的貢獻者。
- 這引發(fā)了處理來自不同來源的許多更新、確保人們輸入有用數(shù)據(jù)以及考慮如何檢查輸入數(shù)據(jù)的一致性和準確性等問題。
我們曾經(jīng)想過從信息系統(tǒng)獲取數(shù)據(jù),
但是現(xiàn)在有很多設(shè)備需要考慮。
非洲98%的互聯(lián)網(wǎng)接入點是移動的,還有更多需要考慮的:
數(shù)據(jù)是量大的
- 沃爾瑪:每小時100萬筆交易?
- eBay:每天50PB的數(shù)據(jù)?
- Facebook:400億張照片
龐大的數(shù)據(jù)量足以擊敗許多長期采用的數(shù)據(jù)管理方法,集中式數(shù)據(jù)庫系統(tǒng)無法處理大量數(shù)據(jù),因此不得不使用集群。
最重要的是數(shù)據(jù)是有價值的
- 每年3000億美元:美國醫(yī)療保健
- 60%增長:零售利潤率
- 盡管很難獲得關(guān)于充分利用數(shù)據(jù)的價值的確切數(shù)字,但亞馬遜和谷歌等公司的成功在很大程度上歸功于它們對數(shù)據(jù)的有效利用。
二 如何應(yīng)對這些變化
數(shù)據(jù)世界中正在發(fā)生的變化,我們需要了解軟件開發(fā)世界如何響應(yīng)這些變化。
數(shù)據(jù)來自許多來源
提取數(shù)據(jù)很復(fù)雜,但真正的問題是知道去哪里找
- 由于有用數(shù)據(jù)存在于如此多的地方,挑戰(zhàn)往往更多地在于認識到其中一些數(shù)據(jù)的價值。
- 通常只有每天使用應(yīng)用程序的技術(shù)人員才知道有用數(shù)據(jù)隱藏在哪里。他們可能知道數(shù)據(jù)是什么,但通常不知道它的潛在價值有多大。
- 業(yè)務(wù)人員通常意識到問題,但不知道數(shù)據(jù)如何幫助他們,如果數(shù)據(jù)存在,它在哪里。
所以跨職能協(xié)作必不可少
- 如果要將重要問題與數(shù)據(jù)匹配,則需要具有業(yè)務(wù)知識的人員、知道存在哪些數(shù)據(jù)的人員以及能夠了解如何處理數(shù)據(jù)以揭示問題的人員之間的協(xié)作。
- 了解哪些數(shù)據(jù)可用也是一項多學(xué)科工作。數(shù)據(jù)庫人員通常都非常了解數(shù)據(jù)庫,但要考慮更多的來源,讓廣泛的技術(shù)專家參與進來就很重要了。
數(shù)據(jù)管理的作用需要重新思考它是
- 旨在實現(xiàn)企業(yè)中單一、連貫和一致的數(shù)據(jù)模型
- 主要基于關(guān)系數(shù)據(jù)庫
- 專注于僅存儲經(jīng)過驗證的數(shù)據(jù)
這些變化需要新的策略
- 需要新的數(shù)據(jù)庫技術(shù)來更直接地支持應(yīng)用需求。應(yīng)用程序團隊現(xiàn)在需要考慮哪種數(shù)據(jù)庫技術(shù)適合他們的情況,而不是對所有事情都使用單一(關(guān)系)技術(shù)。
- 數(shù)據(jù)的集中管理正在讓位于管理其自身數(shù)據(jù)需求的特定應(yīng)用程序。中央小組現(xiàn)在需要專注于實現(xiàn)應(yīng)用程序團隊之間的有效共享。
關(guān)系單一文化的時代已經(jīng)結(jié)束,我們現(xiàn)在不得不問什么是滿足我們需求的正確數(shù)據(jù)庫
- 二十多年來,關(guān)系數(shù)據(jù)庫一直是企業(yè)中占主導(dǎo)地位的數(shù)據(jù)存儲技術(shù)。
- 他們過去曾抵制過許多挑戰(zhàn),但NoSQL數(shù)據(jù)庫的興起正在打破這種控制。
面向聚合的數(shù)據(jù)庫
適合
- 作為單個工作單元(聚合)讀取和操作的單一層次數(shù)據(jù)結(jié)構(gòu)。
- 集群操作,因為聚合是很好的分布單位。
不是為了
- 以不同的結(jié)構(gòu)對數(shù)據(jù)進行切片和切塊時
- 面向聚合的數(shù)據(jù)庫將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)存儲在一個單元中,而不是將數(shù)據(jù)分布在許多表中的許多行上。
圖數(shù)據(jù)庫
適合
- 具有豐富連接結(jié)構(gòu)的小數(shù)據(jù)單元
- 圖數(shù)據(jù)庫將數(shù)據(jù)表示為節(jié)點和弧形圖結(jié)構(gòu)。它們專為快速遍歷圖形結(jié)構(gòu)而設(shè)計,并支持可以根據(jù)圖形構(gòu)建的查詢。
我們發(fā)現(xiàn)NoSQL數(shù)據(jù)庫適合企業(yè)應(yīng)用
- 現(xiàn)在大型集團已經(jīng)使用多個NoSQL數(shù)據(jù)庫構(gòu)建了關(guān)鍵的生產(chǎn)系統(tǒng),特別是Couchbase、Riak、MongoDB(面向聚合)和Neo4J(圖形)。項目團隊報告了出色的生產(chǎn)力,我們會推薦這些用于未來的項目。
但這并不意味著關(guān)系已死
- 關(guān)系數(shù)據(jù)模型以其簡單的表格結(jié)構(gòu)和強大的查詢語言,是多種數(shù)據(jù)的正確選擇。
- 關(guān)系數(shù)據(jù)庫是成熟的技術(shù),很多人都熟悉并且擁有良好的工具。除非對其他事情有充分的論據(jù),否則它們目前仍然是默認選擇。
NoSQL、Relational和其他數(shù)據(jù)庫技術(shù)都擺在桌面上
- 關(guān)鍵點是數(shù)據(jù)存儲不是決定的時候結(jié)束了?,F(xiàn)在必須根據(jù)如何使用該數(shù)據(jù)來主動選擇數(shù)據(jù)庫。
我們稱之為多語言持久性
- 企業(yè)應(yīng)該期待針對不同應(yīng)用程序的多種數(shù)據(jù)存儲技術(shù)。
- 當數(shù)據(jù)集具有不同的特征時,即使是單個應(yīng)用程序也可以使用多語言持久性。
許多組織將應(yīng)用程序與共享數(shù)據(jù)庫集成
- SQL作為標準查詢語言的存在實現(xiàn)了共享數(shù)據(jù)庫集成。
- 它通過共享數(shù)據(jù)庫結(jié)構(gòu)將應(yīng)用程序相互耦合,使應(yīng)用程序更難快速更改。
- 它為所有應(yīng)用程序使用單一的數(shù)據(jù)庫技術(shù)和模式,這使得針對單個應(yīng)用程序的需求使用適當?shù)臄?shù)據(jù)庫技術(shù)變得更加困難。
- 這使得簡單案例的報告更容易,因為SQL的報告工具很多。但報告需求通常會降低應(yīng)用程序的速度,并且只能報告共享數(shù)據(jù)庫中的數(shù)據(jù)。
現(xiàn)在我們封裝數(shù)據(jù)庫并通過服務(wù)API共享
- 應(yīng)用程序數(shù)據(jù)庫僅由單個應(yīng)用程序使用。任何外部集成都是通過該應(yīng)用程序構(gòu)建和公開的API完成的。
- 通過應(yīng)用程序API封裝數(shù)據(jù)庫,客戶端不再直接耦合到數(shù)據(jù)庫技術(shù)和結(jié)構(gòu)。
- 應(yīng)用程序API提供比底層數(shù)據(jù)庫模型范圍更廣的數(shù)據(jù)模型。
- 一個問題是分析客戶可能需要專門為他們創(chuàng)建的API才能以有效的方式獲取重要數(shù)據(jù)。如果這對應(yīng)用程序開發(fā)團隊不重要,可能會出現(xiàn)令人沮喪的延遲和交接。ServiceCustodian方法可以幫助解決這個問題。
三 大數(shù)據(jù)分析過程
- 業(yè)務(wù)領(lǐng)導(dǎo)使用他們的戰(zhàn)略目標來指示應(yīng)該使用哪些指標進行分析。
6個月對于有效行動來說太長了
- 迅速采取行動具有競爭優(yōu)勢。
- 長周期時間會導(dǎo)致白費力氣,因為在您開始嘗試使用數(shù)據(jù)之前,很難理解哪些數(shù)據(jù)是重要的。
- 最重要的是,緩慢的循環(huán)時間會降低學(xué)習(xí)能力。每次通過該循環(huán)時,都會了解到哪些分析形式是有價值的,并且對下一步應(yīng)該做什么有更深入的了解。學(xué)習(xí)的速度放大了整個循環(huán)中速度的優(yōu)勢。
因此,需要一種具有快速周期的敏捷方法
- 縮小每個周期的范圍,以便可以快速運行整個周期。
- 使用一個周期的結(jié)果來決定下一個周期要做什么。
一個敏捷分析的例子
首先建立一個高層次的業(yè)務(wù)目標:我們?nèi)绾巫R別即將離開的高價值客戶并激勵他們留下來?
接下來,選擇目標的一個小而簡單的方面作為分析起點: 離開的客戶有哪些共同特征?
離開的顧客有哪些購物行為?
與業(yè)務(wù)利益相關(guān)者一起驗證結(jié)果的有用性和可操作性,并選擇另一個方面進行探索。
使敏捷分析方法發(fā)揮作用的一些指南
- 構(gòu)建小團隊,一次只專注于一個方面。
- 不要試圖構(gòu)建一個宏大的分析平臺,而是解決特定問題并收獲一個平臺。
- 利用輕量級的工具,可以根據(jù)需要逐漸建立能力。
- 將分析操作視為一個敏捷軟件開發(fā)項目,遵循敏捷應(yīng)用程序開發(fā)的常規(guī)原則。
一項針對美國3,141個縣的腎癌發(fā)病率的研究揭示了一個顯著的模式。腎癌發(fā)病率最低的縣大多是農(nóng)村,人口稀少,位于中西部、南部和西部的傳統(tǒng)共和黨州。你怎么看這個?
難道是因為...
- 共和黨統(tǒng)治?
- 農(nóng)村空氣和環(huán)境干凈嗎?
現(xiàn)在考慮腎癌發(fā)病率最高的縣。這些境況不佳的縣往往大多是農(nóng)村、人口稀少,并且位于中西部、南部和西部的傳統(tǒng)共和黨州。
這是由于小數(shù)定律
- 農(nóng)村人口少
- 人口少是樣本量小
- 較小的樣本量傾向于極端
對這種結(jié)果的解釋就像張三和李四各自從罐子里抽出彩球。每個罐子里裝有相等數(shù)量的紅球和白球。張三抽了四個球,李四抽了七個。就概率而言,張三會比李四看到更多的所有相同顏色球的平局(8倍)。
這是統(tǒng)計數(shù)據(jù)進行錯誤直覺推理的一個例子
- 人們通常會錯誤地將原因歸因于偶然事件。
- 這種在隨機中看到模式的傾向可以通過多種方式來欺騙我們。
- 小數(shù)定律是概率錯覺的現(xiàn)象的眾多例子之一
- 就像光學(xué)錯覺混淆了眼睛一樣,概率錯覺混淆了我們的推理。
- 隨著我們更多地使用數(shù)據(jù),這個問題可能會變得更加普遍,因為有太多人患有概率文盲。事實上,即使是科學(xué)家和數(shù)學(xué)家也經(jīng)常被這些錯覺所愚弄。
我們有責(zé)任對自己和用戶進行概率錯覺教育
如果我們要構(gòu)建工具來讓人們挖掘大數(shù)據(jù)中的意義,我們有責(zé)任確保人們發(fā)現(xiàn)的信息不僅僅是統(tǒng)計噪聲。
自我教育
我們需要確保更好地掌握概率和統(tǒng)計數(shù)據(jù)——至少足以提醒我們可能出現(xiàn)的問題。
結(jié)合統(tǒng)計技能
參與分析的團隊需要具有統(tǒng)計學(xué)背景的人員,他們具有區(qū)分信號和噪聲的經(jīng)驗和知識。
教育用戶
我們必須通過幫助客戶和用戶理解數(shù)字的實際意義來確保客戶和用戶不是很可能是文盲。
數(shù)據(jù)科學(xué)家是新的熱門職位
“數(shù)據(jù)科學(xué)家”很快將成為我們行業(yè)中最被夸大的職位。很多人會把它附加到他們的簡歷中,以期獲得更好的職位
但盡管大肆宣傳,還是有一套真正的技能:
- 探索問題并將其表述為可以用統(tǒng)計數(shù)據(jù)檢驗的假設(shè)的能力。
- 業(yè)務(wù)知識、咨詢和協(xié)作技能。
- 了解機器學(xué)習(xí)技術(shù)。
- 編程能力足以實現(xiàn)他們正在使用的各種模型。
盡管大多數(shù)數(shù)據(jù)科學(xué)家會很樂意使用專門的工具,但這不僅僅是知道如何使用R語言。了解何時使用模型通常比能夠使用它們更重要,如何避免概率錯覺和過度擬合也很重要。
可視化在將數(shù)據(jù)轉(zhuǎn)化為洞察力方面發(fā)揮著關(guān)鍵作用
- 很難看出原始數(shù)據(jù)發(fā)生了什么。
- 良好的可視化應(yīng)該側(cè)重于數(shù)據(jù)如何告知分析目標。
- 現(xiàn)代可視化工具可以使用交互性和動態(tài)性來探索和挖掘細節(jié),同時保留整體視圖。
- 了解可視化的一個好方法是探索不同方法的示例。
- 這個“元素周期表”是一個交互式顯示,是使用不同可視化技術(shù)的重要靈感來源。
- d3.js是構(gòu)建可視化的重要工具。
- d3.js是一個允許從javascript數(shù)據(jù)綁定到DOM元素的框架,對于創(chuàng)建動態(tài)svg可視化特別有價值。
- 上述照片展示了許多使用d3構(gòu)建的有趣的可視化效果,并為可視化和實現(xiàn)技術(shù)提供了靈感。
探索可能性
- 令人印象深刻的可視化可能非常有價值,值得為創(chuàng)建它們付出相當大的努力。
- 但是不要糾結(jié)于復(fù)雜性,通??梢院敛毁M力地構(gòu)建有用的可視化效果。
- 可以嘗試使用迷你圖為值提供歷史背景。
- 在沒有任何先驗知識的情況下,花了幾個小時搜索有用的顯示(使用jquerysparklines)。
- 只有在構(gòu)建迷你圖后,才會意識到不需要其他一些數(shù)據(jù)顯示。
四 大數(shù)據(jù)是大炒作嗎
- 炒作層出不窮,但硝煙背后卻是大火。
- 數(shù)據(jù)呈現(xiàn)給我們的方式發(fā)生了重大變化,這些變化導(dǎo)致了行業(yè)響應(yīng)的適當重大行動。
- 許多權(quán)威人士,都會對未來幾年的確切變化做出錯誤的預(yù)測。然而,我相信會有重大變化。
- 與任何技術(shù)計劃一樣,大數(shù)據(jù)工作需要由業(yè)務(wù)驅(qū)動。但是在這個平臺上探索的主題意味著與技術(shù)團隊的密切合作比平時更為重要。
- 這些表明了公司發(fā)展的能力和個人獲得的技能。
任何軟件項目都應(yīng)該融入“大數(shù)據(jù)”思想
- 許多軟件項目可以做更多的工作來有效地公開他們的數(shù)據(jù)。
- 尋找更多可以有效提取數(shù)據(jù)的地方
- 與客戶和用戶密切合作,探索哪些數(shù)據(jù)有用。
- 小心避免概率錯覺
- 嘗試可視化,從可以快速構(gòu)建的簡單可視化開始
- 所有這一切都需要創(chuàng)新思維,而創(chuàng)新思維通常來自在自適應(yīng)過程中運作的小型多元化團隊。