99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀這兩年在大數(shù)據行業(yè)中的工作總結
這兩年在大數(shù)據行業(yè)中的工作總結
2018-07-03
收藏

這兩年在大數(shù)據行業(yè)中的工作總結

今天呢,主要回顧這兩年來,在大數(shù)據行業(yè)公司從事大數(shù)據類的前端開發(fā)的工作。最近剛剛換了一份工作,把我的經驗稍作總結分享給大家,有什么建議大家在評論區(qū)踴躍。 謝謝。

今天的主題,主要是從大數(shù)據開發(fā)的角度,到大數(shù)據治理的必要性,再到圖形化建模的暢想,最后在數(shù)據質量的把關,然后到大數(shù)據可視化的應用,博主總結兩年的見聞,和我學習的成果,也不知理解有無偏差吧,希望大家能給出建議。

大數(shù)據開發(fā)

大數(shù)據開發(fā),有幾個階段:

1.數(shù)據采集【原始數(shù)據】

2.數(shù)據匯聚【經過清洗合并的可用數(shù)據】

3.數(shù)據轉換和映射【經過分類,提取的專項主題數(shù)據】

4.數(shù)據應用 【提供api 智能系統(tǒng) 應用系統(tǒng)等】

數(shù)據采集

數(shù)據采集有線上和線下兩種方式,線上一般通過爬蟲、通過抓取,或者通過已有應用系統(tǒng)的采集,在這個階段,我們可以做一個大數(shù)據采集平臺,依托自動爬蟲(使用python或者nodejs制作爬蟲軟件),ETL工具、或者自定義的抽取轉換引擎,從文件中、數(shù)據庫中、網頁中專項爬取數(shù)據,如果這一步通過自動化系統(tǒng)來做的話,可以很方便的管理所有的原始數(shù)據,并且從數(shù)據的開始對數(shù)據進行標簽采集,可以規(guī)范開發(fā)人員的工作。并且目標數(shù)據源可以更方便的管理。

數(shù)據采集的難點在于多數(shù)據源,例如mysql、postgresql、sqlserver 、 mongodb 、sqllite。還有本地文件、excel統(tǒng)計文檔、甚至是doc文件。如何將他們規(guī)整的、有方案的整理進我們的大數(shù)據流程中也是必不可缺的一環(huán)。

數(shù)據匯聚

數(shù)據的匯聚是大數(shù)據流程最關鍵的一步,你可以在這里加上數(shù)據標準化,你也可以在這里做數(shù)據清洗,數(shù)據合并,還可以在這一步將數(shù)據存檔,將確認可用的數(shù)據經過可監(jiān)控的流程進行整理歸類,這里產出的所有數(shù)據就是整個公司的數(shù)據資產了,到了一定的量就是一筆固定資產。

數(shù)據匯聚的難點在于如何標準化數(shù)據,例如表名標準化,表的標簽分類,表的用途,數(shù)據的量,是否有數(shù)據增量?,數(shù)據是否可用? 需要在業(yè)務上下很大的功夫,必要時還要引入智能化處理,例如根據內容訓練結果自動打標簽,自動分配推薦表名、表字段名等。還有如何從原始數(shù)據中導入數(shù)據等。

數(shù)據轉換和映射

經過數(shù)據匯聚的數(shù)據資產如何提供給具體的使用方使用?在這一步,主要就是考慮數(shù)據如何應用,如何將兩個?三個?數(shù)據表轉換成一張能夠提供服務的數(shù)據。然后定期更新增量。

經過前面的那幾步,在這一步難點并不太多了,如何轉換數(shù)據與如何清洗數(shù)據、標準數(shù)據無二,將兩個字段的值轉換成一個字段,或者根據多個可用表統(tǒng)計出一張圖表數(shù)據等等。

數(shù)據應用

數(shù)據的應用方式很多,有對外的、有對內的,如果擁有了前期的大量數(shù)據資產,通過restful API提供給用戶?或者提供流式引擎 KAFKA 給應用消費? 或者直接組成專題數(shù)據,供自己的應用查詢?這里對數(shù)據資產的要求比較高,所以前期的工作做好了,這里的自由度很高。

