日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
云上OLAP引擎查詢性能評估框架:設(shè)計與實現(xiàn)

云上 OLAP 引擎查詢性能評估框架:設(shè)計與實現(xiàn)

作者:顧榮、吳侗雨 2022-09-15 09:24:43

云計算 本文將介紹本團隊在設(shè)計與實現(xiàn) Raven 時遇到的問題、對應(yīng)的解決方案、以及當(dāng)前的初步研究成果。

公司主營業(yè)務(wù):成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出合肥免費做網(wǎng)站回饋大家。

背景

公有云是一種為用戶提供經(jīng)濟方便的計算資源的平臺。隨著云計算技術(shù)的快速發(fā)展,以及大數(shù)據(jù)查詢需求的日益增加,很多公有云的云計算應(yīng)用市場中,出現(xiàn)了越來越多云上 OLAP 引擎服務(wù)。為了能夠根據(jù)自己的業(yè)務(wù)需求選擇合適的 OLAP 引擎,并通過合適的配置使引擎在最佳狀態(tài)運行,用戶需要對當(dāng)前使用的查詢引擎性能進行評估。

當(dāng)前 OLAP 引擎性能評估框架在云上部署使用時面臨三個主要挑戰(zhàn):

  • 對云環(huán)境適應(yīng)能力弱。傳統(tǒng)性能評估框架誕生時,尚未具備云上特有的 PaaS、IaaS、SaaS 特性,也不具備對存算分離的適配支持。使用云上 OLAP 時,需要充分利用云計算特性分析 OLAP 引擎性能。
  • 不具備復(fù)雜工作負載的復(fù)現(xiàn)能力。工作負載由數(shù)據(jù)集、查詢集、查詢序列組成。傳統(tǒng)的性能評估框架通常采用固定的數(shù)據(jù)集和查詢級,查詢序列也主要以線性序列為主。現(xiàn)代 OLAP 查詢場景的復(fù)雜化,對特定場景下的數(shù)據(jù)集和查詢集的特征刻畫、高并發(fā)復(fù)雜場景支持等,提出了更高的要求。
  • 難以全面評估查詢性能與上云成本。傳統(tǒng)評估體系(如 TPC-H、TPC-DS)不體現(xiàn)成本因素,而在云上資源近乎無限的大環(huán)境里,不考慮成本的評估會造成很大的偏見,甚至得出錯誤的結(jié)論。云計算具備自定義租用服務(wù)器規(guī)模的特性,因此云上成本是可變、可設(shè)置的,其單價也隨時間波動。用戶既希望 OLAP 查詢能以最快的速度被執(zhí)行,又希望能盡可能節(jié)省成本,因此需要性能評估框架全面評估查詢性能與上云成本,根據(jù)用戶需求提供最具性價比的云服務(wù)器與 OLAP 引擎搭配方式。

針對上述問題,南京大學(xué)顧榮老師、吳侗雨博士等人與 Apache Kylin 社區(qū)團隊聯(lián)合研究,設(shè)計開發(fā)一套云上 OLAP 引擎查詢性能評估框架,名為 Raven。

Raven 被設(shè)計來幫助用戶回答一些 OLAP 引擎上云面臨的實際而又重要的問題:

  • 對于一份真實生產(chǎn)數(shù)據(jù)中的真實工作負載(數(shù)據(jù)載入 + 查詢),哪個 OLAP 引擎在云上運行的 IT 成本更低?
  • 給定一個查詢速度的目標(biāo),在能達成的速度目標(biāo)的前提下,哪個 OLAP 引擎在云上能給出更低的 IT 成本?
  • 再加上考慮數(shù)據(jù)載入速度的因素,情況又會如何?

本文將介紹本團隊在設(shè)計與實現(xiàn) Raven 時遇到的問題、對應(yīng)的解決方案、以及當(dāng)前的初步研究成果。

適應(yīng)云架構(gòu)的性能評估框架設(shè)計

OLAP 引擎查詢性能評估框架適配云架構(gòu)時,實際上是在適配云上的 PaaS、IaaS、SaaS 特性。具體而言,云服務(wù)器的很多功能都以服務(wù)的方式呈現(xiàn)給用戶,用戶只需要調(diào)用對應(yīng)服務(wù)的接口,即可實現(xiàn)不同的目的,如云服務(wù)器創(chuàng)建、文件操作、性能指標(biāo)獲取、應(yīng)用程序執(zhí)行等。在文件操作中,由于云服務(wù)器采用計算存儲分離的架構(gòu),一些數(shù)據(jù)可能需要通過服務(wù)從遠程的云存儲服務(wù)上拉取。

圖 1:基于公有云平臺的 Raven 性能評估框架

結(jié)合上述需求,Raven 的框架如圖 1 所示。其執(zhí)行步驟如下:

  1. 用戶輸入性能測試配置信息,觸發(fā)性能測試啟動模塊,該模塊負責(zé)根據(jù)用戶配置創(chuàng)建啟動云上 OLAP 性能測試所需的云服務(wù)器和計算環(huán)境。
  2. 性能測試啟動模塊將工作負載、數(shù)據(jù)集、性能指標(biāo)、引擎參數(shù)等信息傳遞給配置控制與分發(fā)模塊,該模塊負責(zé)將上述信息分發(fā)到對應(yīng)的服務(wù)接口或模塊上。
  3. 配置控制與分發(fā)模塊觸發(fā)工作負載執(zhí)行模塊,工作負載執(zhí)行模塊啟動配置好的 OLAP 引擎,并根據(jù)工作負載設(shè)置隨時間向 OLAP 引擎發(fā)送查詢請求。
  4. OLAP 引擎向本地存儲或云存儲拉取數(shù)據(jù)集,執(zhí)行查詢。查詢執(zhí)行過程中,工作負載執(zhí)行模塊記錄查詢開始和結(jié)束的時間戳,并啟動資源管理服務(wù),監(jiān)控 OLAP 引擎查詢期間的性能指標(biāo)。查詢結(jié)束時,工作負載執(zhí)行模塊將時間戳和性能指標(biāo)信息輸出到云存儲中。
  5. 啟動性能分析評分模塊,從遠程云存儲中拉取時間戳和性能指標(biāo)信息,導(dǎo)入用戶自定義的評分模型,得到最終的性能評估結(jié)果。

上述設(shè)計的優(yōu)點在于:

  • 充分利用可自定義的云服務(wù)器數(shù)量和配置,允許用戶自定義其希望創(chuàng)建的集群環(huán)境。
  • 支持向遠程的云存儲服務(wù)讀寫數(shù)據(jù),適應(yīng)云環(huán)境的存算分離架構(gòu)。
  • 使用云服務(wù)提供商的資源管理服務(wù),得以獲取大量系統(tǒng)資源使用狀況的信息。
  • 支持可插拔的引擎接口,用戶可任意指定其所需測試的 OLAP 引擎及其配置。

實際使用時,用戶的輸入以一個.yaml 文件呈現(xiàn),可仿照如下格式:

  • engine: kylin
  • workload: tpc-h
  • test_plan: one-pass
  • metrics: all

用戶需要的云服務(wù)器數(shù)量、每臺機器的配置、不同的引擎等,均可通過 JSON 文件配置。

基于事件和時間戳的工作負載設(shè)計

傳統(tǒng)的 OLAP 查詢引擎通常采用固定的數(shù)據(jù)集和查詢集,并執(zhí)行一系列的查詢,查看 OLAP 引擎的查詢性能。然而,當(dāng)前很多行業(yè)的工作負載正更加復(fù)雜。

  • 越來越多的企業(yè)意識到自身數(shù)據(jù)及業(yè)務(wù)具有鮮明特征,希望能夠在給定的數(shù)據(jù)特征下獲得最佳的 OLAP 查詢方案。
  • 除了傳統(tǒng)的 OLAP 查詢外,越來越多的預(yù)計算技術(shù),如 ETL、索引、Kylin 的 Cube 等,亟待納入到 OLAP 引擎性能的考察中。
  • 數(shù)據(jù)量的快速增長使得高并發(fā)查詢、QPS 可變查詢的場景越來越多,傳統(tǒng)的線性查詢方法很難上述新場景進行準(zhǔn)確評估。

Raven 使用了一種基于時間線的事件機制描述復(fù)雜的 OLAP 工作場景。該機制下,一個工作負載由多個階段構(gòu)成,一個階段由多個事件構(gòu)成。在時間線上,一個工作負載被描述為若干個階段的順序執(zhí)行。每個階段分為線上階段和線下階段兩種:線上階段執(zhí)行實際的查詢請求,線下階段執(zhí)行預(yù)計算等操作。事件是對工作負載中每一個原子執(zhí)行單元的抽象,可以是查詢請求、shell 命令,或用 Python 等編程語言編寫的腳本。

