做者:燕飛算法
燕飛,Kyligence 大數據老司機,擁有超過15年的大數據/數據倉庫領域從業經驗,對大數據/數據倉庫的建設規劃、架構設計、技術體系、方法論及主流廠商的產品和解決方案,均有深刻的研究和實踐。數據庫
【開胃菜】網絡
十五年前,剛開始工做,從帝都回老家。架構
某長輩和善的問我:「工做了啊,作什麼的?」機器學習
我躊躇半天答曰:「挨踢(IT)。」性能
長輩不假思索的來了一句:「哦,在中關村賣光盤啊!」學習
我......我.....我......(叔叔,你知道的太多了)大數據
【副菜】架構設計
五年前,一晚上之間,「大數據」一詞開始紅遍大江南北,再碰到別人問我時,我終於能夠用一個網紅詞來輕鬆回答:「作大數據的!」設計
(感謝移動互聯網的發展,感謝各大IT廠商的炒做,感謝國家的重視和規劃,感謝全部TV和AV)
但就在上個週末,跟老媽電話聊家常時,她忽然很好學地問了我一個頗有深度的問題: 「我知道你是作大數據的,但大家大數據到底都在作些什麼?」
我一時詞窮,不知道該從何提及。而相似的問題在知乎上也常常被一些即將面臨就業、被「大數據」三個字圈粉、但願成爲數據人的莘莘學子們所追問,由於人懶,基本上都沒有好好回答過。
因而,爲了給普及「大數據」貢獻點綿薄之力,爲了讓邊緣人士們對大數據多一點基本理解,也是爲了能回答老媽的問題,我決定寫篇文章(省點電話費)來介紹一下大數據以及數據人的平常工做。
大數據雖然已是你們耳熟能詳的熱詞,但數據領域裏的許多術語和概念仍然會讓人不明就裏,因此我準備從「作飯」這個普通人應該都有基本瞭解,老媽更是熟稔於心的領域來切入。
【主菜】
正所謂「巧婦難爲無米之炊」,作飯首先得有食材,大數據也同樣,沒有數聽說什麼都是扯淡,因此數據就是數據人的食材(只要有數據,我不用吃飯)。
作飯一般都要包括「買菜~洗菜~配菜~炒菜」這幾個必需環節,不管你是開飯店仍是家裏每日三餐,作飯的規模大小會有不一樣,但流程倒是同樣的。而這幾個環節其實正好對應了數據人的平常工做內容:買菜(數據採集)~洗菜(數據清洗)~配菜(數據建模)~炒菜(數據加工)。
一、買菜(數據採集)
買菜,出門首先要考慮去哪裏買,到地以後溜達溜達看看買什麼食材,看中一個以後討價、還價、交錢,肉、蛋、青菜,各類要買的食材都得按這個流程來一遍,買齊以後就走人回家了。
對於數據人來講,咱們把這個買菜的過程叫作數據採集。
菜市場就是咱們一般所說的數據源。
買菜的選擇不少:超市(種類較少,質量上乘),農貿市場(種類較多,菜品通常),露天早市(啥均可能有,運氣好還能吃到野味)。
數據源其實也同樣,數據庫(超市)中存儲告終構化的業務數據、交易數據,傳感器(農貿市場)產生大量半結構化日誌數據、機器數據,網絡上(早市)
充斥着各類良莠不齊的非結構化數據。
到了菜市場咱們得選菜,全部的食材我都想吃,但錢永遠是不夠的,因此我只能有選擇性的買,這個過程叫數據調研,哪些數據是有用的,哪些數據用得起,得有個篩選。
溜達了一圈,肯定要買豬肉、雞蛋和黃瓜,得跟賣家挑肥揀瘦、討價還價、敲定斤兩,這個過程叫數據接口規範。
費勁口舌,勞心勞力把菜買齊以後提菜回家,這個過程叫數據傳輸。
根據買菜方式、習慣的的不同,數據採集還能夠細分出不少類型:
二、洗菜(數據清洗)
洗菜就很好理解了,不管哪裏來的食材,都多少存在衛生或者質量問題,買回來後都得洗乾淨、摘清楚才能吃,否則小則影響口感,大則損害健康。
數據也是同樣,拿回來以後得檢查一下,數據內容有沒有缺斤少兩,數據值裏有沒有爛菜葉,否則後面的報表、分析出來的結果就全是錯誤結論了,咱們把這個檢查、糾正數據自己錯誤的過程叫作數據清洗。
因爲數字世界裏各類數據源的多樣性、複雜度遠遠高於現實生活裏的菜市場,數據清洗流程須要面對和處理的問題也就遠遠多於洗菜,爲了解決和防範數據產生、使用過程當中出現的各方面問題,數據領域細分出了一個專門的研究方向叫數據治理,好比:
三、配菜(數據建模)
配菜指的是根據要炒什麼菜,將須要的各類食材事先搭配好放在一塊兒,好比說咱們要炒木須肉,那就把豬肉、雞蛋、黃瓜都洗淨、切好放在一個碗裏,這樣在炒菜的時候能夠手到擒來,無需處處找食材,可以很好的提高炒菜的效率。
通常家庭作飯可能不會嚴格這麼作,但對於餐飲行業來講,這是必備環節,想一想買回來一車的食材,洗淨、切好以後,若是沒有必定的擺放規律,不能充分保證大廚炒菜時的效率,客戶半天吃不到菜,那這個飯店的翻檯率和回頭率絕對高不了,仍是趁早關門大吉。(老媽是個統籌規劃能力很強的精細人,不管是宴請賓客仍是每日三餐,都會在炒菜以前把各個菜所須要的食材進行事先搭配,因此讓我得以瞭解。)
而在數據工程裏,也一樣有個專業性很強甚至被神話的配菜流程,這就是傳說中的數據建模。數據建模就是創建數據存放模型,把各個數據源過來的各類數據根據必定的業務規則或者應用需求對數據從新進行規劃、設計和整理。
配菜這個流程也許在作飯過程當中不起眼,有時候無關緊要,可是在數據工程裏,數據建模倒是個很是關鍵的環節,因此多說兩句。
數據的種類之多、複雜度之高遠遠超過食材,好比一個銀行,內部和業務、流程、管理相關的IT系統通常都超過100個,這也就是100多個菜市場,而每一個菜市場可以提供的食材少則數百個,多則成千上萬個,這都放在一塊兒就是幾十萬個食材,再加上外部更加複雜的其餘數據源,這麼多不一樣類型、不一樣標準的食材放在一塊兒,怎麼才能讓後面的炒菜更加高效和科學,其複雜度和可研究性也的確遠遠高於真正的配菜。
正由於如此,在數據發展史上出現了很多專業的建模(配菜)方法論:
各類方法論都有其產生背景、適用場景和支持者,爲了避免引發戰爭,這裏就不作深刻討論了
在這些方法論基礎上,通過不斷的實踐和研究,一些領先的數據廠商推出了標準的行業數據模型,什麼叫行業數據模型呢,由於每一個行業的業務特色不同,好比說銀行業、電信業、零售業的業務模式就有很大差別,數據也是不同的,因此不一樣行業的數據怎麼擺放,數據模型怎麼設計,有着很強的行業獨特性,因此每一個行業都須要本身特定的數據模型,這叫術業有專攻。
上面這段話沒看懂?沒事。簡單來講,行業數據模型就是「飯店籌備攻略」。
好比說你以爲川菜很賺錢,想開個川菜館,但你只是個標準吃貨,只吃過豬肉沒看過豬跑,怎麼辦?沒事,我這有本「川菜開店籌備攻略」,裏面什麼都有:
因此,萬事具有,只欠東風,你只要找個門面,僱兩個藍翔畢業生,咱們就能夠開業大吉,財源滾滾了。什麼,找門面很麻煩,沒事,咱們連店面均可以提供,歡迎加入咱們的加盟連鎖計劃,咱們不但提供攻略,連店面也一塊兒提供,帶精裝修的、鍋碗瓢盆包羅萬象。(傳說中的一體機要出場了,固然,這是另一個故事,先不展開了。)
固然,若是不想開川菜店,我這裏還有粵菜、湘菜、魯菜......,嗯,「八大菜系開店攻略」我這裏都有。
(以上內容稍微有點誇大,開個飯店不是一本攻略能夠搞定的,作大數據也不是隻有模型就能夠的。不過不少時候,外人眼裏的數據模型就是這麼一本「葵花寶典」。)
說點題外話,因爲數據建模的專業性太強,很是須要經驗的積累,因而在數據行業裏衍生了一個專門負責配菜的工種叫「模型設計師」,某全球知名廠商T公司的模型設計師就是業內各大獵頭和甲方的香餑餑,T公司一度被挖成重災區。
四、炒菜(數據加工)
炒菜相信你們都不陌生,若是配菜是個藝術活,那炒菜就絕對是個技術活了。各位大廚不但要有能力把各類食材組合起來炒熟,還得靈活運用油、鹽、醬、醋等多種配料,保證菜品的色香味俱全。並且既然是開門迎客,各類消費者的需求都要可以響應,並且要響應的既快又好。
數據加工就是在炒菜,是個將各類數據進行計算、彙總、準備的流程,是爲最後的數據應用和數據消費者服務的。客戶的要求老是千奇百怪的,因此根據數據消費者的需求不一樣,數據加工的形式也是百花齊放。
數據加工除了知足以上各類數據需求,還有個不得不提的職責就是數據創新。這就比如爲了保證飯店的競爭力和消費者們的新鮮感,不時推出新菜品也是大廚們的職責所在。而在數據圈裏,經過數據進行創新已經成爲潮流和共識,因而,數據分析師、數據科學家這些角色開始粉末登場。
他們的工做就是經過經過嘗試各類數據(食材)和參數(調料)的組合方式來探索和發掘新的業務機會。而因爲食材的量實在太大,配料比例的波動範圍就更是無止境,難以靠人力把各類組合方式進行窮盡。因而,隨着數學理論和技術發展,經過算法讓計算機自動進行食材組合、調料配比從而產生新的發現成爲可能,也就是咱們現場常常聽到的數據挖掘、機器學習了。
【甜點】
碼字很累,洋洋灑灑寫了很多,但感受有些點尚未寫透,有些方面還寫的比較牽強,但領會精神最重要,放張大圖,你們意會一下吧。
水平通常,能力有限,拋磚引玉,歡迎各類意見和探討。
【轉載請註明做者及出處】