国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐

1. 背景

日志領(lǐng)域是Elasticsearch(ES)最重要也是規(guī)模最大的應(yīng)用場景之一。這得益于 ES 有高性能倒排索引、靈活的 schema、易用的分布式架構(gòu),支持高吞吐寫入、高性能查詢,同時(shí)有強(qiáng)大的數(shù)據(jù)治理生態(tài)、端到端的完整解決方案。但原生 ES 在高吞吐寫入、低成本存儲(chǔ)、高性能查詢等方面還有非常大的優(yōu)化空間,本文重點(diǎn)剖析騰訊云大數(shù)據(jù) ES 團(tuán)隊(duì)在這三個(gè)方面的內(nèi)核增強(qiáng)優(yōu)化。

?

2. 日志領(lǐng)域的挑戰(zhàn)

我們先來看看日志領(lǐng)域的挑戰(zhàn)有哪些。

首先從日志本身的數(shù)據(jù)特點(diǎn)來看,主要以半結(jié)構(gòu)化、非結(jié)構(gòu)化為主,傳統(tǒng)的數(shù)據(jù)庫方案沒法很好的解決解析、存儲(chǔ)等問題。ES 支持 JSON 且支持動(dòng)態(tài)映射,高版本還支持 Runtime Feilds,能在查詢時(shí)動(dòng)態(tài)提取字段,天然支持了日志場景復(fù)雜、靈活的數(shù)據(jù)結(jié)構(gòu)。

日志數(shù)據(jù)進(jìn)入 ES 則面臨高并發(fā)、高吞吐的寫入性能挑戰(zhàn)。內(nèi)核層面我們進(jìn)行了定向路由、物理復(fù)制等重磅優(yōu)化,有效解決日志入口吞吐瓶頸,提升寫入性能一倍+。

日志數(shù)據(jù)的存儲(chǔ)是另一大挑戰(zhàn),日志往往是海量的且往往價(jià)值不高,存儲(chǔ)成本成為用戶最顧慮的痛點(diǎn)之一。騰訊云 ES 一方面通過壓縮編碼優(yōu)化來降低單位文檔存儲(chǔ)成本,另一方面我們通過基于云原生環(huán)境自研混合存儲(chǔ)方案,實(shí)現(xiàn)存儲(chǔ)與計(jì)算分離,降低存儲(chǔ)成本 50% 以上。

日志數(shù)據(jù)的出口,查詢性能也是一大挑戰(zhàn),海量數(shù)據(jù)場景下,大查詢對(duì)資源的開銷非常高,帶來的查詢延時(shí)也非常明顯。ES 原生支持了倒排索引,點(diǎn)查過濾的性能非常好,但無法滿足日志場景大范圍查詢、聚合分析等性能需求。對(duì)此,騰訊云 ES 進(jìn)行了查詢裁剪、查詢并行化等一系列系統(tǒng)性優(yōu)化,提升查詢性能數(shù)十倍。

下面是日志領(lǐng)域的挑戰(zhàn)總結(jié),后面將針對(duì)高吞吐寫入、低成本存儲(chǔ)、高性能查詢層面的優(yōu)化進(jìn)行詳細(xì)分析。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
日志領(lǐng)域的挑戰(zhàn)

3. 高吞吐寫入

3.1 定向路由

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
定向路由

ES 的一個(gè) Bulk 寫入先進(jìn)到協(xié)調(diào)節(jié)點(diǎn)(任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)),會(huì)被拆分為若干個(gè)分片粒度的子寫入請(qǐng)求,并分發(fā)給對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)。當(dāng)集群規(guī)模較大,索引的分片數(shù)較多的場景下,分布式寫入的扇出放大非常嚴(yán)重,很容易受到個(gè)別長尾節(jié)點(diǎn)的 GC、慢盤、網(wǎng)絡(luò)抖動(dòng)等影響,導(dǎo)致寫入堆積,資源利用率低,拒絕率高。