圖 2:Raven 工作負載的執(zhí)行過程

Raven 的工作負載如圖 2 所示。其執(zhí)行步驟如下:

  1. 啟動第一個階段,加載工作負載配置、引擎配置等;
  2. 當(dāng)事件的計時器被觸發(fā)時,將時間事件生成控制器,讀取該事件對應(yīng)的查詢語句或腳本內(nèi)容,進入事件執(zhí)行隊列,等待執(zhí)行。
  3. 出事件執(zhí)行隊列后,進入事件執(zhí)行控制器,開啟線程執(zhí)行鉤子函數(shù),與 OLAP 引擎或命令行執(zhí)行交互操作,并等待響應(yīng),得到響應(yīng)后將事件插入到資源收集隊列中。
  4. 出資源收集隊列后,進入事件資源收集控制器,將操作的時間戳信息輸出到云存儲服務(wù)上。
  5. 當(dāng)該階段內(nèi)所有時間完成后,啟動下一個階段,然后按順序執(zhí)行每個階段,直到整個工作負載結(jié)束。

上述設(shè)計的優(yōu)點在于:

  • 支持自定義數(shù)據(jù)集和查詢集,允許用戶充分利用其業(yè)務(wù)特點進行性能評估。
  • 支持預(yù)計算,允許用戶評估預(yù)計算和實際查詢的整體性能。
  • 帶時間戳的執(zhí)行方法和線程管理策略,支持高并發(fā)查詢,允許模擬 QPS 隨時間波動的工作負載。

舉個例子,可以使用如下的 .yaml 配置文件,在 AWS 上啟動一主四從的 EC2 集群,并部署 Presto 引擎,指定數(shù)據(jù)集為 SSB(SF=100)且工作負載滿足泊松分布(λ=3.0),工作負載持續(xù)時間為 600 秒:

Cloud:

  • Name: AWS
  • Description: Amazon Web Service.

Properties:

  • Region: ap-southeast-1
  • Ec2KeyName: key_raven
  • MasterInstaceCount: 1
  • MasterInstanceType: m5.xlarge
  • CoreInstanceCount: 4
  • CoreInstanceType: m5.4xlarge

Engine:

  • Name: presto
  • Description: Presto.
  • Properties:
  • host: localhost
  • port: 8080
  • user: hive
  • catalog: hive
  • concurrency: 1

Testplan:

  • Name: Timeline template.

Properties:

  • Type: Timeline
  • Path: config/testplan/template/timeline_template.yaml

Workload:

  • Name: SSB
  • Type: QPS

Parameters:

  • database: ssb_100
  • distribution: poisson
  • duration: 600
  • lam: 3.0

Raven 預(yù)置了一些常見工作負載供用戶使用,如均勻分布、突發(fā)高并發(fā)分布等。

基于自定義多元函數(shù)的性能評估模型

在性能評估方面,云上機器的一個特點是大小、配置可自定義調(diào)節(jié)。因此,如果只考慮查詢性能,理論上可以通過租用大量的高性能設(shè)備提升性能。但是,這樣也會造成云上計算成本飆升。因此,需要一套機制實現(xiàn)性能和成本的平衡和綜合考慮。

Raven 的性能評估方法是高度自定義的,允許用戶根據(jù)可以獲取的參數(shù)指標(biāo),使用函數(shù)表達式組合起來,得到一個評估分數(shù)。

Raven 中可獲取的參數(shù)指標(biāo)主要有以下幾類:

  • 查詢質(zhì)量指標(biāo):包括所有查詢的總查詢時間、平均查詢時間、查詢時間 95% 分位數(shù)、最大查詢時間;
  • 資源使用效率:內(nèi)存和 CPU 的平均使用率、負載均衡、資源占用率超過 90% 的時間占總時間的比例;
  • 云上金錢成本:可直接通過云服務(wù)商提供的應(yīng)用服務(wù)獲取,主要包含四個部分的開銷:存儲、計算、服務(wù)調(diào)用、網(wǎng)絡(luò)傳輸。

Raven 給出的評分是相對的,只能在相同模型的評分之間進行比較。性能評估得分是云上成本和云上開銷的乘積,評分越低,OLAP 引擎的性能越好。云上開銷可使用線性模型,對上述參數(shù)賦予權(quán)重計算;也可使用非線性模型,將上述參數(shù)代入到一個函數(shù)表達式中。

Raven 也為用戶提供了一系列模板函數(shù):

  • 綜合模型:PTO=10×ln(PoC×(ravg+qavg))PTO=10×ln?(PoC×(ravg+qavg)).
  • 速度優(yōu)先模型:PTO=10×ln(ravg+qavg)PTO=10×ln?(ravg+qavg)
  • 預(yù)算優(yōu)先模型:PTO=11+e8(b?PoC)×(ravg+qavg)PTO=11+e8(b?PoC)×(ravg+qavg)
  • 查詢效率模型:PTO=PoC×qmax+5q95%+94qavg100PTO=PoC×qmax+5q95%+94qavg100
  • 查詢阻塞模型:PTO=PoC×ln(rmax )PTO=PoC×ln?(rmax ) 

其中,PTO 表示性能評分,PoC 表示云上成本,ravgravg、qavgqavg 分別表示平均響應(yīng)時間和平均執(zhí)行時間,rmaxrmax、qmaxqmax 分別表示最大響應(yīng)時間和最大執(zhí)行時間,b 表示預(yù)算金額,q95%q95% 表示查詢時間 95% 分位數(shù)。這里我們結(jié)合回顧下前文提出用戶需要關(guān)注的幾個際問題,不難看出,預(yù)算優(yōu)先模型主要用于評估和回答:哪個 OLAP 引擎在云上運行的 IT 成本更低?速度優(yōu)先模型、查詢效率模型、查詢阻塞模型主要用于評估和回答:在滿足不同查詢響應(yīng)等約束的情況下,哪個 OLAP 引擎的云上運行成本更低?綜合模型則是通過設(shè)置不同權(quán)重來綜合考慮成本預(yù)算和查詢響應(yīng)效率的評估 OLAP 引擎的云上性能模型。

實現(xiàn)與效果驗證

我們在亞馬遜 AWS 上實現(xiàn)了 Raven 的上述設(shè)計,并使用該性能評估框架執(zhí)行 OLAP 引擎,查看不同引擎的查詢效果。

圖 3:不同引擎在不同評分模型下,運行均勻查詢 10 分鐘的性能評分

圖 4:在 Presto 和 Kylin 上運行突發(fā)高并發(fā)分布的性能評分

從圖 3 中可以看出,運行均勻查詢時,Athena 和 Kylin 是較好的解決方案。但是,使用不同模型會得到不同的評估結(jié)論。當(dāng)綜合考慮查詢速度的云上成本時,由于 Athena 直接通過調(diào)用服務(wù)執(zhí)行查詢,因此云上成本較低,評分也更低。但是,當(dāng)優(yōu)先考慮速度時,由于 Kylin 使用預(yù)計算技術(shù)實現(xiàn)了高速查詢,因此使用速度優(yōu)先模型時,Kylin 的評分更低。

從圖 4 可以看出,運行突發(fā)高并發(fā)分布時,若采用查詢阻塞模型,隨著同時輸入的查詢數(shù)量增加,Presto 的性能評分隨查詢數(shù)量增加線性增長;但是,Kylin 并未受到查詢數(shù)量增加的影響,性能評分保持穩(wěn)定。這是因為 Kylin 的預(yù)計算技術(shù)提升了計算效率,當(dāng)查詢大量涌入時,Kylin 能以更高的效率處理這些查詢,減少查詢在隊列中的阻塞,使性能評分更為出色。當(dāng)然,如果用戶集中的查詢數(shù)量不大,Presto 的性能評分更有優(yōu)勢,因為其沒有預(yù)計算的相關(guān)開銷。

未來展望

未來的研究主要考慮以下方面:

  • 應(yīng)用實現(xiàn)更多引擎,嘗試兼容云原生引擎,以進行性能評估。
  • 優(yōu)化工作負載的表達形式,使用戶可以根據(jù)自己的業(yè)務(wù)需求,更容易地開發(fā)出多樣化、具代表性的工作負載。
  • 形成更多標(biāo)準(zhǔn)化的評分模型,供不同工作負載之間的橫向?qū)Ρ取?/li>
  • 結(jié)合當(dāng)前評分結(jié)果,進一步分析不同 OLAP 引擎的性能優(yōu)劣。


新聞名稱:云上OLAP引擎查詢性能評估框架:設(shè)計與實現(xiàn)
標(biāo)題網(wǎng)址:http://www.5511xx.com/article/cdihjsj.html