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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀用Google BigQuery做入門級(jí)大數(shù)據(jù)分析
用Google BigQuery做入門級(jí)大數(shù)據(jù)分析
2016-02-21
收藏

用Google BigQuery做入門級(jí)大數(shù)據(jù)分析

大數(shù)據(jù)項(xiàng)目是比較繁瑣的,特別是涉及到配置和管理Hadoop集群。如果你對(duì)SQL比MapReduce更熟悉,而關(guān)系型數(shù)據(jù)庫(kù)尚不能滿足你的分析需求,那么可以考慮使用Google的BigQuery,它提供了大數(shù)據(jù)分析入門級(jí)方法。

BigQuery降低了分析大數(shù)據(jù)集所面臨的一些實(shí)施困難。它的定價(jià)模式很具吸引力,你可以從樣本數(shù)據(jù)中獲取有用信息,而不用對(duì)完整的數(shù)據(jù)集做分析。

用Google BigQuery做入門級(jí)大數(shù)據(jù)分析

有時(shí)候,處理大數(shù)據(jù)的一些手段相當(dāng)于是用精確度換速度。例如,如果你想判斷兩組客戶瀏覽網(wǎng)站的路徑是否有差異,你可以分析該站點(diǎn)上所有相關(guān)客戶活動(dòng)的每個(gè)日志入口。當(dāng)然,你也可以抓取客戶群的子集(也就是部分客戶信息),在樣本數(shù)據(jù)中分析差異?;镜慕y(tǒng)計(jì)可以為你提供理解這類分析錯(cuò)誤率的手段,只要差錯(cuò)在可接受范圍內(nèi),你得出的答案就足夠你決策用了。

這種交換可以通過(guò)TOP函數(shù)得到,該函數(shù)返回分組和排序操作中的前幾行。返回結(jié)果可能比較近似,但是該函數(shù)通常比使用“group by”、“order by” 、“l(fā)imit”相結(jié)合的從句要更快速。

Google BigQuery特性

BigQuery是專門為分析上億行級(jí)的數(shù)據(jù)而設(shè)計(jì)的,使用類似SQL的語(yǔ)法即可操作。它并不是SQL數(shù)據(jù)庫(kù)的替代品,而且不適合事務(wù)處理應(yīng)用。BigQuery支持交互風(fēng)格的分析,你可以使用“SELECT”語(yǔ)法編寫查詢,這對(duì)任何SQL開發(fā)者來(lái)說(shuō)都是再熟悉不過(guò)的了。

查詢語(yǔ)言包括支持標(biāo)準(zhǔn)操作,比如連接、排序和分組,以及與嵌套數(shù)據(jù)結(jié)構(gòu)使用操作符。BigQuery也支持聚合函數(shù),比如計(jì)數(shù)、求和、求平均值、求方差和標(biāo)準(zhǔn)差。分組函數(shù)和描述性統(tǒng)計(jì)的相結(jié)合,使得比較兩個(gè)群體之間的方法和方差相對(duì)更直接一些。

在正常的數(shù)據(jù)模型中,連接是必不可少的操作,但是可能產(chǎn)生高昂的計(jì)算代價(jià)。BigQuery函數(shù)中的“JOIN”連接操作符與SQL連接類似,但是在連接兩個(gè)表時(shí),其中一個(gè)表的大小必須可以壓縮為8MB或更小。這種限制支持實(shí)現(xiàn)更有效率的連接操作,因?yàn)檩^小的表可以更有效率地緩存,并連接較大的表。如果你必須連接兩個(gè)較大的表,你可以使用JOIN EACH操作,但是估計(jì)性能會(huì)很差。

你可以使用簡(jiǎn)單的瀏覽器界面與BigQuery交互。瀏覽器工具會(huì)保留查詢歷史并提供方便構(gòu)造查詢的工作空間。這是一個(gè)很簡(jiǎn)單很基礎(chǔ)的工具,它并沒(méi)有其他SQL開發(fā)工具中的完整功能特性,比如MySQL Workbench或者DBVisualizer。當(dāng)然,你還可以使用命令行接口。

Google BigQuery的定價(jià)模式

Google的定價(jià)模式是基于存儲(chǔ)數(shù)據(jù)量和待分析數(shù)據(jù)量而建立的。存儲(chǔ)量?jī)r(jià)格是每月每GB數(shù)據(jù)0.12美元。交互式查詢處理每GB數(shù)據(jù)收費(fèi)0.035美元,批量查詢處理每GB數(shù)據(jù)時(shí)0.02美元。要想限制處理的數(shù)據(jù)量,你可以限制你分析的行數(shù),并且只獲取實(shí)際需要的字段列作為結(jié)果返回。BigQuery采用列式數(shù)據(jù)存儲(chǔ),所以在查詢一列或多個(gè)列時(shí),不會(huì)提取整行中的所有數(shù)據(jù)。

數(shù)據(jù)是通過(guò)加載任務(wù)載入BigQuery,加載任務(wù)可以使用Google云存儲(chǔ)中的數(shù)據(jù),或者也可以從本地文件系統(tǒng)中獲取使用“POST”請(qǐng)求傳輸。文件格式化為CSV或者JSON格式。壓縮文件的大小被限制在1GB之內(nèi),但是未壓縮文件可以達(dá)到1TB。加載任務(wù)可以包含多達(dá)一萬(wàn)個(gè)文件,但是所有文件加起來(lái)大小不能超過(guò)1TB。因?yàn)槟忝刻烀總€(gè)表執(zhí)行的加載任務(wù)可以高達(dá)一千個(gè),所以這些限制對(duì)絕大多數(shù)項(xiàng)目來(lái)說(shuō)是沒(méi)有實(shí)際影響的。

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

若不方便掃碼,搜微信號(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)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(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ù)說(shuō)明請(qǐng)參見: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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }