版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)過(guò)程化處理的敏捷方法人:Gdevops全球敏捷運(yùn)維contents過(guò)程化計(jì)算的特點(diǎn)和問(wèn)題做到敏捷需要考慮的要點(diǎn)應(yīng)用場(chǎng)景和優(yōu)勢(shì)數(shù)據(jù)需求的三個(gè)層次許多工具能解決好
分析少量工具能部分處理關(guān)聯(lián)查詢用戶的需求點(diǎn)大部分在過(guò)程計(jì)算分析關(guān)聯(lián)查詢過(guò)程計(jì)算過(guò)程計(jì)算過(guò)程計(jì)算的普遍性銷售額占前一半的大客戶都有哪些?這個(gè)月內(nèi)連漲3天的
第4天還繼續(xù)上漲的比率有多大?哪些半年不出單的客戶在更換了銷售
半年就出單了?最復(fù)雜的計(jì)算是過(guò)程計(jì)算SQL不提倡分步計(jì)算分析、關(guān)聯(lián)查詢都不能解決過(guò)程計(jì)算自助之外,需技術(shù)
協(xié)助技術(shù)
協(xié)助的必要性抽象算法數(shù)據(jù)量大,無(wú)法導(dǎo)出數(shù)據(jù)源雜,不一定是數(shù)據(jù)庫(kù),難以做關(guān)聯(lián)查詢數(shù)據(jù)集太多,都導(dǎo)出太繁瑣處理技術(shù)方面的常見(jiàn)問(wèn)題SQL難寫(xiě)封閉體系、常規(guī)數(shù)據(jù)類型、欠缺過(guò)程處理過(guò)程耦合、難調(diào)試、難管理工程轉(zhuǎn)化的難題數(shù)據(jù)庫(kù)、Hadoop;體系結(jié)構(gòu)臃腫工程語(yǔ)言和開(kāi)源工具;可集
差數(shù)據(jù)處理操作化文本先入庫(kù)后計(jì)算ETL變成了LET高級(jí)語(yǔ)言的問(wèn)題Java缺結(jié)構(gòu)化類庫(kù);代碼冗長(zhǎng)、不可復(fù)用動(dòng)態(tài)結(jié)構(gòu)、描述能力弱;工作量大工具選擇和工程轉(zhuǎn)化數(shù)據(jù)模型和算法處理規(guī)模和性能做到敏捷需要考慮的要點(diǎn)開(kāi)發(fā)環(huán)境即裝即用,配置簡(jiǎn)單,功能完善執(zhí)行、調(diào)試執(zhí)行、單步執(zhí)行設(shè)置斷點(diǎn)網(wǎng)格結(jié)果所見(jiàn)即所得,易于調(diào)試;方便引用中間結(jié)果網(wǎng)格式代碼編寫(xiě)風(fēng)格,比R、perl和python更直觀;可命令行調(diào)用,可定時(shí)計(jì)算豐富的外部數(shù)據(jù)接口RDB:Oracle,DB2,MS
SQL,MySQL,PG,….TXT/CSV,JSON/XML,EXCELHadoop:HDFS,HIVE,HBASEMongoDB,REDIS,…HTTP、ALI-OTS…內(nèi)置接口,即裝即用簡(jiǎn)潔易懂的代碼語(yǔ)法體系設(shè)計(jì)目標(biāo)就是為了解決復(fù)雜過(guò)程運(yùn)算天然分步、層次清晰、直接 單元格名無(wú)需定義變量專
的結(jié)構(gòu)化類專門(mén)針對(duì)結(jié)構(gòu)化數(shù)據(jù)表設(shè)計(jì)分組、循環(huán)排序、過(guò)濾集合運(yùn)算有序集合全球敏捷運(yùn)維集算器與SQL對(duì)比銷售額占前一半的大客戶1SELECT
CUSTOMER,
AMOUNT,
SUM_AMOUNT2FROM
(SELECT
CUSTOMER,
AMOUNT,3SUM(AMOUNT)
OVER(ORDER
BY
AMOUNT
DESC)SUM_AMOUNT4FROM
(SELECT
CUSTOMER,
SUM(AMOUNT)
AMOUNT5FROM
ORDERS
GROUP
BY
CUSTOMER))6WHERE
2
*
SUM_AMOUNT
<
(SELECTSUM(AMOUNT)
TOTAL
FROM
ORDERS)12A=orders.groups(CUSTOMER;sum(AMOUNT):AMOUNT).sort(AMOUNT:-1)=A1.derive(SUM_AMOUNT).run(SUM_AMOUNT=AMOUNT+SUM_AMOUNT[-1])3=A2.select(SUM_AMOUNT<=A1.sum(AMOUNT)/2)集算SQL與SQL這類本身就支持結(jié)構(gòu)化計(jì)算的語(yǔ)言相比,集算器的語(yǔ)法完善了對(duì)分步計(jì)算、集合化、有序計(jì)算和對(duì)象
等幾方面的支持;對(duì)于日期和字串等運(yùn)算,集算器也比大部分SQL提供了更豐富的方法。SQL:?jiǎn)我粩?shù)據(jù)庫(kù)內(nèi)開(kāi)發(fā)環(huán)境部署簡(jiǎn)單,
過(guò)程調(diào)試麻煩庫(kù)內(nèi)數(shù)據(jù)幾乎沒(méi)有外部數(shù)據(jù)接口,只能語(yǔ)法體系對(duì)過(guò)程計(jì)算支持得很不好復(fù)雜有序和集合的計(jì)算很麻煩有大數(shù)據(jù)透明化計(jì)算能力,但過(guò)程復(fù)雜時(shí)性能差過(guò)程可管理性較差Python:外部或跨庫(kù)數(shù)據(jù)/過(guò)程計(jì)算開(kāi)發(fā)調(diào)試較簡(jiǎn)單外部數(shù)據(jù)接口豐富,但開(kāi)源包安裝麻煩語(yǔ)法體系不是專為結(jié)構(gòu)化數(shù)據(jù)計(jì)算設(shè)計(jì)Pandas類庫(kù)對(duì)于復(fù)雜運(yùn)算支持得不夠缺乏自有的大數(shù)據(jù)方案代碼易于管理,但難于集成選擇可管理性開(kāi)發(fā)效率環(huán)境配置SQL好低易過(guò)程差低難Python/R好Java差低難集算器好高易集
:工程轉(zhuǎn)化應(yīng)用無(wú)縫集成,代碼易于管理應(yīng)用程序集算器IDE數(shù)據(jù)計(jì)算層集算器(DFX)集算器JDBC數(shù)據(jù)
層(RDB、NoSQL、TXT、CSV、JSON、Hadoop)集算器數(shù)據(jù)源線程1線程2線程3ORAMSSQL本地文件HDFSmain.dfx單機(jī)模式多線程并行全球敏捷運(yùn)維共享數(shù)據(jù)源方式:計(jì)算分布實(shí)現(xiàn),數(shù)據(jù)共享集算器數(shù)據(jù)源并行節(jié)點(diǎn)并行節(jié)點(diǎn)并行節(jié)點(diǎn)ORAMSSQL本地文件HDFSAB1=4.(“192.168.0.”/(10+~)/”:1234”)節(jié)點(diǎn)機(jī)列表,4個(gè)2forkto(8);A1到節(jié)點(diǎn)機(jī)上執(zhí)行,分成8個(gè)任務(wù)3=hdfsfile(“hdfs:\\\s.txt”)HDFS上的文件4=B3.cursor@t(;A2:8)分段游標(biāo)5=B4.select(gender==’M’).groups(;count(1):C)過(guò)濾并計(jì)數(shù)6=A2.conj().sum(C)匯總結(jié)果多機(jī)模式多機(jī)并行全球敏捷運(yùn)維工具選擇和工程轉(zhuǎn)化數(shù)據(jù)模型和算法處理規(guī)模和性能做到敏捷需要考慮的要點(diǎn)離散性與集合化的有效結(jié)合集合化是批量計(jì)算的基本能力離散計(jì)算也不可或缺離散性支持更徹底的集合化離散性產(chǎn)生有序集合運(yùn)算離散數(shù)據(jù)集集合運(yùn)算游離成員=+徹底集合化/有序計(jì)算集算器計(jì)算模型更高的開(kāi)發(fā)效率和執(zhí)行效率=>=>針對(duì)分組子集的聚合運(yùn)算較復(fù)雜時(shí)難以用簡(jiǎn)單聚合式寫(xiě)出,保留分組子集再結(jié)合分步計(jì)算則很容易SQL不能保持子集,要用子查詢?cè)谠细郊有畔ⅲ瑢?dǎo)致多次計(jì)算A1=登錄表.group(uid;~.max(logtime):last,~.count(interval(logtime,last)<=3):num)計(jì)算任務(wù):用戶在最后一次登錄前三天內(nèi)的登錄次數(shù)12345WITH
T
AS(SELECT
uid,max(logtime)
last
FROM登錄表GROUP
BY
uid)SELECT
T.
uid,T.last,count(TT.logtime)FROM
T
LEFT
JOIN登錄表TT
ON
T.uid=TT.uidWHERE
T.last-TT.logtime<=3
GROUP
BY
T.uid,T.last分組子集聚合運(yùn)算不一定總是SUM/COUNT這些,還可以理解為取出某個(gè)成員有離散性時(shí)可以簡(jiǎn)單針對(duì)分組子集實(shí)施這種聚合A1=登錄表.group(uid).(~.minp(logtime))計(jì)算任務(wù):列出用戶首次登錄的記錄SELECT
*FROM(SELECT
RANK()OVER(PARTITION
BY
uid
ORDER
BY
logtime)rk,
T.*
FROM登錄表T)
TTWHERE
TT.rk=1;非常規(guī)聚合字段取值也可以是個(gè)集合,從而輕松描述主子表,適應(yīng)于多層結(jié)構(gòu)數(shù)據(jù)SQL沒(méi)有顯式集合數(shù)據(jù),沒(méi)有離散性也不能 記錄,要JOIN后再GROUPA1=訂單表.derive(訂單明細(xì).select(
==訂單表.
):明細(xì))建立子表集合字段2=A1.new(
,客戶,明細(xì).sum(單價(jià)*數(shù)量):金額)計(jì)算訂單金額計(jì)算任務(wù):由訂單明細(xì)計(jì)算金額1
SELECT訂單表.
,訂單表.客戶,SUM(訂單明細(xì).價(jià)格)234FROM訂單表LEFT
JOIN
訂單明細(xì)
ON訂單表.編碼=訂單明細(xì).GROUP
BY
訂單表.
,訂單表.客戶主子表A1= .sort(交易日).group@i(收盤(pán)價(jià)<收盤(pán)價(jià)[-1]).max(~.len())計(jì)算任務(wù):一支最長(zhǎng)連續(xù)上漲了多少天另一種和次序有關(guān)的分組,條件成立時(shí)產(chǎn)生新組67SELECT
max(連續(xù)日數(shù))FROM(SELECT
count(*)連續(xù)日數(shù)FROM(SELECTSUM(漲跌標(biāo)志)OVER(ORDER
BY交易日)不漲日數(shù)FROM(SELECT交易日,CASE
WHEN收盤(pán)價(jià)>LAG(收盤(pán)價(jià))OVER(
ORDER
BY交易日THEN
0
ELSE
1
END漲跌標(biāo)志FROM
))GROUP
BY不漲日數(shù))有序分組分組子集與有序計(jì)算的組合A1= .sort(交易日).group(代碼)2=A1.select((a=0,~.pselect(a=if(收盤(pán)價(jià)>收盤(pán)價(jià)[-1],a+1,0):3))>0).(代碼)計(jì)算任務(wù):找出連續(xù)上漲三天的)WITH
AAS(SELECT代碼,交易日,收盤(pán)價(jià)-LAG(收盤(pán)價(jià))OVER
(PARITITION
BY代碼ORDER
BY漲幅)FROMB
AS(SELECT代碼,CASE
WHEN漲幅>0
ANDLAG(漲幅)OVER
(PARTITION
BY代碼ORDERBY交易日)>0
ANDLAG(漲幅,2)
OVER
PARTITION
BY代碼ORDER
BY交易日)>0THEN1
ELSE
0END三天連漲標(biāo)志FROM
A)SELECT
distinct代碼FROM
B
WHERE三天連漲標(biāo)志=1分組有序計(jì)算工具選擇和工程轉(zhuǎn)化數(shù)據(jù)模型和算法處理規(guī)模和性能做到敏捷需要考慮的要點(diǎn)單機(jī)大數(shù)據(jù)工具集遍歷1技術(shù)連接2解決
3格式使用4索引分段5并行游標(biāo)概念流式讀入數(shù)據(jù),每次僅計(jì)算一小部分延遲計(jì)算在游標(biāo)上定義運(yùn)算,返回結(jié)果仍然是游標(biāo),可再定義運(yùn)算不立即計(jì)算,最終
遍歷和計(jì)算AB1=file(“data.txt”).cursor@t()/創(chuàng)建游標(biāo)2=A1.select(product==“1”)/過(guò)濾3=A2.derive(
ty*price:amount)/計(jì)算列4=A3.sum(amount)/實(shí)際計(jì)算遍歷技術(shù)-延遲游標(biāo)外存計(jì)算優(yōu)化方向是減少
量可復(fù)用的遍歷減少外存
量一次遍歷可返回多個(gè)分組結(jié)果A1=file(“data.txt”).cursor()2=channel().groups(;count(1))配置同步計(jì)算3>A1.push(A2)綁定4=A1.sortx(key)排序,遍歷過(guò)程中處理綁定計(jì)算5=A2.result().#1取出綁定計(jì)算的結(jié)果,即
錄數(shù)6=A4.skip((A5-1)\2).fetch@x(2-A5%2).avg(key)取出中位數(shù)記錄并計(jì)算中位數(shù)遍歷技術(shù)-遍歷復(fù)用針對(duì)已有序的數(shù)據(jù)可一次遍歷實(shí)現(xiàn)大結(jié)果集分組運(yùn)算,減少外存交換A1=file(“data.txt”).cursor@t()2=A1.groupx@o(uid;count(1),max(login))ABC1=file(“user.dat”).cursor@b()/按用戶id排序的源文件2for
A1;id…/從游標(biāo)中循環(huán)讀入數(shù)據(jù),每次讀出一組id相同3…/處理計(jì)算該組數(shù)據(jù)復(fù)雜處理需要讀出到程序內(nèi)存中再處理有序游標(biāo)有效減少查找和遍歷數(shù)量遍歷技術(shù)–有序游標(biāo)從一個(gè)集合計(jì)算出一個(gè)單值或另一個(gè)集合都可理解為聚合高復(fù)雜度的排序問(wèn)題轉(zhuǎn)換為低復(fù)雜度的遍歷問(wèn)題A1=file(“data.txt”).cursor@t()2=A1.groups(;top(10,amount))金額
10名的訂單3=A1.groups(area;top(10,amount))每個(gè)地區(qū)金額
10名的訂單遍歷技術(shù)-聚合理解指針化序號(hào)化有序歸并有序歸并123外鍵維表1:N同維表1:1主子表1:N連接解決-區(qū)分JOIN!外鍵需要隨機(jī)小量頻繁內(nèi)存指針查找大幅提高性能Java指針連接Oracle單表無(wú)連接0.57s0.623s五表外鍵連接2.3s5.1sA1=file(“Products.txt”).import()讀入商品列表2=file(“Sales.txt”).import()讀入銷售記錄3>A2.switch(productid,A1:id)建立指針式連接,把商品轉(zhuǎn)換成指針4=A2.sum(ty*productid.price)計(jì)算銷售金額,用指針?lè)绞缴唐穯蝺r(jià)ProductsidnamevendortypepriceSalesseqdateproductidty連接解決-外鍵指針化序號(hào)化相當(dāng)于外存指針化不需要再計(jì)算Hash值和比較A1=file(“Products.txt”).import()讀入商品列表2=file(“Sales.txt”).cursor()根據(jù)已序號(hào)化的銷售記錄建立游標(biāo)3=A2.switch(productid,A1:#)用序號(hào)定位建立連接指針,準(zhǔn)備遍歷4=A3.groups(;sum(
ty*productid.price))計(jì)算結(jié)果連接解決-外鍵序號(hào)化同維表和主子表連接可以先排序后變成有序歸并追加數(shù)據(jù)的再排序也仍然是低成本的歸并計(jì)算A1=file(“Order.txt”).cursor@t()訂單游標(biāo),按訂單id排序2=file(“Detail.txt”).cursor@t()訂單明細(xì)游標(biāo),也按訂單id排序3=joinx(A1:O,id;A2:D,id)有序歸并連接,仍返回游標(biāo)4=A3.groups(O.area;sum(D.amount))按地區(qū)分組匯總金額,地區(qū)字段在主表中,金額字段在明細(xì)子表中連接解決-有序歸并數(shù)據(jù)類型已存入,無(wú)須解析輕量級(jí)壓縮減少硬盤(pán)空間很少占用CPU時(shí)間泛型
,允許集合數(shù)據(jù)可追加格式-壓縮二進(jìn)制有序?qū)Ψ植檎矣行驍?shù)據(jù)提供對(duì)分查找,快速定位普通定位索引按鍵值找到數(shù)據(jù)兩段式索引提高
性能片狀索引連續(xù)記錄的索引使用索引文件線程1線程4線程2線程3并行處理需要將數(shù)據(jù)文件分段,每個(gè)線程處理一段簡(jiǎn)單按字節(jié)分段按行分段去頭補(bǔ)尾的字節(jié)分段文本并行解析A1=file(“data.txt”).cursor@tm(amount)/定義并行取數(shù)的游標(biāo)(并行)2=A1.groups(;sum(amount):amount)/遍歷游標(biāo)匯總amount(串行)分段并行-文本分段分段數(shù)足夠大,以適應(yīng)變化的并行數(shù)每段記錄數(shù)相對(duì)平均數(shù)據(jù)追加時(shí)不必重寫(xiě)所有數(shù)據(jù),保持連續(xù)性AB1=file(“data.bin”)2fork
4=A1.cursor@b(amount;A2:4)3=B2.groups(;sum(amount):a)4=A2.conj().sum(a)追加前追加后112324536748…10235121024513…分段并行-倍增分段有序數(shù)據(jù)的分段點(diǎn)要落在組邊界上才能分段并行同維表、主子表需同步分段A1=file(“userlog.txt”).cursor@t()原始數(shù)據(jù)游標(biāo)2=A1.sortx(id)按id排序3>file(“userlog.dat”).export@z(A2;id)寫(xiě)成按id分段的文件A1=file(“Order.txt”).cursor@t()2=A1.sortx(id)按id排序3>file(“Order.dat”).export@z(A2;id)寫(xiě)成按id分段的文件4=file(“Detail.txt”).cursor@t()5=A4.sortx(id)按id排序6>file(“Detail.dat”).export@z(A2;id,file(“Order.dat”),id
)和Order.dat同步按id分段分段并行-有序?qū)ξ环侄斡?jì)算臨時(shí)需求報(bào)表后端計(jì)算輕量級(jí)大數(shù)據(jù)解決方案(略)應(yīng)用場(chǎng)景和優(yōu)勢(shì)計(jì)算臨時(shí)需求臨時(shí)需求的特征:以(準(zhǔn))結(jié)構(gòu)化數(shù)據(jù)為主大量涉及多樣性的外部數(shù)據(jù)源隨意性,需求不可常常涉及多步驟的過(guò)程計(jì)算只做一次,缺乏直接可復(fù)用性必要時(shí)可能轉(zhuǎn)變成日常計(jì)算計(jì)算臨時(shí)需求工具選擇要點(diǎn):環(huán)境使用簡(jiǎn)單開(kāi)發(fā)快捷便利學(xué)習(xí)低成本應(yīng)用可集成報(bào)表問(wèn)題報(bào)表是獲取數(shù)據(jù)的重要許多業(yè)務(wù)用戶只會(huì)看報(bào)表報(bào)表業(yè)務(wù)的不穩(wěn)定是常態(tài)要建立長(zhǎng)期應(yīng)對(duì)機(jī)制報(bào)表的
點(diǎn)在于數(shù)據(jù)源占用大量開(kāi)發(fā)時(shí)間報(bào)表模塊/平臺(tái)的目標(biāo)應(yīng)對(duì)報(bào)表的業(yè)務(wù)不穩(wěn)定性與應(yīng)用程序脫耦提高開(kāi)發(fā)效率
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 放射質(zhì)量控制與安全防護(hù)管理制度(2篇)
- 施工現(xiàn)場(chǎng)施工防化學(xué)事故傷害制度
- 標(biāo)準(zhǔn)施工勞務(wù)分包合同示范文本
- 廣場(chǎng)物業(yè)管理委托合同
- 農(nóng)村自建房買(mǎi)賣合同解讀
- 文件倉(cāng)儲(chǔ)合同協(xié)議格式
- 橋架供應(yīng)合同書(shū)
- 個(gè)人房屋買(mǎi)賣合同的簽訂與合同續(xù)簽
- 個(gè)人借款擔(dān)保合同案例
- 建設(shè)工程補(bǔ)充合同的適用條件和范圍
- 汽車之家:2024年增換購(gòu)用戶需求洞察1727674734
- 陜西省師大附中2025屆高三下學(xué)期聯(lián)考物理試題含解析
- 讀后續(xù)寫(xiě)15種高分句式
- 2024電力巡檢無(wú)人機(jī)自動(dòng)機(jī)場(chǎng)技術(shù)標(biāo)準(zhǔn)
- 2024至2030年中國(guó)儲(chǔ)能變流器(PCS)行業(yè)市場(chǎng)深度分析及投資決策建議報(bào)告
- 專題6:板塊模型(教學(xué)設(shè)計(jì)) 2023-2024學(xué)年高一物理同步講練課堂(人教版2019必修第一冊(cè))
- 小學(xué)科學(xué)《點(diǎn)亮小燈泡》教學(xué)課件
- 生成式人工智能嵌入養(yǎng)老服務(wù)的機(jī)遇與風(fēng)險(xiǎn)
- 電動(dòng)汽車充電站新建工程項(xiàng)目管理實(shí)施規(guī)劃
- 幼兒教師資格《保教知識(shí)與能力》歷年考試真題題庫(kù)(含答案及解析)
- 《水質(zhì)六價(jià)鉻的監(jiān)測(cè)現(xiàn)場(chǎng)快速監(jiān)測(cè)分光光度法》編制說(shuō)明
評(píng)論
0/150
提交評(píng)論