總結:大數(shù)據開發(fā)的難點

大數(shù)據開發(fā)的難點主要是監(jiān)控,怎么樣規(guī)劃開發(fā)人員的工作?開發(fā)人員隨隨便便采集了一堆垃圾數(shù)據,并且直連數(shù)據庫。 短期來看,這些問題比較小,可以矯正。 但是在資產的量不斷增加的時候,這就是一顆定時炸彈,隨時會引爆,然后引發(fā)一系列對數(shù)據資產的影響,例如數(shù)據混亂帶來的就是數(shù)據資產的價值下降,客戶信任度變低。

如何監(jiān)控開發(fā)人員的開發(fā)流程?

答案只能是自動化平臺,只有自動化平臺能夠做到讓開發(fā)人員感到舒心的同時,接受新的事務,拋棄手動時代。

這就是前端開發(fā)工程師在大數(shù)據行業(yè)中所占有的優(yōu)勢點,如何制作交互良好的可視化操作界面?如何將現(xiàn)有的工作流程、工作需求變成一個個的可視化操作界面? 可不可以使用智能化取代一些無腦的操作?

從一定意義上來說,大數(shù)據開發(fā)中,我個人認為前端開發(fā)工程師占據著更重要的位置,僅次于大數(shù)據開發(fā)工程師。至于后臺開發(fā),系統(tǒng)開發(fā)是第三位的。好的交互至關重要,如何轉換數(shù)據,如何抽取數(shù)據,一定程度上,都是有先人踩過的坑,例如kettle,再例如kafka,pipeline ,解決方案眾多。關鍵是如何交互? 怎么樣變現(xiàn)為可視化界面? 這是一個重要的課題。

現(xiàn)有的各位朋友的側重點不同,認為前端的角色都是可有可無,我覺得是錯誤的,后臺的確很重要,但是后臺的解決方案多。 前端實際的地位更重要,但是基本無開源的解決方案,如果不夠重視前端開發(fā), 面臨的問題就是交互很爛,界面爛,體驗差,導致開發(fā)人員的排斥,而可視化這塊的知識點眾多,對開發(fā)人員的素質要求更高。

數(shù)據治理

數(shù)據治理應該貫穿整個大數(shù)據開發(fā)流程,它有扮演著重要的角色,淺略的介紹幾點:

數(shù)據血緣

數(shù)據質量審查

全平臺監(jiān)控

數(shù)據血緣

數(shù)據血緣說起,數(shù)據血緣應該是大數(shù)據治理的入口,通過一張表,能夠清晰看見它的來龍去脈,字段的拆分,清洗過程,表的流轉,數(shù)據的量的變化,都應該從數(shù)據血緣出發(fā),我個人認為,大數(shù)據治理整個的目標就是這個數(shù)據血緣,從數(shù)據血緣能夠有監(jiān)控全局的能力。

數(shù)據血緣是依托于大數(shù)據開發(fā)過程的,它包圍著整個大數(shù)據開發(fā)過程,每一步開發(fā)的歷史,數(shù)據導入的歷史,都應該有相應的記錄,數(shù)據血緣在數(shù)據資產有一定規(guī)模時,基本必不可少。

數(shù)據質量審查

數(shù)據開發(fā)中,每一個模型(表)創(chuàng)建的結束,都應該有一個數(shù)據質量審查的過程,在體系大的環(huán)境中,還應該在關鍵步驟添加審批,例如在數(shù)據轉換和映射這一步,涉及到客戶的數(shù)據提供,應該建立一個完善的數(shù)據質量審查制度,幫助企業(yè)第一時間發(fā)現(xiàn)數(shù)據存在的問題,在數(shù)據發(fā)生問題時也能第一時間看到問題的所在,并從根源解決問題,而不是盲目的通過連接數(shù)據庫一遍一遍的查詢sql。

全平臺監(jiān)控