騰訊云 ES 內(nèi)核通過引入寫入定向路由優(yōu)化,將用戶的一個(gè) Bulk 請(qǐng)求路由到一個(gè)分片數(shù)可控的分片組,降低寫入請(qǐng)求扇出影響,容忍慢節(jié)點(diǎn),在不可靠的環(huán)境中提供可靠的服務(wù)。基于定向路由優(yōu)化,某日志業(yè)務(wù)場景,寫入吞吐提升一倍多,CPU 資源利用率提升 58%,拒絕率從 3% 降至 0

定向路由解決了慢節(jié)點(diǎn)對(duì)寫入的影響,接下來我們看看如何優(yōu)化寫入層面冗余的計(jì)算開銷來提升性能。

3.2 物理復(fù)制

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
物理復(fù)制

ES 單機(jī)引擎寫入,底層數(shù)據(jù)接收到可見分為三個(gè)步驟,如上圖所示。

  1. 數(shù)據(jù)在內(nèi)存中構(gòu)建各種數(shù)據(jù)類型,包括行存、列存、各種索引。
  2. 寫入 Translog,相當(dāng)于 WAL 確保數(shù)據(jù)可靠性,機(jī)器掛掉數(shù)據(jù)可重放。
  3. 周期性 refresh 將內(nèi)存中的數(shù)據(jù)結(jié)構(gòu) buffer 構(gòu)建成完整的 segment 并打開 reader 可查。

ES 分布式層的寫入,數(shù)據(jù)先從協(xié)調(diào)節(jié)點(diǎn)轉(zhuǎn)發(fā)至 Primary,主分片寫完 Lucene 和 Translog 之后并行轉(zhuǎn)發(fā)給多個(gè) Replica,副本分片完成 Lucene 和 Translog 的寫入。這個(gè)過程中,副本分片的 Lucene 寫入是冗余的,因?yàn)檫@個(gè)寫入棧在 Primary 上進(jìn)行了一遍,在 Replica 上會(huì)完整的再來一遍,開銷非常高。

物理復(fù)制解決的就是從分片上冗余寫入棧的開銷。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
物理復(fù)制方案

如上圖方案所示,第一步當(dāng) Primary 產(chǎn)生新的 Segment 之后,會(huì)及時(shí)通過物理拷貝方式同步至 Replica,使得 Segment 在 Replica 上可見,同時(shí)消除 Replica 上內(nèi)存構(gòu)建 Segment 過程的計(jì)算開銷。當(dāng) Primary 上產(chǎn)生新的 Commit 文件之后,也會(huì)及時(shí)同步至 Replica。同步 Commit 文件的目的主要是在 Replica 側(cè)清理過期的 Translog 和被合并的 Segment。例如在上面第三、四步中就描述了 Primary 側(cè) Segment 合并之后同步到 Replica 側(cè)清理的過程。

通過 Segment 物理復(fù)制的能力,有效裁剪了 Replica 寫入的計(jì)算開銷,在主從副本場景下提升寫入性能接近一倍。

4. 低成本存儲(chǔ)

前面我們重點(diǎn)介紹了海量日志數(shù)據(jù)高吞吐寫入層面的性能優(yōu)化。海量的數(shù)據(jù)流入到 ES 之后,存儲(chǔ)是另一大挑戰(zhàn),接下來我們來探討一下海量存儲(chǔ)場景如何進(jìn)行成本優(yōu)化,我們先來看看背景。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
低成本存儲(chǔ)

存儲(chǔ)成本的影響面主要分為三個(gè)層面:

  1. 云原生環(huán)境下分布式架構(gòu)層。ES 的主從副本乘以底層云盤、對(duì)象存儲(chǔ)等三份副本(EC 編碼優(yōu)化推出可能在 1.33 左右)。
  2. 單機(jī)存儲(chǔ)引擎層。由于 ES 是行列混存,且有豐富的索引結(jié)構(gòu),應(yīng)用場景豐富的同時(shí),也導(dǎo)致了單位文檔存儲(chǔ)成本放大較多。
  3. 底層基礎(chǔ)設(shè)施。為了應(yīng)對(duì)高吞吐寫入,往往需要引入 SSD 硬盤,其成本高壽命短。如果用冷熱架構(gòu),溫層往往會(huì)掛多塊 HDD 盤來擴(kuò)大容量,此時(shí)單盤的損壞會(huì)導(dǎo)致整個(gè)節(jié)點(diǎn)替換,存在大量的數(shù)據(jù)恢復(fù)搬遷,代價(jià)太大。另外機(jī)器運(yùn)維的人力成本也不低。

從上面幾個(gè)維度的成本影響面來看,我們的優(yōu)化重點(diǎn)一方面是降低單位文檔的存儲(chǔ)成本,另一方面是降低冗余副本、存儲(chǔ)介質(zhì)的成本。

4.1 壓縮編碼優(yōu)化

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
壓縮編碼優(yōu)化

壓縮編碼優(yōu)化是在原始數(shù)據(jù)結(jié)構(gòu)不變的前提下,降低單位文檔存儲(chǔ)成本非常有效的方式。上圖中描述了 ES 底層 Lucene 的存儲(chǔ)格式,以及這些格式所用到的壓縮算法。其中列存壓縮是由騰訊貢獻(xiàn)給社區(qū)的。

4.1.1 列存壓縮
Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
列存壓縮

Lucene 列存存儲(chǔ)分為兩部分,term dictionary 和 term ords,每個(gè)字段值的原始內(nèi)容存儲(chǔ)在 term dictionary 中,實(shí)際編碼、計(jì)算的時(shí)候?yàn)榱吮苊馊哂喽捎?term ords,后者會(huì)隨著新數(shù)據(jù)的持續(xù)寫入而動(dòng)態(tài)更新。優(yōu)化的主要內(nèi)容是對(duì) term dictionary 中的原始字段字面內(nèi)容進(jìn)行壓縮存儲(chǔ)。從優(yōu)化后的壓縮效果對(duì)比來看,寫入、merge 耗時(shí)基本不變的情況下,列存存儲(chǔ)下降了 40%+

4.1.2 擴(kuò)展基礎(chǔ)壓縮算法

除了優(yōu)化列存以外,我們還引入了新的通用壓縮算法。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
擴(kuò)展基礎(chǔ)壓縮算法

Zstandard 算法在壓縮比上比 LZ4 更優(yōu),在性能上比 Deflate 更優(yōu),能兼容兩者的優(yōu)點(diǎn)。我們將該通用壓縮算法引入到行存、列存、索引文件壓縮中,實(shí)測業(yè)務(wù)開啟 Zstandard 算法之后,整體存儲(chǔ)成本下降 30%+。

4.2 混合存儲(chǔ)引擎

前面主要介紹了通過壓縮編碼優(yōu)化降低單位文檔存儲(chǔ)成本,而單位文檔的存儲(chǔ)優(yōu)化是有極限的。另一個(gè)方向是從存儲(chǔ)架構(gòu)層面進(jìn)行優(yōu)化。在云原生的背景下,我們引入了自研混合存儲(chǔ)引擎方案。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
混合存儲(chǔ)引擎

混合存儲(chǔ)引擎的整體設(shè)計(jì)思路是基于典型的 delta + base 架構(gòu)。其中 delta 部分我們采用 SSD,主要目的為了扛高并發(fā)寫入,以及小 segment 的存儲(chǔ)及合并;而 base 部分采用對(duì)象存儲(chǔ),用于存儲(chǔ)大量不可變的大 segment,一方面其高可用(4 個(gè) 9 一個(gè) 5)、高可靠(12 個(gè) 9)、按量付費(fèi)、免運(yùn)維的架構(gòu)降低了大量運(yùn)維成本,更重要的是其提供的標(biāo)準(zhǔn)、低頻、歸檔等靈活的低成本存儲(chǔ)方案能大幅降低海量日志的存儲(chǔ)成本。

接下來我們結(jié)合索引數(shù)據(jù)的生命周期看看混合存儲(chǔ)引擎的整體設(shè)計(jì)。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
整體設(shè)計(jì)

