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