今年廣州的六月,,在經(jīng)歷了大雨的洗禮之后,一切都變得更加明朗起來(lái),,新的工作,,新的人和事。懶惰讓我變得更焦慮,,焦慮促使我進(jìn)步,,程序員的焦慮大家應(yīng)該都有共同的感覺,時(shí)代的步伐太快了,,在這個(gè)環(huán)境下的軟件開發(fā)一定會(huì)淘汰掉那些不懂得學(xué)習(xí),,懶惰的人。 今天呢,,主要回顧這兩年來(lái),在大數(shù)據(jù)行業(yè)公司從事大數(shù)據(jù)類的前端開發(fā)的工作,。最近剛剛換了一份工作,,把我的經(jīng)驗(yàn)稍作總結(jié)分享給大家,有什么建議大家在評(píng)論區(qū)踴躍,。 謝謝,。 今天的主題,主要是從大數(shù)據(jù)開發(fā)的角度,,到大數(shù)據(jù)治理的必要性,,再到圖形化建模的暢想,最后在數(shù)據(jù)質(zhì)量的把關(guān),,然后到大數(shù)據(jù)可視化的應(yīng)用,,博主總結(jié)兩年的見聞,和我學(xué)習(xí)的成果,,也不知理解有無(wú)偏差吧,,希望大家能給出建議。 大數(shù)據(jù)開發(fā) 大數(shù)據(jù)開發(fā),,有幾個(gè)階段: 數(shù)據(jù)采集【原始數(shù)據(jù)】 數(shù)據(jù)匯聚【經(jīng)過清洗合并的可用數(shù)據(jù)】 數(shù)據(jù)轉(zhuǎn)換和映射【經(jīng)過分類,,提取的專項(xiàng)主題數(shù)據(jù)】 數(shù)據(jù)應(yīng)用 【提供api 智能系統(tǒng) 應(yīng)用系統(tǒng)等】 數(shù)據(jù)采集 數(shù)據(jù)采集有線上和線下兩種方式,線上一般通過爬蟲,、通過抓取,,或者通過已有應(yīng)用系統(tǒng)的采集,在這個(gè)階段,,我們可以做一個(gè)大數(shù)據(jù)采集平臺(tái),,依托自動(dòng)爬蟲(使用python或者nodejs制作爬蟲軟件),ETL工具,、或者自定義的抽取轉(zhuǎn)換引擎,,從文件中、數(shù)據(jù)庫(kù)中,、網(wǎng)頁(yè)中專項(xiàng)爬取數(shù)據(jù),,如果這一步通過自動(dòng)化系統(tǒng)來(lái)做的話,可以很方便的管理所有的原始數(shù)據(jù),,并且從數(shù)據(jù)的開始對(duì)數(shù)據(jù)進(jìn)行標(biāo)簽采集,,可以規(guī)范開發(fā)人員的工作。并且目標(biāo)數(shù)據(jù)源可以更方便的管理,。 數(shù)據(jù)采集的難點(diǎn)在于多數(shù)據(jù)源,,例如mysql、postgresql,、sqlserver ,、 mongodb 、sqllite,。還有本地文件,、excel統(tǒng)計(jì)文檔、甚至是doc文件,。如何將他們規(guī)整的,、有方案的整理進(jìn)我們的大數(shù)據(jù)流程中也是必不可缺的一環(huán)。 數(shù)據(jù)匯聚 數(shù)據(jù)的匯聚是大數(shù)據(jù)流程最關(guān)鍵的一步,,你可以在這里加上數(shù)據(jù)標(biāo)準(zhǔn)化,,你也可以在這里做數(shù)據(jù)清洗,數(shù)據(jù)合并,,還可以在這一步將數(shù)據(jù)存檔,,將確認(rèn)可用的數(shù)據(jù)經(jīng)過可監(jiān)控的流程進(jìn)行整理歸類,這里產(chǎn)出的所有數(shù)據(jù)就是整個(gè)公司的數(shù)據(jù)資產(chǎn)了,,到了一定的量就是一筆固定資產(chǎn),。 數(shù)據(jù)匯聚的難點(diǎn)在于如何標(biāo)準(zhǔn)化數(shù)據(jù),例如表名標(biāo)準(zhǔn)化,,表的標(biāo)簽分類,,表的用途,,數(shù)據(jù)的量,是否有數(shù)據(jù)增量?,,數(shù)據(jù)是否可用? 需要在業(yè)務(wù)上下很大的功夫,,必要時(shí)還要引入智能化處理,例如根據(jù)內(nèi)容訓(xùn)練結(jié)果自動(dòng)打標(biāo)簽,,自動(dòng)分配推薦表名,、表字段名等。還有如何從原始數(shù)據(jù)中導(dǎo)入數(shù)據(jù)等,。 數(shù)據(jù)轉(zhuǎn)換和映射 經(jīng)過數(shù)據(jù)匯聚的數(shù)據(jù)資產(chǎn)如何提供給具體的使用方使用?在這一步,,主要就是考慮數(shù)據(jù)如何應(yīng)用,如何將兩個(gè)?三個(gè)?數(shù)據(jù)表轉(zhuǎn)換成一張能夠提供服務(wù)的數(shù)據(jù),。然后定期更新增量,。 經(jīng)過前面的那幾步,在這一步難點(diǎn)并不太多了,,如何轉(zhuǎn)換數(shù)據(jù)與如何清洗數(shù)據(jù),、標(biāo)準(zhǔn)數(shù)據(jù)無(wú)二,將兩個(gè)字段的值轉(zhuǎn)換成一個(gè)字段,,或者根據(jù)多個(gè)可用表統(tǒng)計(jì)出一張圖表數(shù)據(jù)等等,。 數(shù)據(jù)應(yīng)用數(shù)據(jù)的應(yīng)用方式很多,有對(duì)外的,、有對(duì)內(nèi)的,,如果擁有了前期的大量數(shù)據(jù)資產(chǎn),通過restful API提供給用戶?或者提供流式引擎 KAFKA 給應(yīng)用消費(fèi)? 或者直接組成專題數(shù)據(jù),,供自己的應(yīng)用查詢?這里對(duì)數(shù)據(jù)資產(chǎn)的要求比較高,,所以前期的工作做好了,這里的自由度很高,。 總結(jié):大數(shù)據(jù)開發(fā)的難點(diǎn) 大數(shù)據(jù)開發(fā)的難點(diǎn)主要是監(jiān)控,怎么樣規(guī)劃開發(fā)人員的工作?開發(fā)人員隨隨便便采集了一堆垃圾數(shù)據(jù),,并且直連數(shù)據(jù)庫(kù),。 短期來(lái)看,這些問題比較小,,可以矯正,。 但是在資產(chǎn)的量不斷增加的時(shí)候,這就是一顆定時(shí)炸彈,,隨時(shí)會(huì)引爆,,然后引發(fā)一系列對(duì)數(shù)據(jù)資產(chǎn)的影響,例如數(shù)據(jù)混亂帶來(lái)的就是數(shù)據(jù)資產(chǎn)的價(jià)值下降,,客戶信任度變低,。 如何監(jiān)控開發(fā)人員的開發(fā)流程? 答案只能是自動(dòng)化平臺(tái),,只有自動(dòng)化平臺(tái)能夠做到讓開發(fā)人員感到舒心的同時(shí),接受新的事務(wù),,拋棄手動(dòng)時(shí)代,。 這就是前端開發(fā)工程師在大數(shù)據(jù)行業(yè)中所占有的優(yōu)勢(shì)點(diǎn),如何制作交互良好的可視化操作界面?如何將現(xiàn)有的工作流程,、工作需求變成一個(gè)個(gè)的可視化操作界面? 可不可以使用智能化取代一些無(wú)腦的操作? 從一定意義上來(lái)說,,大數(shù)據(jù)開發(fā)中,我個(gè)人認(rèn)為前端開發(fā)工程師占據(jù)著更重要的位置,,僅次于大數(shù)據(jù)開發(fā)工程師,。至于后臺(tái)開發(fā),系統(tǒng)開發(fā)是第三位的,。好的交互至關(guān)重要,,如何轉(zhuǎn)換數(shù)據(jù),如何抽取數(shù)據(jù),,一定程度上,,都是有先人踩過的坑,例如kettle,,再例如kafka,,pipeline ,解決方案眾多,。關(guān)鍵是如何交互? 怎么樣變現(xiàn)為可視化界面? 這是一個(gè)重要的課題,。 現(xiàn)有的各位朋友的側(cè)重點(diǎn)不同,認(rèn)為前端的角色都是可有可無(wú),,我覺得是錯(cuò)誤的,,后臺(tái)的確很重要,但是后臺(tái)的解決方案多,。 前端實(shí)際的地位更重要,,但是基本無(wú)開源的解決方案,如果不夠重視前端開發(fā),, 面臨的問題就是交互很爛,,界面爛,體驗(yàn)差,,導(dǎo)致開發(fā)人員的排斥,,而可視化這塊的知識(shí)點(diǎn)眾多,對(duì)開發(fā)人員的素質(zhì)要求更高,。 大數(shù)據(jù)治理大數(shù)據(jù)治理應(yīng)該貫穿整個(gè)大數(shù)據(jù)開發(fā)流程,,它有扮演著重要的角色,淺略的介紹幾點(diǎn): 數(shù)據(jù)血緣 數(shù)據(jù)質(zhì)量審查 全平臺(tái)監(jiān)控 數(shù)據(jù)血緣 從數(shù)據(jù)血緣說起,,數(shù)據(jù)血緣應(yīng)該是大數(shù)據(jù)治理的入口,,通過一張表,,能夠清晰看見它的來(lái)龍去脈,字段的拆分,,清洗過程,,表的流轉(zhuǎn),數(shù)據(jù)的量的變化,,都應(yīng)該從數(shù)據(jù)血緣出發(fā),,我個(gè)人認(rèn)為,大數(shù)據(jù)治理整個(gè)的目標(biāo)就是這個(gè)數(shù)據(jù)血緣,,從數(shù)據(jù)血緣能夠有監(jiān)控全局的能力,。 數(shù)據(jù)血緣是依托于大數(shù)據(jù)開發(fā)過程的,它包圍著整個(gè)大數(shù)據(jù)開發(fā)過程,,每一步開發(fā)的歷史,,數(shù)據(jù)導(dǎo)入的歷史,都應(yīng)該有相應(yīng)的記錄,,數(shù)據(jù)血緣在數(shù)據(jù)資產(chǎn)有一定規(guī)模時(shí),,基本必不可少。 數(shù)據(jù)質(zhì)量審查 數(shù)據(jù)開發(fā)中,,每一個(gè)模型(表)創(chuàng)建的結(jié)束,,都應(yīng)該有一個(gè)數(shù)據(jù)質(zhì)量審查的過程,在體系大的環(huán)境中,,還應(yīng)該在關(guān)鍵步驟添加審批,,例如在數(shù)據(jù)轉(zhuǎn)換和映射這一步,涉及到客戶的數(shù)據(jù)提供,,應(yīng)該建立一個(gè)完善的數(shù)據(jù)質(zhì)量審查制度,,幫助企業(yè)第一時(shí)間發(fā)現(xiàn)數(shù)據(jù)存在的問題,在數(shù)據(jù)發(fā)生問題時(shí)也能第一時(shí)間看到問題的所在,,并從根源解決問題,,而不是盲目的通過連接數(shù)據(jù)庫(kù)一遍一遍的查詢sql。 全平臺(tái)監(jiān)控 監(jiān)控呢,,其實(shí)包含了很多的點(diǎn),,例如應(yīng)用監(jiān)控,數(shù)據(jù)監(jiān)控,,預(yù)警系統(tǒng),工單系統(tǒng)等,,對(duì)我們接管的每個(gè)數(shù)據(jù)源,、數(shù)據(jù)表都需要做到實(shí)時(shí)監(jiān)控,一旦發(fā)生殆機(jī),,或者發(fā)生停電,,能夠第一時(shí)間電話或者短信通知到具體負(fù)責(zé)人,,這里可以借鑒一些自動(dòng)化運(yùn)維平臺(tái)的經(jīng)驗(yàn)的,監(jiān)控約等于運(yùn)維,,好的監(jiān)控提供的數(shù)據(jù)資產(chǎn)的保護(hù)也是很重要的,。 大數(shù)據(jù)可視化 大數(shù)據(jù)可視化不僅僅是圖表的展現(xiàn),大數(shù)據(jù)可視化不僅僅是圖表的展現(xiàn),,大數(shù)據(jù)可視化不僅僅是圖表的展現(xiàn),,重要的事說三遍,大數(shù)據(jù)可視化歸類的數(shù)據(jù)開發(fā)中,,有一部分屬于應(yīng)用類,,有一部分屬于開發(fā)類。 在開發(fā)中,,大數(shù)據(jù)可視化扮演的是可視化操作的角色,, 如何通過可視化的模式建立模型? 如何通過拖拉拽,或者立體操作來(lái)實(shí)現(xiàn)數(shù)據(jù)質(zhì)量的可操作性? 畫兩個(gè)表格加幾個(gè)按鈕實(shí)現(xiàn)復(fù)雜的操作流程是不現(xiàn)實(shí)的,。 在可視化應(yīng)用中,,更多的也有如何轉(zhuǎn)換數(shù)據(jù),如何展示數(shù)據(jù),,圖表是其中的一部分,,平時(shí)更多的工作還是對(duì)數(shù)據(jù)的分析,怎么樣更直觀的表達(dá)數(shù)據(jù)?這需要對(duì)數(shù)據(jù)有深刻的理解,,對(duì)業(yè)務(wù)有深刻的理解,,才能做出合適的可視化應(yīng)用。 智能的可視化平臺(tái)可視化是可以被再可視化的,,例如superset,,通過操作sql實(shí)現(xiàn)圖表,有一些產(chǎn)品甚至能做到根據(jù)數(shù)據(jù)的內(nèi)容智能分類,,推薦圖表類型,,實(shí)時(shí)的進(jìn)行可視化開發(fā),這樣的功能才是可視化現(xiàn)有的發(fā)展方向,,我們需要大量的可視化內(nèi)容來(lái)對(duì)公司發(fā)生產(chǎn)出,,例如服裝行業(yè),銷售部門:進(jìn)貨出貨,,顏色搭配對(duì)用戶的影響,,季節(jié)對(duì)選擇的影響 生產(chǎn)部門:布料價(jià)格走勢(shì)? 產(chǎn)能和效率的數(shù)據(jù)統(tǒng)計(jì)? 等等,每一個(gè)部門都可以有一個(gè)數(shù)據(jù)大屏,,可以通過平臺(tái)任意規(guī)劃自己的大屏,,所有人每天能夠關(guān)注到自己的領(lǐng)域動(dòng)向,這才是大數(shù)據(jù)可視化應(yīng)用的具體意義。 寫在最后 洋洋灑灑寫了很多,,對(duì)我近兩年的所見所聞所學(xué)所想進(jìn)行了一些總結(jié),,有些童鞋會(huì)問,不是技術(shù)么?為什么沒有代碼? 博主要說,,代碼博主要學(xué)的,,要寫的,但是與工作無(wú)關(guān),,代碼是我個(gè)人的技能,,個(gè)人傍身,實(shí)現(xiàn)個(gè)人想法的重要技能,。 但是,,代碼與業(yè)務(wù)的關(guān)系不大,在工作中,,懂業(yè)務(wù)的人代碼寫的更好,,因?yàn)樗拦鞠胍裁础?如果你業(yè)務(wù)很差,那也沒關(guān)系,,你代碼好就行了呀,,根據(jù)別人的交代干活,也是很不錯(cuò)的,。技術(shù)和業(yè)務(wù)是相輔相成的,,稍后博主總結(jié)代碼的精進(jìn)。 寫完了,,博主的焦慮一絲未少,,我的代碼規(guī)范性不夠,目前技術(shù)棧js,、java,、nodejs、python ,。 主業(yè)js熟練度80%吧,,正在研究阮一峰的es6(看的差不多)和vuejs的源碼(有點(diǎn)擱淺),vuejs算是中等,,css和布局方面可以說還可以,,另外d3.js,go.js都是處于會(huì)用,,能干活,。 nodejs呢,express和koa無(wú)問題,,看過一些express的源代碼,,還寫過兩個(gè)中間件。 java、python都處于能做項(xiàng)目的程度,,目前也不想抽很多精力去深入它們,就想要保持在想用能用的地步吧,。 未來(lái)的幾年,,博主努力工作,多學(xué)學(xué)人工智能,、大數(shù)據(jù)開發(fā)的知識(shí),,未來(lái)這塊應(yīng)該還有一些熱度的吧。 最后,,和大家共勉,,更希望大家能給一些規(guī)劃建議,三人行,,必有我?guī)熝伞?/p> 在不久的將來(lái),,多智時(shí)代一定會(huì)徹底走入我們的生活,有興趣入行未來(lái)前沿產(chǎn)業(yè)的朋友,,可以收藏多智時(shí)代,,及時(shí)獲取人工智能、大數(shù)據(jù),、云計(jì)算和物聯(lián)網(wǎng)的入門知識(shí)和資訊信息,,讓我們一起攜手,引領(lǐng)人工智能的未來(lái) |
|
來(lái)自: 知行合一ing > 《大數(shù)據(jù)》