混合存儲(chǔ)引擎整體分為兩層。上層存儲(chǔ)介質(zhì)為 SSD,提供高并發(fā)的寫入能力,準(zhǔn)實(shí)時(shí)產(chǎn)生的 segment 會(huì)通過物理復(fù)制的能力從 primary 拷貝至 replica。同時(shí)主從副本均寫入 translog,確保主從切換數(shù)據(jù)無縫對(duì)接及重啟數(shù)據(jù)不丟失,更重要的是主從副本之間的數(shù)據(jù)、segment 完全一致,這便于我們在 primary 上將數(shù)據(jù)下沉至底層共享存儲(chǔ)后,replica 可以無縫掛載查詢。每個(gè)分片本地都會(huì)有一個(gè) RemoteDirectoryWrapper 封裝了對(duì)遠(yuǎn)程共享存儲(chǔ)數(shù)據(jù)的訪問,包含了數(shù)據(jù)緩存的邏輯。底層共享存儲(chǔ)采用對(duì)象存儲(chǔ),數(shù)據(jù)按照索引、分片粒度分目錄存儲(chǔ),segment 數(shù)據(jù)文件一對(duì)一映射,方便存取。

下面我們細(xì)分流程看看整體方案的設(shè)計(jì)細(xì)節(jié)。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
設(shè)計(jì)流程1

如上圖所示,前五個(gè)階段,主要是我們之前描述的物理復(fù)制的流程,主要目的是為了提升寫入性能,確保 primary 和 replica 數(shù)據(jù)保持完全一致,為后續(xù)的數(shù)據(jù)共享提供基礎(chǔ)。前面已描述詳細(xì)流程,這里不展開分析。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
設(shè)計(jì)流程2

第六個(gè)階段,本地 segment 通過 merge 產(chǎn)生了較大的 segment,會(huì)被凍結(jié)不再參與 merge,并下沉至底層共享存儲(chǔ)。注意這個(gè)階段是從熱數(shù)據(jù)就開始的,并不是數(shù)據(jù)降溫后才啟動(dòng)下沉,可以避免數(shù)據(jù)降溫后整體下沉的排隊(duì)擁塞,當(dāng)然可以根據(jù)用戶的需求進(jìn)行靈活配置。此時(shí),日志場景大量的查詢會(huì)集中在本地,本地 primary 和 replica 也能很好的抗住讀寫壓力。

第七個(gè)階段,數(shù)據(jù)的查詢頻次有所降低。一般情況,本地的 primary 即可滿足絕大部分查詢性能需求。此時(shí) replica 會(huì)從本地卸載,讀取會(huì)走遠(yuǎn)端共享存儲(chǔ),同時(shí)本地會(huì)有緩存機(jī)制保存用戶常用查詢數(shù)據(jù)提升性能。此時(shí)的查詢會(huì)優(yōu)先打到 primary。通過卸載本地 replica,我們可以縮減約 50% 的 SSD 容量。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
設(shè)計(jì)流程3

第八個(gè)階段,查詢頻率大幅縮減。Primary 上只有部分?jǐn)?shù)據(jù)或部分 segment 需要被查詢,此時(shí) primary 上的部分文件或 segment 會(huì)先被卸載。同時(shí)本地構(gòu)建緩存體系加速查詢。本階段 SSD 的縮減達(dá)到 70% 左右,但仍然能滿足業(yè)務(wù)的查詢需求。

第九個(gè)階段,查詢幾乎沒有了,數(shù)據(jù)處于歸檔狀態(tài)。本地的 primary 徹底實(shí)現(xiàn)卸載,依靠本地的緩存加速滿足極少量的查詢需求。本階段 SSD 的縮減到達(dá) 90% 左右。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
Segment 三種形態(tài)

在整個(gè)數(shù)據(jù)生命周期中,segment 呈現(xiàn)三種形態(tài):

  1. Local Segment。行列存、索引文件等全部在本地,抗住熱數(shù)據(jù)高并發(fā)讀寫請(qǐng)求。
  2. Mixed Segment。行列存等數(shù)據(jù)文件可能卸載,只有部分索引文件在本地,滿足少量的查詢請(qǐng)求。
  3. Remote Segment。行列存、索引文件等全部在遠(yuǎn)程,本地只有少量元數(shù)據(jù)文件,滿足冷數(shù)據(jù)低成本歸檔需求。
Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
索引生命周期

上面是完整的索引生命周期中數(shù)據(jù)的演變過程,存儲(chǔ)重心隨著數(shù)據(jù)逐漸降溫過程逐步從 SSD 到對(duì)象存儲(chǔ)遷移,且用戶無明顯感知,最終整體存儲(chǔ)成本下降 50% - 80%。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
與現(xiàn)有方案的區(qū)別

日志場景傳統(tǒng)的降本方案一般采用冷熱分層?;旌洗鎯?chǔ)引擎與冷熱分層主要的區(qū)別包括:

  1. 存儲(chǔ)架構(gòu)差異。1). 傳統(tǒng)冷熱分層索引級(jí)別存儲(chǔ)介質(zhì)固定。2). 混合存儲(chǔ) SSD 和對(duì)象存儲(chǔ)是一個(gè)整體,數(shù)據(jù)可以雙向局部流通。
  2. 副本差異。1). 傳統(tǒng)冷熱分層存在冗余副本。2). 混合存儲(chǔ)底層采用共享存儲(chǔ),上層分片最終形態(tài)為邏輯分片,消除了云原生環(huán)境下的冗余副本。
  3. 數(shù)據(jù)搬遷差異。1). 傳統(tǒng)冷熱分層數(shù)據(jù)降溫后索引需要整體搬遷。2). 混合存儲(chǔ)支持在熱數(shù)據(jù)階段 segment 級(jí)別的數(shù)據(jù)下沉。
  4. 配置策略差異。1). 傳統(tǒng)冷熱分層依賴用戶的靜態(tài)配置策略,靈活性低、運(yùn)維成本高。2). 混合存儲(chǔ)除了支持用戶配置外,還可根據(jù)用戶訪問統(tǒng)計(jì)信息自動(dòng)決策數(shù)據(jù)下沉、卸載時(shí)機(jī),實(shí)現(xiàn)數(shù)據(jù)智能分層。

截止目前日志場景海量數(shù)據(jù)的低成本存儲(chǔ)優(yōu)化到這里就介紹完畢了,后面繼續(xù)介紹查詢性能優(yōu)化。

5. 高性能查詢

5.1 查詢性能影響面

前面我們分析了日志場景的海量存儲(chǔ)成本優(yōu)化。數(shù)據(jù)存儲(chǔ)降本之后,接下來要考慮的是數(shù)據(jù)流出,如何解決用戶查詢性能問題。因?yàn)榛旌洗鎯?chǔ)底層采用對(duì)象存儲(chǔ),其和 SSD 的性能差異肯定是有一個(gè)量級(jí)的區(qū)別。我們需要系統(tǒng)性做一些查詢優(yōu)化、緩存優(yōu)化來找回這種存儲(chǔ)介質(zhì)的變更帶來的性能損耗。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
高性能查詢背景

我們先來看看混合存儲(chǔ)引擎背景下,查詢性能的瓶頸在哪些方面。

5.1.1 大量查詢空轉(zhuǎn)掃描

ES 有高效的倒排索引,點(diǎn)查的性能是非常強(qiáng)悍的。多索引或通過別名關(guān)聯(lián)索引查詢也是相對(duì)傳統(tǒng)數(shù)據(jù)庫的一個(gè)優(yōu)勢特性,而這一特性也會(huì)帶來一些性能瓶頸問題。如上圖所示,當(dāng)我們查詢的索引是一個(gè)星號(hào),或者一個(gè)索引前綴匹配,或是一個(gè)別名的時(shí)候,底層可能關(guān)聯(lián)多個(gè)物理索引,而我們的查詢可能只有部分索引會(huì)有數(shù)據(jù)命中。而 ES 實(shí)際執(zhí)行查詢會(huì)將底層所有匹配的索引、包括每個(gè)索引底層的每個(gè)分片逐一遍歷查詢。這樣會(huì)存在大量的無用索引、分片、segment 的查詢空轉(zhuǎn)掃描。

5.1.2 Segment 串行化執(zhí)行

ES 底層分片之間是可以并行化的,但是單個(gè)分片內(nèi)部多個(gè) segment 之間是串行化的?;旌洗鎯?chǔ)引擎的底層是對(duì)象存儲(chǔ),多個(gè) segment 串行化導(dǎo)致 IO 排隊(duì)嚴(yán)重,查詢效率低下,尤其是在大查詢拉取數(shù)據(jù)較多的場景下。

5.2 索引分片級(jí)時(shí)序裁剪優(yōu)化

基于上面兩大影響面分析,我們針對(duì)性的優(yōu)化思路是查詢裁剪和查詢并行化,下面我們來展開分析。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
索引分片級(jí)時(shí)序裁剪

在日志場景,索引一般是按照一定的時(shí)間周期進(jìn)行滾動(dòng),騰訊自研了自治索引,幫助用戶托管索引分片的管理,用戶無需關(guān)心底層分片的數(shù)量、大小、分布配置。簡化數(shù)據(jù)接入門檻。在此基礎(chǔ)上,我們維護(hù)了索引級(jí)別的 Min/Max,當(dāng)查詢請(qǐng)求進(jìn)來的時(shí)候,可以針對(duì)用戶的查詢區(qū)間進(jìn)行精準(zhǔn)的物理索引過濾裁剪,大幅降低無用索引的空轉(zhuǎn)掃描過程。通過索引分片維度的時(shí)序裁剪,大幅提升查詢性能,內(nèi)部視頻日志業(yè)務(wù)實(shí)測查詢性能提升 8 倍。

5.3 Segment 級(jí)別查詢裁剪

單個(gè)分片包含多個(gè) segment,在查詢過程中會(huì)依次遍歷 segment 進(jìn)行查詢。但往往只有部分 segment 或者 segment 內(nèi)部部分?jǐn)?shù)據(jù)段存在有效數(shù)據(jù),因此 segment 維度的查詢裁剪也是優(yōu)化的重點(diǎn)。

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
Segment 查詢裁剪

Segment 級(jí)別查詢裁剪分為兩個(gè)維度:

  1. Segment 整體裁剪。社區(qū)版本已經(jīng)支持列存、數(shù)值索引等維度的裁剪,對(duì) Terms 維度還缺少整體裁剪,騰訊進(jìn)行了優(yōu)化,并提交給了社區(qū),點(diǎn)查性能提升 25.7%。
  2. Segment 內(nèi)數(shù)據(jù)裁剪。1). 流式聚合裁剪。在 Composite Aggregation 場景,支持聚合翻頁,每次翻頁會(huì)涉及大量重復(fù)數(shù)據(jù)的查詢,騰訊進(jìn)行了優(yōu)化,基于 index sorting,每次翻頁采用起始 doc id 跳轉(zhuǎn),加上滿足 size 條件提前結(jié)束優(yōu)化,流式聚合性能提升 7 倍,且支持正、逆序,已反饋給社區(qū)。2). 時(shí)序裁剪。社區(qū)版本,在大的時(shí)序范圍查詢場景,構(gòu)建實(shí)踐范圍 posting list 的時(shí)候,涉及大量的數(shù)據(jù)文件遍歷,產(chǎn)生大量的隨機(jī) IO 影響查詢性能。TencentES OTeam 協(xié)作進(jìn)行了深度優(yōu)化,基于 index sorting,利用 BKD 做二級(jí)索引,實(shí)現(xiàn)端點(diǎn)提取裁剪遍歷,逆序采用二分查找,滿足了大范圍的時(shí)序查詢性能需求,時(shí)序搜索性能提升 40 倍

5.4 Segment 并行化

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
Segment 并行化

原生 ES 單個(gè)分片內(nèi)部多個(gè) segment 查詢?yōu)榇谢瘓?zhí)行。Segment 并行化的思路主要是將多個(gè) segment 的文檔進(jìn)行統(tǒng)籌規(guī)劃,按照多線程切分,并行化查詢。對(duì)于做完 forcemerge 的場景也能很好的提高并行度。于此同時(shí),我們在拉取底層共享存儲(chǔ)時(shí),并不會(huì)整個(gè)文件拉回來,而是結(jié)合前面描述的數(shù)據(jù)裁剪能力,按照查詢需要拉取局部的數(shù)據(jù)段,大幅提升拉取效率。混合存儲(chǔ)引擎中,開啟并行化查詢優(yōu)化相較原生版本查詢性能提升 5 倍。

6. 云原生數(shù)據(jù)平臺(tái)

Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐
云原生數(shù)據(jù)平臺(tái)

