自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

快手BI大數(shù)據(jù)分析場(chǎng)景性能優(yōu)化實(shí)踐

大數(shù)據(jù)
在信息化時(shí)代,大數(shù)據(jù)已經(jīng)成為企業(yè)決策、市場(chǎng)分析、科研創(chuàng)新等眾多領(lǐng)域的核心驅(qū)動(dòng)力。隨著數(shù)據(jù)規(guī)模的爆炸性增長(zhǎng),如何高效地處理和分析海量數(shù)據(jù),實(shí)現(xiàn)性能的顯著提升,成為各行各業(yè)迫切需要解決的關(guān)鍵問(wèn)題。本文將為大家介紹快手大數(shù)據(jù)分析場(chǎng)景性能優(yōu)化實(shí)踐。

一、快手分析產(chǎn)品介紹

KwaiBI 產(chǎn)品是當(dāng)前快手內(nèi)部使用的數(shù)據(jù)分析產(chǎn)品,平臺(tái)愿景是:致力于通過(guò)豐富分析工具產(chǎn)品,打造一站式的數(shù)據(jù)分析平臺(tái),提升數(shù)據(jù)獲取與分析效率。KwaiBI 目前月活達(dá)到 1.5W,支持 5W 以上的報(bào)表數(shù),10W 以上的模型,接入 150 多個(gè)大大小小的業(yè)務(wù)。

KwaiBI 提供 5 種數(shù)據(jù)消費(fèi)場(chǎng)景,取數(shù)、多維分析、可視化、推送、門戶。其中主要的分析場(chǎng)景是多維分析和可視化。

圖片

1. 快手分析平臺(tái)的分析能力介紹

快手分析平臺(tái)底層對(duì)接多種數(shù)據(jù)源,包括大數(shù)據(jù)存儲(chǔ)各種引擎、傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),也支持一些本地文件的數(shù)據(jù)分析。

在使用 KwaiBI 分析平臺(tái)做數(shù)據(jù)分析之前,用戶需要將以上這些數(shù)據(jù)源先接入到分析平臺(tái)。數(shù)據(jù)接入通常由數(shù)據(jù)內(nèi)容的建設(shè)者(DE/DPM)完成,會(huì)對(duì)數(shù)據(jù)源進(jìn)行數(shù)據(jù)建模,即構(gòu)建表與表之間的關(guān)系,通過(guò)數(shù)據(jù)建模得到相應(yīng)的數(shù)據(jù)模型,在此模型之上,構(gòu)建數(shù)據(jù)集(數(shù)據(jù)集通常是一個(gè)業(yè)務(wù)域或者一個(gè)業(yè)務(wù)主題的集合)。在數(shù)據(jù)接入過(guò)程中,如果標(biāo)準(zhǔn)化的指標(biāo)維度會(huì)通過(guò)指標(biāo)中臺(tái),進(jìn)行規(guī)范化管理指標(biāo)/維度,再直接接入分析平臺(tái)。

圖片

數(shù)據(jù)接入后,分析平臺(tái)提供了一系列的分析能力,如基礎(chǔ)的數(shù)據(jù)分析能力(數(shù)據(jù)明細(xì)、數(shù)據(jù)聚合、跨源計(jì)算),在基礎(chǔ)的分析之上可以做一些復(fù)雜分析,如同環(huán)比、占比、LOD 分析、表計(jì)算等?;谶@些強(qiáng)大的分析能力,數(shù)據(jù)的終端消費(fèi)用戶(DA/運(yùn)營(yíng))通過(guò)多維分析和可視化可使用這些能力做分析。

2.快手分析場(chǎng)景性能挑戰(zhàn)

快手大數(shù)據(jù)分析平臺(tái),作為一個(gè)數(shù)據(jù)輸出平臺(tái),對(duì)于用戶而言,面臨的挑戰(zhàn)主要包括:

  • 性能分析難:不清楚耗時(shí)在哪個(gè)環(huán)節(jié),平臺(tái)對(duì)用戶來(lái)說(shuō)是黑盒的;不了解數(shù)據(jù)消費(fèi)用戶的查詢特征;性能波動(dòng)難以歸因。
  • 優(yōu)化門檻高:需要很強(qiáng)的知識(shí)背景,很強(qiáng)的專業(yè)領(lǐng)域性,而分析用戶通常是小白用戶無(wú)法自己進(jìn)行分析和優(yōu)化。

平臺(tái)方面,也面臨一些挑戰(zhàn):

  • 分析復(fù)雜度高:30% 以上的復(fù)雜分析,包含同環(huán)比、占比、LOD 分析等;
  • 引擎查詢復(fù)雜度高:關(guān)聯(lián)查詢多、數(shù)據(jù)量大,查詢時(shí)間范圍大;
  • 引擎局限性:當(dāng)前快手主要的引擎是 ClickHouse,其對(duì)關(guān)聯(lián)查詢不友好,SQL 優(yōu)化不智能。(每個(gè)引擎都有其自身局限性)

3.快手分析場(chǎng)景性能優(yōu)化實(shí)踐

(1)打法策略

針對(duì)性能分析難的問(wèn)題,分析平臺(tái)通過(guò)進(jìn)行全鏈路埋點(diǎn),來(lái)得知性能耗時(shí)到底在哪個(gè)環(huán)節(jié)?;谶@些埋點(diǎn),平臺(tái)可對(duì)用戶進(jìn)行查詢畫(huà)像分析,從而了解用戶在分析什么指標(biāo)、在分析什么維度、分析的時(shí)間范圍。有了用戶畫(huà)像信息后,進(jìn)一步可構(gòu)建自主化數(shù)據(jù)集性能診斷分析工具,進(jìn)行開(kāi)放式自助的性能分析。

針對(duì)優(yōu)化門檻高的問(wèn)題,分析平臺(tái)會(huì)對(duì)查詢自動(dòng)優(yōu)化,包括緩存預(yù)熱、物化加速、查詢優(yōu)化等各種手段。此外,基于已有的用戶查詢畫(huà)像,可以用數(shù)據(jù)消費(fèi)來(lái)驅(qū)動(dòng)數(shù)據(jù)內(nèi)容,進(jìn)行相關(guān)優(yōu)化。

整體思路主要分為四步,即確定目標(biāo)、確認(rèn)團(tuán)隊(duì)(參與方)、性能分析(分析不同場(chǎng)景下性能原因)、制定解決方案并落地。

(2)確定目標(biāo)

分析性能的目標(biāo),是以分析平臺(tái)數(shù)據(jù)消費(fèi)用戶視角來(lái)評(píng)價(jià)分析平臺(tái)的性能,主要抽象成三個(gè)性能北極星指標(biāo):查詢平均耗時(shí)、查詢耗時(shí) P90、查詢成功率。針對(duì)三個(gè)指標(biāo),分場(chǎng)景來(lái)確定目標(biāo)值。比如在可視化看板場(chǎng)景下,大多是一些重要數(shù)據(jù)的沉淀,也是一些重要的人在看,所以對(duì)性能保障要求相對(duì)更高;對(duì)于多維分析場(chǎng)景,更自主化,靈活化,用于日常運(yùn)營(yíng),這時(shí)性能目標(biāo)可以定得相對(duì)寬松一些。

總的來(lái)說(shuō),性能目標(biāo)并沒(méi)有一個(gè)絕對(duì)值,需要根據(jù)公司的業(yè)務(wù)場(chǎng)景,各個(gè)業(yè)務(wù)團(tuán)隊(duì)的分析需求來(lái)達(dá)成。以指標(biāo)作為牽引,持續(xù)追蹤對(duì)性能優(yōu)化的效果。

(3)確認(rèn)團(tuán)隊(duì)

分析性能的提升不僅僅是分析平臺(tái)的,性能優(yōu)化是需要分析平臺(tái)團(tuán)隊(duì)、數(shù)倉(cāng)團(tuán)隊(duì)以及引擎團(tuán)隊(duì),三方來(lái)進(jìn)行合作共建,共同保障的。一個(gè)完整的分析鏈路包括引擎查詢 以及 分析平臺(tái)二次分析計(jì)算,其影響因素是多因子的,若僅僅從分析平臺(tái)本身做功,只能是把分析平臺(tái)內(nèi)部?jī)?yōu)化做好。但是一些數(shù)據(jù)內(nèi)容建設(shè)質(zhì)量提升,以及引擎層面計(jì)算優(yōu)化,需要三方來(lái)進(jìn)行合作共建。

圖片

(4)性能分析

做好性能優(yōu)化,我們首先要明確性能劣化的根因,進(jìn)而對(duì)癥下藥。平臺(tái)側(cè)希望通過(guò)沉淀通用的查詢性能分析工具,來(lái)幫助用戶進(jìn)行自助分析。自助分析的前提要有充分的元數(shù)據(jù),元數(shù)據(jù)主要是兩類,一個(gè)是分析服務(wù)的埋點(diǎn),另外是收集一些物理元數(shù)據(jù)。

結(jié)合兩類元數(shù)據(jù),則可以構(gòu)建數(shù)據(jù)集的查詢畫(huà)像數(shù)據(jù)。這樣就可以了解到,用戶在看哪些高熱的指標(biāo)維度、使用了哪些高熱表以及通常查詢哪些時(shí)間范圍的數(shù)據(jù),也可以看到分析平臺(tái)自己的一些指標(biāo),比如緩存命中率以及其它一些內(nèi)部查詢的耗時(shí),這些都可以根據(jù)元數(shù)據(jù)分析出來(lái)。另外,也有一些診斷的規(guī)則合集,這些診斷規(guī)則,主要是一些對(duì)查詢性能不友好的規(guī)則。基于畫(huà)像和規(guī)則,最終得到一個(gè)診斷結(jié)論:數(shù)據(jù)集可能存在哪些數(shù)據(jù)問(wèn)題、有哪些可以優(yōu)化的空間。常見(jiàn)的性能問(wèn)題可以基于分析工具來(lái)自助分析。

圖片

(5)解決方案

基于性能分析的結(jié)論,分析平臺(tái)側(cè)制定體系化的解決方案,推動(dòng)三個(gè)團(tuán)隊(duì)共同建設(shè),達(dá)成優(yōu)化目標(biāo)。分析平臺(tái)本身做平臺(tái)的性能優(yōu)化,通過(guò)比如緩存預(yù)熱、物化加速、查詢優(yōu)化等各種手段,優(yōu)化分析平臺(tái)的性能。分析平臺(tái)為數(shù)倉(cāng)提供數(shù)據(jù)集的性能診斷,把數(shù)據(jù)集可能存在的問(wèn)題,直接暴露給數(shù)倉(cāng)團(tuán)隊(duì),針對(duì)相應(yīng)問(wèn)題,來(lái)做針對(duì)化的數(shù)據(jù)建設(shè)優(yōu)化,比如一些高熱查詢可以做聚合表、加索引、做數(shù)據(jù)哈希等。

圖片

數(shù)倉(cāng)做的一些高質(zhì)量的數(shù)據(jù),也會(huì)接入數(shù)據(jù)平臺(tái),對(duì)用戶的體現(xiàn)就是性能和質(zhì)量的提升。引擎團(tuán)隊(duì)會(huì)對(duì)分析平臺(tái)和數(shù)倉(cāng),提供引擎方面的能力支持,也會(huì)做持續(xù)的性能優(yōu)化。

以下重點(diǎn)介紹分析平臺(tái)側(cè)做的一些優(yōu)化策略:

分析平臺(tái)性能優(yōu)化-緩存預(yù)熱

對(duì)于一些固化的看數(shù)場(chǎng)景,例如看板場(chǎng)景,提前把看板數(shù)據(jù)或圖表查詢放到緩存中,當(dāng)用戶使用時(shí),直接從緩存取數(shù)據(jù),這樣不管原始查詢的數(shù)據(jù)量有多大,直接讀緩存的性能一定是很高效的。

緩存預(yù)熱能力構(gòu)建主要是四部分,預(yù)熱觸發(fā)器、預(yù)熱計(jì)算器、預(yù)熱執(zhí)行器、預(yù)熱監(jiān)控。

預(yù)熱觸發(fā)器判斷什么情況下需要做緩存預(yù)熱。比如定時(shí)調(diào)度,在用戶高峰使用期,提前進(jìn)行緩存預(yù)熱。另外,進(jìn)行數(shù)據(jù)加速的同時(shí),也要保障數(shù)據(jù)質(zhì)量。

預(yù)熱計(jì)算器,計(jì)算歷史的哪些查詢、哪些圖表,是值得預(yù)熱、有價(jià)值的。通過(guò)觀察數(shù)據(jù)集的血緣,來(lái)知道數(shù)據(jù)是離線生產(chǎn)的還是實(shí)時(shí)生產(chǎn)的,很顯然實(shí)時(shí)生產(chǎn)的數(shù)據(jù)不適合做預(yù)熱。另外,對(duì)于一些固定化的、高熱的圖表做預(yù)熱。最終計(jì)算到,想要預(yù)熱的是哪些圖表,或者哪些用戶歷史查詢。

圖片

因?yàn)轭A(yù)熱執(zhí)行器預(yù)熱的量可能很大,考慮到對(duì)服務(wù)負(fù)載,要加入一些并發(fā)控制,最后把預(yù)熱的數(shù)據(jù)放到緩存中。

最后是預(yù)熱的監(jiān)控,監(jiān)控緩存預(yù)熱的執(zhí)行情況,執(zhí)行耗時(shí)以及緩存預(yù)熱的緩存命中率。經(jīng)過(guò)緩存預(yù)熱建設(shè),可視化看板場(chǎng)景的首屏命中率可達(dá)到 90%,非首屏的緩存命中率達(dá)到了 30%。

分析平臺(tái)性能優(yōu)化-查詢優(yōu)化

查詢的優(yōu)化首先會(huì)基于快手開(kāi)放分析表達(dá)式 OAX(快手面向分析場(chǎng)景的統(tǒng)一分析語(yǔ)言,上述所有分析場(chǎng)景都基于 OAX 構(gòu)建)。即將用戶最終的數(shù)據(jù)分析抽象成 OAX 語(yǔ)言,并對(duì)此 OAX 語(yǔ)言進(jìn)行解析,知道用戶有哪些高級(jí)計(jì)算,以及哪些是基于模型或者基于物理表的計(jì)算,然后會(huì)進(jìn)行一些初級(jí)的分析編排。

接著進(jìn)行 AST 優(yōu)化。AST 的葉子節(jié)點(diǎn)是從引擎來(lái)讀取數(shù)據(jù),但是對(duì)于分析平臺(tái)來(lái)說(shuō),有的是面向表,有的是面向模型(基于表與表之間的關(guān)系,構(gòu)建模型)。一個(gè)數(shù)據(jù)集可以有多個(gè)模型,一個(gè)指標(biāo)在多個(gè)模型中都可以支持。其中會(huì)進(jìn)行模型搜索的優(yōu)化,以保障選取的表或模型,是數(shù)據(jù)準(zhǔn)確的,同時(shí)保障選取的模型,其取數(shù)效率是最優(yōu)的。取到既滿足準(zhǔn)確性,又高效率的一個(gè)模型。

圖片

有了模型后,會(huì)把這個(gè)模型翻譯成引擎的查詢語(yǔ)言,并在翻譯中,做一些通用的或者 Native 的 SQL 優(yōu)化。

當(dāng)葉子節(jié)點(diǎn)也是面向引擎的 SQL 的時(shí)候,AST 就可以真正的物理編排,物理編排后就可以執(zhí)行了。

快手在查詢優(yōu)化過(guò)程中,沉淀了 50 多個(gè)通用的 & Native 優(yōu)化規(guī)則包括:

  • 復(fù)雜分析查詢下推:占比或者同環(huán)比這些復(fù)雜分析,盡量轉(zhuǎn)換成一個(gè)完整的 SQL 下推執(zhí)行;
  • 謂詞下推;
  • 聚合算子優(yōu)化;
  • JOIN 順序調(diào)整。

分析平臺(tái)性能優(yōu)化-物化加速

物化加速就是構(gòu)建一個(gè)最終的結(jié)果表,把數(shù)據(jù)計(jì)算過(guò)程通過(guò) ETL 生產(chǎn)直接生產(chǎn)到結(jié)果表內(nèi)。

快手物化加速當(dāng)前使用的是生成生產(chǎn)任務(wù)方式來(lái)做數(shù)據(jù)生產(chǎn),而非利用 OLAP 引擎物化能力。面對(duì)不同的應(yīng)用場(chǎng)景,有不同的性能目標(biāo),對(duì)歷史查詢的圈選也不一樣。

圖片

物化加速過(guò)程,首先是物化模型分析,把用戶歷史查詢的指標(biāo)維度,抽象成一個(gè)指標(biāo)維度的模型,找出超過(guò)性能目標(biāo)的指標(biāo)維度組合,分析其聚合比(聚合后的數(shù)據(jù)行數(shù)和原行數(shù)的比率,聚合比越低說(shuō)明聚合后的行數(shù)越少,最終的查詢效果越好)。接下來(lái),對(duì)所有這些高熱指標(biāo)維度物化模型做排序,綜合考慮物化模型的歷史查詢次數(shù)以及耗時(shí)進(jìn)行排序,選出一個(gè)或幾個(gè)收益會(huì)比較高的模型來(lái)做物化加速生產(chǎn)。

有了需要物化加速的目標(biāo)模型之后,會(huì)自動(dòng)生成生產(chǎn)任務(wù),然后生產(chǎn)任務(wù)進(jìn)行生產(chǎn),最終數(shù)據(jù)落到 Hive 或 ClickHouse。生產(chǎn)出的結(jié)果表,最終也會(huì)自動(dòng)接入分析平臺(tái),結(jié)果表與指標(biāo)進(jìn)行綁定。

這就是一種數(shù)據(jù)消費(fèi)驅(qū)動(dòng)生產(chǎn)的場(chǎng)景。知道數(shù)據(jù)終端的消費(fèi)是什么,然后來(lái)做數(shù)據(jù)生產(chǎn)。使得平均結(jié)果表的性能會(huì)有 50% 的提升。也會(huì)帶來(lái)效率提升,因?yàn)樽詣?dòng)生成的生產(chǎn)任務(wù),結(jié)果表也會(huì)自動(dòng)接入系統(tǒng),提升數(shù)據(jù)生產(chǎn)和接入效率。

(6)引擎的性能優(yōu)化-湖倉(cāng)一體 OLAP 引擎 Bleem

在引擎層面的優(yōu)化,快手的策略是構(gòu)建統(tǒng)一的湖倉(cāng)一體化分析引擎 Bleem,然后在 Bleem 支持高性能的引擎計(jì)算能力。其主要的能力建設(shè)包括以下幾點(diǎn):

首先緩存方面,構(gòu)建不同級(jí)別的緩存,包括元數(shù)據(jù)緩存、數(shù)據(jù)緩存、索引數(shù)據(jù)緩存。其次算子執(zhí)行方面,有向量化、多線程、分布式。以及物化視圖、優(yōu)化器(RBO&CBO 優(yōu)化器、針對(duì) JOIN 的優(yōu)化)。

圖片