監(jiān)控呢,其實包含了很多的點,例如應用監(jiān)控,數(shù)據監(jiān)控,預警系統(tǒng),工單系統(tǒng)等,對我們接管的每個數(shù)據源、數(shù)據表都需要做到實時監(jiān)控,一旦發(fā)生殆機,或者發(fā)生停電,能夠第一時間電話或者短信通知到具體負責人,這里可以借鑒一些自動化運維平臺的經驗的,監(jiān)控約等于運維,好的監(jiān)控提供的數(shù)據資產的保護也是很重要的。

數(shù)據可視化

數(shù)據可視化不僅僅是圖表的展現(xiàn),大數(shù)據可視化不僅僅是圖表的展現(xiàn),大數(shù)據可視化不僅僅是圖表的展現(xiàn),重要的事說三遍,大數(shù)據可視化歸類的數(shù)據開發(fā)中,有一部分屬于應用類,有一部分屬于開發(fā)類。

在開發(fā)中,大數(shù)據可視化扮演的是可視化操作的角色, 如何通過可視化的模式建立模型? 如何通過拖拉拽,或者立體操作來實現(xiàn)數(shù)據質量的可操作性? 畫兩個表格加幾個按鈕實現(xiàn)復雜的操作流程是不現(xiàn)實的。

在可視化應用中,更多的也有如何轉換數(shù)據,如何展示數(shù)據,圖表是其中的一部分,平時更多的工作還是對數(shù)據的分析,怎么樣更直觀的表達數(shù)據?這需要對數(shù)據有深刻的理解,對業(yè)務有深刻的理解,才能做出合適的可視化應用。

智能的可視化平臺

可視化是可以被再可視化的,例如superset,通過操作sql實現(xiàn)圖表,有一些產品甚至能做到根據數(shù)據的內容智能分類,推薦圖表類型,實時的進行可視化開發(fā),這樣的功能才是可視化現(xiàn)有的發(fā)展方向,我們需要大量的可視化內容來對公司發(fā)生產出,例如服裝行業(yè),銷售部門:進貨出貨,顏色搭配對用戶的影響,季節(jié)對選擇的影響 生產部門:布料價格走勢? 產能和效率的數(shù)據統(tǒng)計? 等等,每一個部門都可以有一個數(shù)據大屏,可以通過平臺任意規(guī)劃自己的大屏,所有人每天能夠關注到自己的領域動向,這才是大數(shù)據可視化應用的具體意義。

寫在最后

洋洋灑灑寫了很多,對我近兩年的所見所聞所學所想進行了一些總結,有些童鞋會問,不是技術么?為什么沒有代碼? 博主要說,代碼博主要學的,要寫的,但是與工作無關,代碼是我個人的技能,個人傍身,實現(xiàn)個人想法的重要技能。 但是,代碼與業(yè)務的關系不大,在工作中,懂業(yè)務的人代碼寫的更好,因為他知道公司想要什么。 如果你業(yè)務很差,那也沒關系,你代碼好就行了呀,根據別人的交代干活,也是很不錯的。技術和業(yè)務是相輔相成的,稍后博主總結代碼的精進。

寫完了,焦慮一絲未少,我的代碼規(guī)范性不夠,目前技術棧js、java、nodejs、python 。

主業(yè)js熟練度80%吧,正在研究阮一峰的es6(看的差不多)和vuejs的源碼(有點擱淺),vuejs算是中等,css和布局方面可以說還可以,另外d3.js,go.js都是處于會用,能干活。 nodejs呢,express和koa無問題,看過一些express的源代碼,還寫過兩個中間件。

java、python都處于能做項目的程度,目前也不想抽很多精力去深入它們,就想要保持在想用能用的地步吧。

未來的幾年,努力工作,多學學人工智能、大數(shù)據開發(fā)的知識,未來這塊應該還有一些熱度的吧。

最后,和大家共勉,更希望大家能給一些規(guī)劃建議,三人行,必有我?guī)熝伞?


數(shù)據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }