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

熱線電話:13121318867

登錄
首頁精彩閱讀小團(tuán)隊(duì)如何玩轉(zhuǎn)大數(shù)據(jù)
小團(tuán)隊(duì)如何玩轉(zhuǎn)大數(shù)據(jù)
2016-06-28
收藏

小團(tuán)隊(duì)如何玩轉(zhuǎn)大數(shù)據(jù)

大數(shù)據(jù)之所以能稱得上一個(gè)時(shí)代,來自于整個(gè)社會(huì)的集體狂歡。數(shù)據(jù)源于各行各業(yè),這場變革帶來的機(jī)遇自然蘊(yùn)藏于各行各業(yè)之中。緊盯這個(gè)市場等待機(jī)遇的,無所謂IT巨頭或是初創(chuàng)企業(yè),無所謂團(tuán)隊(duì)規(guī)模是大是小。

大數(shù)據(jù)能為企業(yè)帶來什么?更多的訂單,更低的成本,更快捷的管理,更新的業(yè)務(wù)模式。巧妙善用互聯(lián)網(wǎng)上的大數(shù)據(jù), 小型創(chuàng)業(yè)團(tuán)隊(duì)就可以為自己快速積攢早期創(chuàng)業(yè)所需的資源,從而降低創(chuàng)業(yè)成本,提高收益率。然而我們卻看到,在每輪技術(shù)變革中中小企業(yè)都是被最后照顧到的。在這場新變革的席卷下,我們不禁又要問小團(tuán)隊(duì),你的大數(shù)據(jù)在哪里?

誠然,缺技術(shù)、缺人才、缺數(shù)據(jù)等種種現(xiàn)實(shí),都將小團(tuán)隊(duì)置身于水深火熱之中。那么大數(shù)據(jù)時(shí)代的小團(tuán)隊(duì)還有機(jī)會(huì)嗎?

“當(dāng)然有?!鼻靶∶讛?shù)據(jù)工場負(fù)責(zé)人、現(xiàn)任火線數(shù)據(jù)創(chuàng)始人兼CEO、 WOT2016 講師盧學(xué)裕在接受51CTO.com記者獨(dú)家專訪時(shí),不僅給出明確的肯定答案,也結(jié)合他曾在優(yōu)酷視頻系統(tǒng)及小米數(shù)據(jù)工場的親身實(shí)踐,細(xì)細(xì)剖析面對種種問題下的小團(tuán)隊(duì)該如何做好技術(shù)選型,及如何權(quán)衡面臨的大數(shù)據(jù)成用成本和數(shù)據(jù)隱私擔(dān)憂。

小團(tuán)隊(duì)的大數(shù)據(jù)挑戰(zhàn)

近幾年,以Hadoop生態(tài)為代表的數(shù)據(jù)基礎(chǔ)設(shè)施發(fā)展很快,給大數(shù)據(jù)技術(shù)的易用性提供了很大改善,也使技術(shù)門檻降低很多。

在盧學(xué)裕看來,小團(tuán)隊(duì)在大數(shù)據(jù)方面的挑戰(zhàn)主要表現(xiàn)為人才短缺和數(shù)據(jù)來源。盧學(xué)裕講到,為了應(yīng)對這兩個(gè)問題,小團(tuán)隊(duì)必須要在業(yè)務(wù)上下功夫,依據(jù)核心的業(yè)務(wù)形態(tài),深入挖掘自身數(shù)據(jù)。

具體應(yīng)該怎么做呢?盧學(xué)裕以視頻用戶數(shù)據(jù)舉例。雖然用戶在觀看視頻的過程中,沒有太多的互動(dòng)過程,但還是可以挖掘出價(jià)值非常大的高頻數(shù)據(jù)?;谟脩舻耐献?、回看這樣同一份數(shù)據(jù),我們可以做到的可以有很多:

- 挖掘到不同用戶對視頻內(nèi)容的High點(diǎn),幫助視頻的內(nèi)容運(yùn)營和內(nèi)容創(chuàng)作找到用戶興趣點(diǎn);

- 認(rèn)識(shí)用戶行為,找到相似用戶,基于內(nèi)容興趣進(jìn)行用戶畫像;

- 根據(jù)用戶對內(nèi)容上的喜好更好地進(jìn)行CDN的預(yù)分發(fā)

- 根據(jù)用戶行為做視頻推薦

- ……

某種意義上說,視頻推薦比商品推薦更容易。視頻作為用戶相對高頻的行為,意味著我們能抓取到用戶更多的行為數(shù)據(jù),對用戶的喜好反映更全面;從應(yīng)用場景的角度來說,用戶對于商品是否購買可能是一個(gè)很大的決定,而看不看視頻相對決定很小,決定錯(cuò)誤的損失也很小。在進(jìn)行視頻內(nèi)容分析時(shí),由于視頻文本挖掘的維度偏少,因此進(jìn)行文本分析的價(jià)值不大。

因此,同一技術(shù)在不同的業(yè)務(wù)領(lǐng)域上的重視程度,和起到的作用是不一樣的。小團(tuán)隊(duì)由于自身技術(shù)能力和專業(yè)人才資源都有限,一定要更加細(xì)致地了解自己的業(yè)務(wù)形態(tài),最大程度利用已有數(shù)據(jù)。

小米數(shù)據(jù)工場大數(shù)據(jù)平臺(tái)架構(gòu)

小米目前除了發(fā)展自己的公司,還投資了很多生態(tài)鏈企業(yè)。隨著業(yè)務(wù)的快速增長,業(yè)務(wù)產(chǎn)生的數(shù)據(jù)量突飛猛漲。大家都知道,數(shù)據(jù)越集中,利用價(jià)值越大,由此小米數(shù)據(jù)工場應(yīng)運(yùn)而生。

小米數(shù)據(jù)工場主要承擔(dān)著為全公司各團(tuán)隊(duì)及小米的生態(tài)鏈企業(yè),提供數(shù)據(jù)采集、計(jì)算、存儲(chǔ)等基礎(chǔ)能力,以及機(jī)器學(xué)習(xí)、挖掘的工具和方法的任務(wù)。除了底層的能力,數(shù)據(jù)工場也為公司及生態(tài)鏈企業(yè)提供一些具體的基礎(chǔ)數(shù)據(jù)服務(wù),用于小米信用卡的風(fēng)控和額度評(píng)估、廣告精準(zhǔn)投放、限時(shí)搶購時(shí)用數(shù)據(jù)打擊黃牛等等。通過數(shù)據(jù)工場提供的數(shù)據(jù)能力,企業(yè)不僅能夠?qū)I(yè)務(wù)進(jìn)行數(shù)據(jù)分析,也實(shí)實(shí)在在將數(shù)據(jù)應(yīng)用到核心業(yè)務(wù)場景中。

圍繞Hadoop生態(tài)構(gòu)建基礎(chǔ)平臺(tái)

小米數(shù)據(jù)工場主要的工作是管理數(shù)據(jù)、元數(shù)據(jù)、數(shù)據(jù)權(quán)限,以及管理大量的計(jì)算。盧學(xué)裕強(qiáng)調(diào),把數(shù)據(jù)存下來不是目的,而是要通過計(jì)算運(yùn)用到各個(gè)業(yè)務(wù)領(lǐng)域中。小米及其生態(tài)鏈的業(yè)務(wù)場景豐富,因此整個(gè)計(jì)算體系是紛繁復(fù)雜的。

為了更好適應(yīng)未來的需求,小米數(shù)據(jù)工場圍繞Hadoop生態(tài)構(gòu)建底層基礎(chǔ)平臺(tái)。慮到擴(kuò)展性,數(shù)據(jù)工場天生基于Scala設(shè)計(jì)成分布式架構(gòu)。由于小米及其生態(tài)鏈企業(yè)業(yè)務(wù)場景豐富,因此在技術(shù)選型方面全生態(tài)都會(huì)涉及,如消息流、批處理、實(shí)時(shí)計(jì)算等技術(shù)都需要用到,HBase、Hive、Spark、Storm 、Impala都在不同的場景下使用。

利用Docker解決異構(gòu)和資源問題

為了管理好這些紛繁的計(jì)算框架和模型,在計(jì)算的執(zhí)行方面,小米使用Docker來解決對環(huán)境的不同需求和異構(gòu)問題,并且與Hive、Impala、Spark這些不同的計(jì)算模型都進(jìn)行了對接,去適配不同應(yīng)用場景計(jì)算不同數(shù)據(jù)的模型。另外,在不同業(yè)務(wù)場景下,同一個(gè)計(jì)算邏輯也可以選用不同的計(jì)算模型,Docker 的使用也避免了資源的浪費(fèi)。比如一個(gè)計(jì)算任務(wù)每天凌晨運(yùn)行,為了追求吞吐量,可以放到Hive里跑;還是同樣一個(gè)計(jì)算模型,現(xiàn)在就要跑,可以不用更改,就放到Impala里運(yùn)行。

總結(jié)看來,Docker不僅解決了環(huán)境的異構(gòu),也解決了資源問題。另外,Docker的環(huán)境適應(yīng)性很強(qiáng),做橫向擴(kuò)展會(huì)比較容易。

對于數(shù)據(jù)隱私方面,小米考慮得非常重。采用Docker與自身安全策略的綜合,小米用戶數(shù)據(jù)的隱私和安全性也得到了極其嚴(yán)格的控制。

小團(tuán)隊(duì)的大數(shù)據(jù)敏捷之路

選擇熱門的技術(shù)

小公司的時(shí)間耽誤不起。選擇熱門的、常用的、經(jīng)過大公司驗(yàn)證的技術(shù),一是少踩坑,二是常用的技術(shù)人才相對好找。

按需使用,不要規(guī)劃得太大

