版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、集算器創(chuàng)新大數(shù)據(jù)計算引擎高性能計算專家(HPC)ESProc高性能計算引擎介紹高性能計算理念軟件改變不了硬件的計算性能但軟件可以設計一些高效(低復雜度)算法,降低計算規(guī)模,從而提升計算性能 這類方案通常需要定制化,因地制宜,看菜吃飯集算器使用了諸多高效算法:分組計算關聯(lián)計算查找定位遍歷技術游標與管道并行計算softwarehardware高效算法舉例 分組計算結(jié)果集小能夠全內(nèi)存結(jié)果集大不能全內(nèi)存針對分組字段有序針對分組 字段無序分 組 計 算無需磁盤交互生成臨時緩存 可并行無需磁盤交互生成臨時緩存 可并行需要磁盤交互生成臨時緩存 無法并行了解了計算和數(shù)據(jù)特征,就可以選用適合的算法,從而獲得高性
2、能集算器性能表現(xiàn)測試結(jié)果(時間單位:秒)測試用例Intel X86芯片國產(chǎn)飛騰芯片SPL讀文件計算SPL讀數(shù)據(jù)庫計算數(shù)據(jù)庫中SQL計算SPL讀文件計算SPL讀數(shù)據(jù)庫計算連接后并集-3.81小時-連接后交集-3.91小時-多對多連接遍歷691031小時93268有序分組遍歷1006471小時1022037多步過程計算2728481小時3771小時大分組391552573562493大表關聯(lián)分組1115661小時1782106批量鍵值查詢151小時1小時151小時*數(shù)據(jù)規(guī)模:100億行;集群數(shù)量:4【注】SPL是潤乾集算器采用的程序設計語言;SQL是關系數(shù)據(jù)庫采用的程序設計語言國產(chǎn)飛騰芯片上運行的
3、潤乾集算器可以超越Intel芯片上分布式數(shù)據(jù)庫的性能輕量級大數(shù)據(jù)計算引擎23高性能計算技術4應用案例1現(xiàn)狀分析目 錄Contents沉重的大數(shù)據(jù)計算單機性能不被關注,依靠集群規(guī)??蚣荏w系龐大復雜,試圖包羅萬象避開外存計算困難,指望巨大內(nèi)存集1群2內(nèi)存3框架大數(shù)據(jù)計算開發(fā)難度大大數(shù)據(jù)平臺對SQL查詢關注過多性能比拼的主要陣地優(yōu)化SQL性能幾乎無助于降低開發(fā)難度大量過程計算的開發(fā)難度還很大用SQL很難描述,復雜SQL優(yōu)化效果不好仍需大量底層的編碼,經(jīng)常編寫UDF提高性能本質(zhì)上是降低開發(fā)難度復雜運算的自動優(yōu)化靠不住,需要快速編寫高性能算法難度大集群透明化大數(shù)據(jù)平臺努力實現(xiàn)集群透明化單機與集群一致網(wǎng)絡
4、存儲系統(tǒng)+自動任務分配透明化提高代碼兼容性,降低開發(fā)難度透明化難以獲得最優(yōu)性能高性能計算方案因場景而異,可能是矛盾的透明化只能選擇最保險的方法,一般是性能較差的那個 透明化框架對資源消耗嚴重透明化輕量級大數(shù)據(jù)計算引擎23高性能計算技術4應用案例1現(xiàn)狀分析目 錄Contents集算器 技術特征面向過程計算無縫應用集成多樣性數(shù)據(jù)源接口直接文件計算單機優(yōu)化技術多線程并行無中心集群結(jié)構(gòu)自由數(shù)據(jù)分布和任務分配集算器 敏捷語法體系思考:按照自然思維怎么做?1select max(連續(xù)日數(shù))2from (select count(*) 連續(xù)日數(shù)3from (select sum(漲跌標志) over(ord
5、er by 交易日) 不漲日數(shù)4from (select 交易日,5case when 收盤價lag(收盤價) over(order by 交易日)6then 0 else 1 end 漲跌標志7from 股價表) )SQL8group by 不漲日數(shù))A1=股價表.sort(交易日)2=03=A1.max(A2=if(收盤價收盤價-1,A2+1,0)集算腳本某支股票最長連續(xù)漲了多少交易日語法體系更容易描述人的思路數(shù)據(jù)模型不限制高效算法實現(xiàn)集算器 面向過程計算完整的循環(huán)分支控制天然分步、層次清晰、直接引用單元格名無需定義變量集算器 開發(fā)環(huán)境執(zhí)行、調(diào)試執(zhí)行、單步執(zhí)行設置斷點語法簡單,符合自然思維
6、,比其他高級開發(fā)語言更簡單網(wǎng)格結(jié)果所 見即所得, 易于調(diào)試; 方便引用中 間結(jié)果系統(tǒng)信息輸出,異常隨時查看集算器 應用結(jié)構(gòu)應用程序集算器IDE數(shù)據(jù)計算層集算器腳本(DFX)集算器JDBC數(shù)據(jù)存儲層(RDB、NoSQL、TXT、CSV、JSON、Hadoop)輕量級大數(shù)據(jù)計算引擎23高性能計算技術4應用案例1現(xiàn)狀分析目 錄Contents分段并行高性能計算技術連接解決集群方案使用索引遍歷技術存儲格式遍歷技術聚合理解遍歷復用延遲游標有序游標遍歷是大數(shù)據(jù)計算的基礎遍歷技術 延遲游標游標概念流式讀入數(shù)據(jù),每次僅計算一小部分延遲計算在游標上定義運算,返回結(jié)果仍然是游標,可再定義運算 不立即計算,最終一次
7、性遍歷和計算AB1=file(“data.txt”).cursort()/創(chuàng)建游標2=A1.select(product=“1”)/過濾3=A2.derive(quantity*price:amount)/計算列4=A3.sum(amount)/實際計算遍歷技術 遍歷復用外存計算優(yōu)化方向是減少訪問量可復用的遍歷減少外存訪問量一次遍歷可返回多個分組結(jié)果A1=file(“data.txt”).cursor()2=channel().groups(;count(1)配置同步計算3A1.push(A2)綁定4=A1.sortx(key)排序,遍歷過程中處理綁定計算5=A2.result().#1取出綁
8、定計算的結(jié)果,即總記錄數(shù)6=A4.skip(A5-1)2).fetchx(2-A5%2).avg(key)取出中位數(shù)記錄并計算中位數(shù)遍歷技術 聚合理解從一個集合計算出一個單值或另一個集合都可理解為聚合高復雜度的排序問題轉(zhuǎn)換為低復雜度的遍歷問題A1=file(“data.txt”).cursort()2=A1.groups(;top(10,amount)金額在前10名的訂單3=A1.groups(area;top(10,amount)每個地區(qū)金額在前10名的訂單遍歷技術 有序游標針對已有序的數(shù)據(jù)可一次遍歷實現(xiàn)大結(jié)果集分組運算,減少外存交換A1=file(“data.txt”).cursort()
9、2=A1.groupxo(uid;count(1),max(login)ABC1=file(“user.dat”).cursorb()/按用戶id排序的源文件2for A1;id/從游標中循環(huán)讀入數(shù)據(jù),每次讀出一組id相同3/處理計算該組數(shù)據(jù)復雜處理需要讀出到程序內(nèi)存中再處理有序游標有效減少查找和遍歷數(shù)量連接解決外鍵序號化外鍵指針化區(qū)分JOIN有序歸并連接計算是結(jié)構(gòu)化數(shù)據(jù)的最大難點指針化序號化外鍵維表1:N有序歸并同維表1:1有序歸并主子表1:N連接解決區(qū)分JOIN!外鍵需要隨機小量頻繁訪問內(nèi)存指針查找大幅提高性能Java指針連接Oracle0.623sA單表無連接0.57ss5.1s1=fi
10、le(“Products.txt”).import()讀入商品列表五表外鍵連接2.32=file(“Sales.txt”).import()讀入銷售記錄3A2.switch(productid,A1:id)建立指針式連接,把商品編號轉(zhuǎn)換成指針4=A2.sum(quantity*productid.price)計算銷售金額,用指針方式引用商品單價ProductsidnamevendortypepriceSalesseqdateproductidquantity連接解決 外鍵指針化序號化相當于外存指針化不需要再計算Hash值和比較A1=file(“Products.txt”).import()讀入
11、商品列表2=file(“Sales.txt”).cursor()根據(jù)已序號化的銷售記錄建立游標3=A2.switch(productid,A1:#)用序號定位建立連接指針,準備遍歷4=A3.groups(;sum(quantity*productid.price)計算結(jié)果連接解決 外鍵序號化同維表和主子表連接可以先排序后變成有序歸并追加數(shù)據(jù)的再排序也仍然是低成本的歸并計算A1=file(“Order.txt”).cursort()訂單游標,按訂單id排序2=file(“Detail.txt”).cursort()訂單明細游標,也按訂單id排序3=joinx(A1:O,id;A2:D,id)有序
12、歸并連接,仍返回游標4=A3.groups(O.area;sum(D.amount)按地區(qū)分組匯總金額,地區(qū)字段在主表中,金額字段在明細子表中連接解決 有序歸并序號主鍵自由列存壓縮二進制主子合一有效的存儲格式是 高性能的保證存儲格式數(shù)據(jù)類型已存入,無須解析輕量級壓縮減少硬盤空間很少占用CPU時間泛型存儲,允許集合數(shù)據(jù)可追加存儲格式 壓縮二進制自由分配列組行列存統(tǒng)一 重復值壓縮 對上透明訪問過濾優(yōu)化只讀取與條件相關的列組組1組2組k列1列2列3列41210231024存儲格式 自由列存多層序號式主鍵外存指針式外鍵,高速引用 外存游離記錄表示,離散性 天然有序,易于查找分組針對外鍵結(jié)果自然對齊有序
13、北京1海淀1,1朝陽1,2上海2浦東2,1存儲格式 序號主鍵多層復式表層次式有序集合每層均可以有數(shù)據(jù)結(jié)構(gòu)同維表與主子表統(tǒng)一 消除對齊式連接訂單客戶地區(qū)日期訂單明細產(chǎn)品數(shù)量單價存儲格式主子合一有序?qū)Ψ植檎矣行驍?shù)據(jù)提供對分查找,快速定位普通定位索引按鍵值找到數(shù)據(jù)兩段式索引提高維護性能片狀索引連續(xù)記錄的索引使用索引片狀索引普通定位索 引有序?qū)Ψ植檎褻UBE切片索引的困難列存索引太大數(shù)據(jù)必須實際排序雙向逆序索引按D1,Dn和Dn,D1雙倍排序 只針對前半部分維度使用片式索引使用索引應用:切片的雙向逆序索引數(shù)據(jù)分段是并行計算的基礎列存分段倍增分段文本分段有序/對位 分段多路游標分段并行文件線程1線程4線
14、程2線程3并行處理需要將數(shù)據(jù)文件分段,每個線程處理一段簡單按字節(jié)分段按行分段去頭補尾的字節(jié)分段文本并行解析A1=file(“data.txt”).cursortm(amount)/定義并行取數(shù)的游標(并行)2=A1.groups(;sum(amount):amount)/遍歷游標匯總amount(串行)分段并行 文本分段分段數(shù)足夠大,以適應變化的并行數(shù)每段記錄數(shù)相對平均數(shù)據(jù)追加時不必重寫所有數(shù)據(jù),保持連續(xù)性AB1=file(“data.bin”)2fork 4=A1.cursorb(amount;A2:4)3=B2.groups(;sum(amount):a)4=A2.conj().sum(a
15、)追加前追加后11232453674810235121024513分段并行 倍增分段倍增分段方案解決列存并行困難各列同步分段同列連續(xù)存儲AB1=1,3.(file(“col”/”.bin”)2fork 4=A1.cursor(amount;A2:4)3=B2.groups(;sum(amount):a)4=A2.conj().sum(a)段列1列211,k1,k2k+1,2kk+1,2k32k+1,3k2k+1,3k43k+1,4k3k+1,4k10231024分段并行 列存分段有序數(shù)據(jù)的分段點要落在組邊界上才能分段并行同維表、主子表需同步分段A1=file(“userlog.txt”).cu
16、rsort()原始數(shù)據(jù)游標2=A1.sortx(id)按id排序3file(“userlog.dat”).exportz(A2;id)寫成按id分段的文件A1=file(“Order.txt”).cursort()2=A1.sortx(id)按id排序3file(“Order.dat”).exportz(A2;id)寫成按id分段的文件4=file(“Detail.txt”).cursort()5=A4.sortx(id)按id排序6file(“Detail.dat”).exportz(A2;id,file(“Order.dat”),id )和Order.dat同步按id分段分段并行 有序與對
17、位分段建立多路游標,可繼續(xù)進行過程計算,會自動并行執(zhí)行,簡化書寫難度。A1=file(“Order.txt”).cursortm()建立多路游標,自動并行執(zhí)行2=A1.select(month(Date)=10)條件過濾3=A2.groups(ID;sum(COST*WEIGHT):VALUE)分組匯總分段并行 多路游標集群方案集群設計原則確保容錯減少網(wǎng)絡傳輸量 考慮負載均衡集群計算技術集群維表外存分布內(nèi)存分布集群方案 無中心設計服務器集群無中心集算器沒有框架,沒有永久的中心主控節(jié)點,程序員用代碼控制參與計算的節(jié)點無中心不會發(fā)生單點失效所有節(jié)點地位都等同,不會發(fā)生單點失效,某個節(jié)點有故障時整個
18、集群仍然可以運行計算任務有主控節(jié)點在計算過程中由主控節(jié)點臨時尋找其它節(jié)點參與計算集群方案 負載均衡與容錯具備負載均衡能力根據(jù)每個節(jié)點空閑程度(當前正在運行的線程數(shù)量)決定是否分配任務,實現(xiàn)負擔和資源的有效平衡具備容錯能力某個節(jié)點失效導致子任務失敗,主控程序還會再次將這個子任務分配給其它有效的節(jié)點集算器數(shù)據(jù)源集群方案 并行邏輯結(jié)構(gòu)sub.dfxsub.dfxsub.dfxORAMSSQL本地文件HDFSmain.dfx共享式數(shù)據(jù)計算分布共享數(shù)據(jù)源方式:計算分布實現(xiàn),數(shù)據(jù)共享讀取集算器數(shù)據(jù)源并行節(jié)點并行節(jié)點并行節(jié)點ORAMSSQL本地文件HDFSAB1=4.(“192.168.0.”/(10+)/
19、”:1234”)節(jié)點機列表,4個2fork to(8);A1到節(jié)點機上執(zhí)行,分成8個任務3=hdfsfile(“hdfs:192.168.0.1persons.txt”)HDFS上的文件4=B3.cursort(;A2:8)分段游標5=B4.select(gender=M).groups(;count(1):C)過濾并計數(shù)6=A2.conj().sum(C)匯總結(jié)果冗余式外存分布所有任務都需要用到的公共維表復制存儲事務數(shù)據(jù)分成N個區(qū),根據(jù)需要的容錯指數(shù)循環(huán)分區(qū) 存儲利用率約為1/k(允許k-1個節(jié)點失效)1223344551X3X4X5X1X2外存分布 數(shù)據(jù)同步集算器提供節(jié)點之間的同區(qū)數(shù)據(jù)同步
20、功能每個節(jié)點都是獨立的計算機,可以應用內(nèi)存和外存的計算方法。1new3new13122外存分布 動態(tài)任務分配主控程序分配任務節(jié)點程序收到任務本節(jié)點 是否有 所需數(shù) 據(jù)節(jié)點程序執(zhí)行任務有無ABC1=4.(“192.168.0.”/(10+)/”:1234”)節(jié)點機列表,4個2fork to(8);A1到節(jié)點機上執(zhí)行,分成8個任務3=file(“person.txt”,A2)A2為數(shù)據(jù)區(qū)號4if !B3.exists()end “data not find”找不到返回錯誤再分配5=B3.cursor()6=B5. select(gender=M).groups(;count(1):C)計算7=A2
21、.conj().sum(C)匯總備胎式內(nèi)存分布數(shù)據(jù)分區(qū)分別加載進節(jié)點內(nèi)存n個節(jié)點(每節(jié)點一個分區(qū))+k個備份節(jié)點內(nèi)存利用率n/(n+k)X5X4X3X2X1XX內(nèi)存分布 靜態(tài)任務分配預留備份節(jié)點(備胎)不加載任何數(shù)據(jù)分區(qū)發(fā)現(xiàn)有分區(qū)在所有可用節(jié)點都找不到時,啟動找備份節(jié)點執(zhí)行加載該分區(qū) 任務直接分配到相應節(jié)點,不再動態(tài)詢問A主程序1=8.(“192.168.0.”/(10+)/”:1234”)節(jié)點列表,共8個2=hosts(A1,to(4),”init.dfx”)在其中尋找4個節(jié)點加載內(nèi)存數(shù)據(jù)3=callxa(“sub.dfx”,to(4);A2)調(diào)用這些節(jié)點上程序計算4=A3.sum()匯總結(jié)
22、果A節(jié)點初始化程序init.dfx1=file(“Product.txt”,z).import()讀入第z分區(qū)的數(shù)據(jù)2env(T,A1)將數(shù)據(jù)記入環(huán)境3zone(z)登記本節(jié)點的分區(qū)A節(jié)點程序sub.dfx1=T從環(huán)境中取出數(shù)據(jù)2=A1.count(gender=M)過濾并計數(shù)3return A2返回結(jié)果MapReduce-ForkReduceMapReduce的問題任務太碎,管理成本過高 難以實現(xiàn)關聯(lián)運算Hash Shuffle隨意性太強ForkReduce批量任務,調(diào)度成本低結(jié)合對位分段技術實現(xiàn)關聯(lián)運算Shuffle結(jié)果有確定分布方案輕量級大數(shù)據(jù)計算引擎23高性能計算技術4應用案例1現(xiàn)狀分
23、析目 錄Contents某大型保險公司 - 存儲過程優(yōu)化【案例背景】定報價風險保費通過informix存儲過程計算,運行1小時,效率低下影響使用;初始化車 險新規(guī)車輛歸并,找到上三年保單,數(shù)據(jù)量大(30天)時,運行將近2小時,急需優(yōu)化【數(shù)據(jù)規(guī)模】保單表:0.35億;保單明細表:1.23億【優(yōu)化效果】【使用的集算器技術】壓縮列存:使用集算器組表的列式壓縮存儲,空間小,并且減少了參與計算的列數(shù)(約1/7) 有序存儲:數(shù)據(jù)按照保險單號順序存放,這樣可以使用有序關聯(lián)提升計算效率高效計算:原來需要遍歷多次完成多表關聯(lián),現(xiàn)在只需遍歷一次即可完成多表關聯(lián) 并行技術:集算器提供多線程并行計算,在多核環(huán)境下可以
24、加速計算場景優(yōu)化前優(yōu)化后提升倍數(shù)定報價風險保費3600秒68秒52.9倍查找上三年保單6672秒1020秒6.5倍52.9倍某金融機構(gòu) 報表優(yōu)化【案例背景】該金融機構(gòu)需要維護的報表超過7500張,其中20%查詢速度為分鐘級,5%的查詢速度 為小時級,這5%非常慢的查詢SQL代碼行數(shù)有幾百行,存儲過程更是達到幾千行,關聯(lián)運算多。用通 俗的語言描述報表慢的原因主要是數(shù)據(jù)量大,業(yè)務邏輯復雜。【數(shù)據(jù)規(guī)?!縋OS交易情況統(tǒng)計表運行時間為3700秒,4個SQL數(shù)據(jù)集,涉及6個數(shù)據(jù)庫表的關聯(lián)運算,其中3個表的數(shù)據(jù)量為千萬級(1708萬-4886萬)?!緝?yōu)化效果】不改變硬件環(huán)境的條件下,報表查詢速度從3700
25、秒降到105秒?!臼褂玫募闫骷夹g】高效關聯(lián)技術:將原來報表的順序關聯(lián)改為更高效的外鍵指針式關聯(lián)方式并行計算:將原有串行計算的4個SQL,改為4線程并行加速計算35.2倍某銀行 報表優(yōu)化【案例背景】隨著客戶業(yè)務數(shù)據(jù)量級的日益增長,使原有業(yè)務報表在查詢和導出時的效率明顯降低, 已經(jīng)跟不上業(yè)務的發(fā)展;并且在引入HBase后,仍無法解決批量查詢效率問題。【數(shù)據(jù)規(guī)?!壳f級【優(yōu)化效果】原有回單報表查詢一個分行一個月的數(shù)據(jù)需要18分鐘,甚至造成內(nèi)存溢出,引入集算器 后,每頁展示2000條數(shù)據(jù),首頁加載時間為10秒,一個分行一個月的數(shù)據(jù)全部加載完成縮短至5分鐘,并且不會造成內(nèi)存溢出的問題?!臼褂玫募闫骷夹g】高性能存儲:集算器提供了私有二進制壓縮存儲,提供保存數(shù)據(jù)類型、泛型存儲、任意分段等機制雙線程異步計算:與報表工具結(jié)合,將取數(shù)計算和數(shù)據(jù)呈現(xiàn)使用不同的異步線程處理,提升數(shù)據(jù)展現(xiàn)速度,并降低內(nèi)存使用率3.6倍某電信運營商 Excel財務報表優(yōu)化【案例背景】月財務結(jié)算時需要各省市分級按科目上報財務報表,但由于集團下屬分子公司使用了不 同的財務軟件(SAP和用友),上報的數(shù)據(jù)存在財務賬套無法完全匹配,不同科目需要關聯(lián)替換等業(yè) 務數(shù)據(jù)準備工作需要財務人員手工完成,使用Excel進行報表統(tǒng)計十分低效
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無障礙設施建設方案-提升小區(qū)生活質(zhì)量
- 綠色發(fā)展理念下的創(chuàng)新產(chǎn)業(yè)模式研究
- 教育領域物業(yè)服務的優(yōu)化與提升
- 表達力的培養(yǎng)在學生教育中的作用
- 家庭健康飲食與減肥教育學校與社區(qū)的角色
- 二零二五年度養(yǎng)老產(chǎn)業(yè)資金入股合同
- 2025年度酒吧轉(zhuǎn)讓附帶廣告宣傳及公關活動合同范本
- 跨平臺內(nèi)容制作與媒體融合實踐
- 2025年度人工智能企業(yè)股權(quán)收購與技術研發(fā)合同
- 2025年度職業(yè)經(jīng)理人任期責任與權(quán)益保障合同
- 江西省部分學校2024-2025學年高三上學期1月期末英語試題(含解析無聽力音頻有聽力原文)
- GA/T 2145-2024法庭科學涉火案件物證檢驗實驗室建設技術規(guī)范
- 2024年度窯爐施工協(xié)議詳例細則版B版
- 尿毒癥替代治療
- 【課件】2025屆高考英語一輪復習小作文講解課件
- 基底節(jié)腦出血護理查房
- 工程公司總經(jīng)理年終總結(jié)
- 2024年海南省高考地理試卷(含答案)
- 【企業(yè)盈利能力探析的國內(nèi)外文獻綜述2400字】
- 三年級上冊數(shù)學口算題1000道帶答案
- 蘇教版(2024新版)一年級上冊科學全冊教案教學設計
評論
0/150
提交評論