Bleem 是快手正在推廣使用的湖倉(cāng)一體引擎。其定位不是為了替換 ClickHouse,ClickHouse 已經(jīng)滿足很多需求。湖倉(cāng)一體引擎 Bleem 會(huì)對(duì) ClickHouse 的一些痛點(diǎn)問(wèn)題進(jìn)行優(yōu)化,比如 join 的優(yōu)化,RBO&CBO 的優(yōu)化。另外,Bleem 直接面向數(shù)據(jù)湖,主要目的是提升數(shù)據(jù)湖的分析效率,最終目標(biāo)是實(shí)現(xiàn)接近 ClickHouse 的性能。這樣數(shù)據(jù)分析就可以直接從數(shù)據(jù)湖中進(jìn)行,避免一些數(shù)據(jù)生產(chǎn)的消耗。

4.未來(lái)展望

以上介紹了分析場(chǎng)景的性能優(yōu)化實(shí)踐??偨Y(jié)下來(lái),性能優(yōu)化是需要團(tuán)隊(duì)協(xié)同作戰(zhàn),才能實(shí)現(xiàn)最終面向用戶高效分析,例如分析診斷、查詢優(yōu)化、物化加速、緩存預(yù)熱、數(shù)倉(cāng)建設(shè)、引擎優(yōu)化等等。對(duì)于未來(lái)發(fā)展方向,數(shù)據(jù)分析有一個(gè)永恒的話題就是極致的分析性能,未來(lái)一定是軟硬結(jié)合來(lái)進(jìn)行優(yōu)化。最終的愿景目標(biāo)是能夠從問(wèn)題發(fā)現(xiàn)、分析、優(yōu)化能夠全鏈路自動(dòng)化/智能化,進(jìn)而減少人力投入,又能提供高效數(shù)據(jù)分析。

5.問(wèn)答環(huán)節(jié)

Q1:關(guān)于 Bleem 有沒(méi)有跟社區(qū)合作的一些發(fā)展計(jì)劃,例如開(kāi)源。

A1:了解到目前還沒(méi)有,這個(gè)還在持續(xù)優(yōu)化迭代過(guò)程中。

Q2:Bleem 在生態(tài)圈里屬于哪一層?

A2:數(shù)據(jù)湖的一個(gè)分析引擎。

Q3:物化優(yōu)化能不能優(yōu)化跨表 JOIN?

A3:可以的。物化有兩種模式,一種是聚合模式,另一種是全量模式,主要是優(yōu)化 JOIN。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2021-03-15 10:43:20

大數(shù)據(jù)數(shù)據(jù)分析工具

2024-04-22 07:56:32

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)中臺(tái)數(shù)據(jù)服務(wù)

2019-05-31 12:03:06

SQLHadoop大數(shù)據(jù)

2014-06-30 10:59:21

2016-12-01 19:07:46

大數(shù)據(jù)數(shù)據(jù)分析

2023-05-31 06:49:54

圖表查詢數(shù)據(jù)查詢

2022-05-06 12:01:01

優(yōu)化小程序

2024-12-31 08:46:10

2017-09-18 17:59:23

Hadoop數(shù)據(jù)分析

2015-08-14 10:28:09

大數(shù)據(jù)

2016-12-20 16:03:08

大數(shù)據(jù)分析大數(shù)據(jù)

2015-10-12 17:40:12

數(shù)據(jù)分析實(shí)踐

2020-06-11 07:00:00

數(shù)據(jù)分析BI平臺(tái)

2015-08-11 15:52:52

大數(shù)據(jù)數(shù)據(jù)分析

2023-08-11 09:54:18

2021-04-25 21:11:48

數(shù)據(jù)工具技術(shù)

2021-10-12 15:25:08

大數(shù)據(jù)數(shù)據(jù)分析

2022-03-29 14:49:14

大數(shù)據(jù)數(shù)據(jù)分析

2013-04-09 09:28:20

大數(shù)據(jù)大數(shù)據(jù)全球技術(shù)峰會(huì)

2015-07-23 09:34:57

大數(shù)據(jù)數(shù)據(jù)分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)