下一階段,騰訊云 ES 將打造云原生數(shù)據(jù)平臺(tái),閉環(huán) PB 級(jí)數(shù)據(jù)檢索、分析場景,全面覆蓋日志場景低成本、高性能的需求。底層基于共享存儲(chǔ),消除冗余副本,實(shí)現(xiàn)存算分離架構(gòu),中間計(jì)算層會(huì)提供多種維度的集群,實(shí)現(xiàn)讀寫分離,檢索、分析場景分離等。上層提供各種免運(yùn)維的數(shù)據(jù)服務(wù),實(shí)現(xiàn)資源靈活調(diào)度,數(shù)據(jù)跨節(jié)點(diǎn)、跨邏輯集群掛載等。

目前騰訊云推出的 Elasticsearch Serverless 服務(wù)已覆蓋上述大部分能力,后續(xù)會(huì)持續(xù)完善,敬請(qǐng)關(guān)注。

作者:daniel文章來源地址http://www.zghlxwxcb.cn/news/detail-496295.html

到了這里,關(guān)于Elasticsearch核心應(yīng)用場景-日志優(yōu)化實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)倉庫內(nèi)容分享(十七):Doris實(shí)踐分享:它做了哪些架構(gòu)優(yōu)化和場景優(yōu)化?

    數(shù)據(jù)倉庫內(nèi)容分享(十七):Doris實(shí)踐分享:它做了哪些架構(gòu)優(yōu)化和場景優(yōu)化?

    Apache Doris是一款開源的實(shí)時(shí)數(shù)據(jù)倉庫,由百度旗下的技術(shù)團(tuán)隊(duì)開發(fā)。它具有高性能、高可靠性、易擴(kuò)展等特點(diǎn),能夠滿足大規(guī)模數(shù)據(jù)實(shí)時(shí)查詢和分析的需求。目前,Apache Doris已經(jīng)成為國內(nèi)外眾多企業(yè)的首選數(shù)據(jù)倉庫解決方案,包括阿里巴巴、美團(tuán)、京東、滴滴等知名企業(yè)。

    2024年02月21日
    瀏覽(23)
  • 【人工智能】大模型基礎(chǔ)概念、核心技術(shù)、應(yīng)用場景和未來發(fā)展

    【人工智能】大模型基礎(chǔ)概念、核心技術(shù)、應(yīng)用場景和未來發(fā)展

    ? 目錄 一、大模型概述 二、大模型的發(fā)展歷程 三、大模型的核心技術(shù)

    2024年02月08日
    瀏覽(97)
  • rabbitmq第二課-RabbitMQ核心編程模型以及消息應(yīng)用場景詳解

    rabbitmq第二課-RabbitMQ核心編程模型以及消息應(yīng)用場景詳解

    使用RabbitMQ提供的原生客戶端API進(jìn)行交互。這是使用RabbitMQ的基礎(chǔ)。 1.1、maven依賴 1.2、基礎(chǔ)編程模型 1.首先創(chuàng)建連接,獲取Channel 2.聲明Exchange-可選 3、聲明queue 4、聲明Exchange與Queue的綁定關(guān)系-可選 總結(jié):說白了,就是聲明一個(gè)交換機(jī)和隊(duì)列,然后進(jìn)行綁定,至于Channel和連接

    2024年02月10日
    瀏覽(21)
  • Elasticsearch實(shí)踐:ELK+Kafka+Beats對(duì)日志收集平臺(tái)的實(shí)現(xiàn)

    Elasticsearch實(shí)踐:ELK+Kafka+Beats對(duì)日志收集平臺(tái)的實(shí)現(xiàn)

    可以在短時(shí)間內(nèi)搜索和分析大量數(shù)據(jù)。 Elasticsearch 不僅僅是一個(gè)全文搜索引擎,它還提供了分布式的多用戶能力,實(shí)時(shí)的分析,以及對(duì)復(fù)雜搜索語句的處理能力,使其在眾多場景下,如企業(yè)搜索,日志和事件數(shù)據(jù)分析等,都有廣泛的應(yīng)用。 本文將介紹 ELK+Kafka+Beats 對(duì)日志收集

    2024年02月08日
    瀏覽(21)
  • MDC輕量化日志鏈路跟蹤的若干種應(yīng)用場景

    \\\"If debugging is the process of removing software bugs, then programming must be the process of putting them in.\\\" - Edsger Dijkstra “如果調(diào)試是消除軟件Bug的過程,那么編程就是產(chǎn)出Bug的過程?!?—— 艾茲格·迪杰斯特拉 目錄 0x00 大綱 0x01 前言 0x02 應(yīng)用場景 CLI 程序 Web 應(yīng)用(服務(wù)端) Web 應(yīng)用(客戶端

    2023年04月21日
    瀏覽(26)
  • AI 場景存儲(chǔ)優(yōu)化:云知聲超算平臺(tái)基于 JuiceFS 的存儲(chǔ)實(shí)踐

    AI 場景存儲(chǔ)優(yōu)化:云知聲超算平臺(tái)基于 JuiceFS 的存儲(chǔ)實(shí)踐

    云知聲是一家專注于語音及語言處理的技術(shù)公司。**Atlas 超級(jí)計(jì)算平臺(tái)是云知聲的計(jì)算底層基礎(chǔ)架構(gòu),為云知聲在 AI 各個(gè)領(lǐng)域(如語音、自然語言處理、視覺等)的模型迭代提供訓(xùn)練加速等基礎(chǔ)計(jì)算能力。**Atlas 平臺(tái)深度學(xué)習(xí)算力超過 57 PFLOPS(5.7 億億次/秒,是的你沒有看錯(cuò)

    2023年04月08日
    瀏覽(34)
  • Elasticsearch應(yīng)用場景(三)

    Elasticsearch應(yīng)用場景(三)

    ????????ES最擅長的是充當(dāng)搜索引擎,在這類場景中較典型的應(yīng)用領(lǐng)域是垂直搜索,如電商搜索、地圖搜索、新聞搜索等各類站內(nèi)搜索。 ????????創(chuàng)建索引時(shí),業(yè)務(wù)系統(tǒng)模塊把數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,第三方數(shù)據(jù)同步模塊(如Canal)負(fù)責(zé)將數(shù)據(jù)庫中的數(shù)據(jù)按照業(yè)務(wù)需求同步

    2023年04月08日
    瀏覽(16)
  • Elasticsearch 底層技術(shù)原理以及性能優(yōu)化實(shí)踐

    Elasticsearch是一個(gè)基于Lucene庫的開源搜索引擎,支持分布式、多租戶和全文搜索功能。它使用了RESTful API接口可以簡化對(duì)Elasticsearch的集成和擴(kuò)展。 Elasticsearch廣泛應(yīng)用于全文搜索、日志存儲(chǔ)和分析、安全事件檢測、業(yè)務(wù)指標(biāo)分析等領(lǐng)域。 Elasticsearch是一個(gè)分布式系統(tǒng)由多個(gè)節(jié)點(diǎn)

    2024年02月08日
    瀏覽(23)
  • Elasticsearch性能優(yōu)化:實(shí)戰(zhàn)策略與最佳實(shí)踐

    -在數(shù)據(jù)密集型的應(yīng)用場景中,Elasticsearch作為一個(gè)強(qiáng)大的搜索和分析引擎,能夠提供快速的搜索能力和處理大規(guī)模數(shù)據(jù)的能力。然而,隨著數(shù)據(jù)量的增長和查詢需求的復(fù)雜化,對(duì)Elasticsearch的性能優(yōu)化成為了維護(hù)高效、穩(wěn)定服務(wù)的重要任務(wù)。本文將深入探討Elasticsearch的優(yōu)化策略

    2024年04月23日
    瀏覽(24)
  • 應(yīng)用日志集成到ElasticSearch

    阿里sls集成日志步驟 安裝docker容器 Docker安裝 拉取鏡像: 啟動(dòng): 拷貝容器中的數(shù)據(jù)文件到宿主機(jī): 設(shè)置權(quán)限 配置filebeat 修改樣例如下: 日志輸入源 : 使用 filebeat.inputs 部分定義了兩個(gè)日志輸入源。每個(gè)輸入源監(jiān)視不同路徑下的日志文件,并根據(jù)路徑指定的類型和字段進(jìn)行

    2024年04月17日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包