傳統(tǒng)BI進(jìn)行數(shù)據(jù)分析時(shí)通常會(huì)建立一個(gè)大而全的模型,再根據(jù)業(yè)務(wù)需求進(jìn)行調(diào)整。但小團(tuán)隊(duì)的業(yè)務(wù)發(fā)展很快,因此在初期不要規(guī)劃得太大,而是根據(jù)業(yè)務(wù)需要,細(xì)分業(yè)務(wù)場景,在每個(gè)小場景里構(gòu)建小的數(shù)據(jù)模型,分析用戶就建用戶模型,分析產(chǎn)品用簡單的產(chǎn)品模型。

另外,小團(tuán)隊(duì)要考慮到自己的應(yīng)用場景是以分析型為主,還是應(yīng)用型為主,之后再進(jìn)行相關(guān)的技術(shù)選型,如Hive、Impala 、Presto等;而如果是以業(yè)務(wù)型為主,就要具體結(jié)合自身業(yè)務(wù)和技術(shù)能力綜合來看。在數(shù)據(jù)量不是非常大的情況下,沒必要選擇HBase這樣集群的存儲(chǔ)方案,有許多產(chǎn)品可以替代。比如MySQL這類傳統(tǒng)數(shù)據(jù)庫能支持的數(shù)據(jù)規(guī)模也不小。根據(jù)計(jì)算要求和數(shù)據(jù)規(guī)模綜合來選,不是超高量的不需要選太大規(guī)模的技術(shù)選型。

選擇便捷、靈活和易于管理的技術(shù)

大公司在技術(shù)和系統(tǒng)使用上首先考慮的是集群的利用率和吞吐量,而小公司則要從便捷、靈活和易于管理的維度來考慮。

存儲(chǔ)方面:建議使用以HDFS為主的存儲(chǔ),因?yàn)楹芏嘤?jì)算的工具所使用的存儲(chǔ)都建立在它之上。對于業(yè)務(wù)未來的迅速發(fā)展,有比較好的兼容性;

計(jì)算方面:建議在選用常用的基礎(chǔ)設(shè)施之外,具體計(jì)算用戶交互時(shí)使用易于使用的技術(shù):

HUE:基于web,在進(jìn)行Hive 查詢時(shí)可以直接在平臺(tái)上完成,使用門檻更低;

Presto:適應(yīng)數(shù)據(jù)源多,可以連接各種各樣的數(shù)據(jù)源做計(jì)算和數(shù)據(jù)分析。由于業(yè)務(wù)數(shù)據(jù)和用戶的行為數(shù)據(jù)時(shí)分開的。使用Presto這種連接器型的分析工具時(shí),有分析能力的人就可以直接使用這種工具,我們不需要將不同的數(shù)據(jù)還要ETL導(dǎo)入到一起,后續(xù)還要做加工處理,只需要在物理打通就可以。

重視數(shù)據(jù)積累

小團(tuán)隊(duì)在前期積累數(shù)據(jù)時(shí),一定要多花點(diǎn)兒功夫,不要偷懶,把數(shù)據(jù)盡可能采集全、采集準(zhǔn)。千萬不要等用到什么數(shù)據(jù)才去找數(shù)據(jù),一旦發(fā)現(xiàn)你需要的數(shù)據(jù)之前沒積累;或是積累的是錯(cuò)的;或是沒有對數(shù)據(jù)進(jìn)行標(biāo)識(shí),沒辦法區(qū)分這是哪個(gè)用戶,陷入邏輯孤島,都會(huì)非常麻煩。

比如我們需要采集用戶在看一篇文章時(shí)的數(shù)據(jù)。這時(shí)我們應(yīng)該將采集的維度考慮得更多,至少從用戶本身的維度、文章內(nèi)容、上下文關(guān)系、用互交互事件這四個(gè)維度上考慮。采集的數(shù)據(jù)可能包括文章分類、標(biāo)題、內(nèi)容ID、當(dāng)前該文章熱度、用戶獲取文章的渠道等等。這會(huì)讓我們更全面地了解用戶的喜好,也將用戶的路徑分析的很清楚。

哪怕未來不知道怎么用,采集更多更全的數(shù)據(jù)一定會(huì)對應(yīng)用產(chǎn)生價(jià)值。在存儲(chǔ)成本較低的現(xiàn)狀下,多采集數(shù)據(jù)帶來的代價(jià)并不大。真正昂貴的其實(shí)是計(jì)算,而一旦沒有數(shù)據(jù),代價(jià)將會(huì)更大。

大數(shù)據(jù)是工具

對于創(chuàng)業(yè)公司來說,在更短的時(shí)間內(nèi)創(chuàng)造更大的價(jià)值,是企業(yè)得以存活的根本。大數(shù)據(jù)是工具,了解大數(shù)據(jù)的作用,結(jié)合業(yè)務(wù)的真實(shí)場據(jù),滿足用戶需求,大數(shù)據(jù)才能真的幫得上你。


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

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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); }