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

ES通過(guò)抽樣agg聚合性能提升3-5倍

這篇具有很好參考價(jià)值的文章主要介紹了ES通過(guò)抽樣agg聚合性能提升3-5倍。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

????????一直以來(lái),es的agg聚合分析性能都比較差(對(duì)應(yīng)sql的 group by)。特別是在超多數(shù)據(jù)中做聚合,在搜索的條件命中特別多結(jié)果的情況下,聚合分析會(huì)非常非常的慢。
? ? ? ? 一個(gè)聚合條件:聚合分析請(qǐng)求的時(shí)間 = search time + agg time
? ? ? ? N個(gè)聚合條件:聚合分析請(qǐng)求的時(shí)間 = search time + agg time * N
? ? ? ??
? ? ? ? 搜索的數(shù)據(jù)范圍越大,聚合請(qǐng)求時(shí)間越長(zhǎng)。
? ? ? ? 搜索條件命中的數(shù)據(jù)越多,聚合請(qǐng)求的時(shí)間越長(zhǎng)。
? ? ? ? 搜索的字段,不一樣的值越多,聚合請(qǐng)求時(shí)間越長(zhǎng)。例如性別字段,通常僅有3個(gè)取值(男、女、未知),這種屬于取值少的。像郵箱字段,值非常多,上億個(gè)。這種就屬于高基數(shù)字段。同樣的搜索條件,高基數(shù)字段的聚合耗時(shí)會(huì)多非常多!
? ? ? ? 聚合請(qǐng)求時(shí)候非常吃cpu 和io資源的。通常在大數(shù)據(jù)檢索場(chǎng)景下,很難支持高并發(fā)的聚合。并發(fā)上去以后,先是CPU飆升,再是IO飆升,隨之load很高很高。其根本原因,從agg聚合的源碼來(lái)看。因?yàn)榫酆险?qǐng)求分為兩個(gè)階段,先根據(jù)條件查詢(xún)數(shù)據(jù)。然后將命中的全部數(shù)據(jù),放在內(nèi)存中做計(jì)算。在第二個(gè)過(guò)程中,因?yàn)閷⑺忻械臄?shù)據(jù)全部取回來(lái),然后做計(jì)算,就涉及到了非常多的小文件的IO。IO會(huì)蹭蹭蹭的飆升。
? ? ? ? 就目前而言,在不改源碼的情況下,聚合性能很難有很大的突破。本篇文章,通過(guò)抽樣的思路,通過(guò)抽取分片,相當(dāng)于數(shù)據(jù)剪枝的方式,來(lái)節(jié)省資源消耗。提升聚合分析性能,提升大概在3-5倍。隨著數(shù)據(jù)越多,分片越多,資源越少,性能提升效果越明顯。
????????我個(gè)人是做萬(wàn)億級(jí)內(nèi)容數(shù)據(jù)檢索的。負(fù)責(zé)搜索集群,負(fù)責(zé)搜索優(yōu)化。聚合分析性能優(yōu)化,我應(yīng)該說(shuō)已經(jīng)看了全網(wǎng)關(guān)于優(yōu)化的文章。在實(shí)際數(shù)據(jù)體量非常大的前提下,實(shí)際效果不是太明顯。
????????其中比較好的有這幾篇文章。
es官方博文
Improving the performance of high-cardinality terms aggregations in Elasticsearch | Elastic Blog
Elasticsearch 聚合性能優(yōu)化六大猛招-騰訊云開(kāi)發(fā)者社區(qū)-騰訊云
Elasticsearch聚合優(yōu)化 | 聚合速度提升5倍_es聚合速度-CSDN博客

es agg,ES搜索優(yōu)化,Elasticsearch,elasticsearch,agg聚合性能提升,性能提升,抽樣性能提升對(duì)比,es聚合抽樣方案

抽樣聚合方案

1.es原生抽樣聚合

官方提供的采樣聚合

參考文檔:Sampler?aggregation?|?Elasticsearch?Guide?[7.11]?|?Elastic

????????ES中的抽樣聚合,意思是只對(duì)高質(zhì)量的數(shù)據(jù)做聚合。比如,指定搜索條件,該搜索條件命中的數(shù)據(jù)為100W,對(duì)這100W數(shù)據(jù),根據(jù)相關(guān)性分?jǐn)?shù)排序。然后對(duì)這topK的數(shù)據(jù)做聚,比如每個(gè)shard上取200條評(píng)分最高的數(shù)據(jù),去聚合。這就是ES?sampler?aggregation的含義。

2.es?pre-filter機(jī)制

參考文檔:Elasticsearch的search之_shards?skipped之謎_布道的博客-CSDN博客__shards?skipped

3.es在檢索過(guò)程中指定分片

GET index_name/_search?preference=_shards:0

? ? ? ? 抽樣抽分片的思路,只每次固定只檢測(cè)其中一個(gè)分片。例如我們的索引一共300G,每個(gè)分片30G,一共有10個(gè)分片。在檢索的過(guò)程中,只對(duì)其中一個(gè)分片做檢索和聚合。其最終的聚合結(jié)果,根據(jù)我們的測(cè)試來(lái)看,效果還是非常不錯(cuò)的。聚合結(jié)果的分布情況和本來(lái)的terms聚合相差不大。性能也能提升個(gè)幾倍。注意這種方式,聚合結(jié)果是近似的,并不是完全準(zhǔn)確的(ES本身的聚合解結(jié)果就不是100%精準(zhǔn)的)。

? ? ? ? 在大數(shù)據(jù)隨機(jī)分布的情況下。在搜索命中大量數(shù)據(jù)情況下,其結(jié)果分布也是滿(mǎn)足正態(tài)分布的。注意在搜索結(jié)果命中的結(jié)果集越多,其結(jié)果越符合正態(tài)分布,其聚合結(jié)果越接近標(biāo)準(zhǔn)值(原生terms聚合)。這里有一個(gè)值,一個(gè)經(jīng)驗(yàn)值,在搜索提交條件命中大于10000的時(shí)候,可以用抽樣,結(jié)果偏差不大。

? ? ? ? 注意,這里具體抽哪一個(gè)分片是有說(shuō)法的。我們要考慮一個(gè)問(wèn)題,同一個(gè)搜索條件,聚合結(jié)果應(yīng)該是一致的。這里可以將搜索條件進(jìn)行md5,然后取hash值,然后將hash值模上分片總數(shù)。這里只是一個(gè)思路。

ES官方的抽樣聚合說(shuō)明

抽樣方案對(duì)比測(cè)試

對(duì)比測(cè)試了三種聚合分析的方式,其中包含了terms、sampler?terms、和shard抽樣(假如有10個(gè)shard,只對(duì)其中一個(gè)shard做搜索)

先說(shuō)測(cè)試結(jié)論

官方的抽樣,召回的結(jié)果和標(biāo)準(zhǔn)結(jié)果偏差較大。

官方的抽樣,時(shí)間花費(fèi)上,并沒(méi)有太大的提升。

抽取分片,召回的結(jié)果和標(biāo)準(zhǔn)結(jié)果偏差不大。

抽取分片,時(shí)間花費(fèi)上,性能提升3-5倍。資源花費(fèi)為分片總數(shù)分之一。

響應(yīng)時(shí)間對(duì)比如下

檢索范圍

檢索條件

查詢(xún)語(yǔ)法

響應(yīng)時(shí)間

備注

major_index_202303

北京?AND?暴雨

terms

4561

7694

shard抽樣

1423

2785

效果最好

terms?sampler

5650

3663

效果沒(méi)有太明顯

召回結(jié)果對(duì)比如下

關(guān)鍵詞

terms(結(jié)果)

抽取一個(gè)分片

sampler?terms(抽樣200)

備注

地區(qū)

4224

446

2094

中國(guó)

3772

375

-

發(fā)展

3605

342

-

天氣

3503

378

1942

部分

2781

294

1525

大雨

2395

236

-

暴雨

2394

264

2454

氣溫

2079

212

915

局地

1851

199

1055

工作

1741

187

-

降雨

-

-

1111

北京

-

-

827

巴西

-

-

801

災(zāi)害

-

-

801

檢索語(yǔ)句

?這里使用的是query_string 檢索語(yǔ)法。對(duì)比標(biāo)準(zhǔn)的terms聚合,官方的simple抽樣,和抽分片。

  "query": {
    "query_string": {
      "query": """北京?AND?暴雨""",
      "fields": [
        "content^1.0",
        "title^1.0"
      ],
      "type": "phrase",
      "tie_breaker": 1,
      "default_operator": "and",
      "max_determinized_states": 10000,
      "enable_position_increments": true,
      "fuzziness": "AUTO",
      "fuzzy_prefix_length": 0,
      "fuzzy_max_expansions": 50,
      "phrase_slop": 0,
      "escape": false,
      "auto_generate_synonyms_phrase_query": true,
      "fuzzy_transpositions": true,
      "boost": 1
    }
  }

全部測(cè)試結(jié)果原始數(shù)據(jù)

搜索范圍

搜索條件

聚合方式

耗時(shí)情況ms

返回結(jié)果?

major_info_202303

北京?AND?暴雨

terms

4561

7694

[

????????{

??????????"key"?:?"地區(qū)",

??????????"doc_count"?:?4224

????????},

????????{

??????????"key"?:?"中國(guó)",

??????????"doc_count"?:?3772

????????},

????????{

??????????"key"?:?"發(fā)展",

??????????"doc_count"?:?3605

????????},

????????{

??????????"key"?:?"天氣",

??????????"doc_count"?:?3503

????????},

????????{

??????????"key"?:?"部分",

??????????"doc_count"?:?2781

????????},

????????{

??????????"key"?:?"大雨",

??????????"doc_count"?:?2395

????????},

????????{

??????????"key"?:?"暴雨",

??????????"doc_count"?:?2394

????????},

????????{

??????????"key"?:?"氣溫",

??????????"doc_count"?:?2079

????????},

????????{

??????????"key"?:?"局地",

??????????"doc_count"?:?1851

????????},

????????{

??????????"key"?:?"工作",

??????????"doc_count"?:?1741

????????}

??????]文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762692.html

terms

sampler

5650

3663

[

??????????{

????????????"key"?:?"暴雨",

????????????"doc_count"?:?2454

??????????},

??????????{

????????????"key"?:?"地區(qū)",

????????????"doc_count"?:?2094

??????????},

??????????{

????????????"key"?:?"天氣",

????????????"doc_count"?:?1942

??????????},

??????????{

????????????"key"?:?"部分",

????????????"doc_count"?:?1525

??????????},

??????????{

????????????"key"?:?"降雨",

????????????"doc_count"?:?1111

??????????},

??????????{

????????????"key"?:?"局地",

????????????"doc_count"?:?1055

??????????},

??????????{

????????????"key"?:?"氣溫",

????????????"doc_count"?:?915

??????????},

??????????{

????????????"key"?:?"北京",

????????????"doc_count"?:?827

??????????},

??????????{

????????????"key"?:?"巴西",

????????????"doc_count"?:?801

??????????},

??????????{

????????????"key"?:?"災(zāi)害",

????????????"doc_count"?:?801

??????????}

????????]

terms

+

指定shard

1423

2785

[

????????{

??????????"key"?:?"地區(qū)",

??????????"doc_count"?:?446

????????},

????????{

??????????"key"?:?"天氣",

??????????"doc_count"?:?378

????????},

????????{

??????????"key"?:?"中國(guó)",

??????????"doc_count"?:?375

????????},

????????{

??????????"key"?:?"發(fā)展",

??????????"doc_count"?:?342

????????},

????????{

??????????"key"?:?"部分",

??????????"doc_count"?:?294

????????},

????????{

??????????"key"?:?"暴雨",

??????????"doc_count"?:?264

????????},

????????{

??????????"key"?:?"大雨",

??????????"doc_count"?:?236

????????},

????????{

??????????"key"?:?"氣溫",

??????????"doc_count"?:?212

????????},

????????{

??????????"key"?:?"局地",

??????????"doc_count"?:?199

????????},

????????{

??????????"key"?:?"工作",

??????????"doc_count"?:?187

????????}

??????]

到了這里,關(guān)于ES通過(guò)抽樣agg聚合性能提升3-5倍的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • ES實(shí)戰(zhàn)--性能提升

    觸發(fā)沖刷的條件: 1.內(nèi)存緩沖區(qū)已滿(mǎn) 2.自上次沖刷后超過(guò)了一定時(shí)間 3.事務(wù)日志達(dá)到了一定閥值 對(duì)名為get-together的Elasticsearch索引執(zhí)行優(yōu)化操作,將索引中的數(shù)據(jù)段(segments)合并到指定的數(shù)量1

    2024年02月19日
    瀏覽(17)
  • SpringCloud分布式搜索引擎、數(shù)據(jù)聚合、ES和MQ的結(jié)合使用、ES集群的問(wèn)題

    SpringCloud分布式搜索引擎、數(shù)據(jù)聚合、ES和MQ的結(jié)合使用、ES集群的問(wèn)題

    目錄 數(shù)據(jù)聚合 聚合的分類(lèi) ?編輯?DSL實(shí)現(xiàn)Bucket聚合 ?編輯 ?DSL實(shí)現(xiàn)Metrics聚合?編輯 RestAPI實(shí)現(xiàn)聚合 ?對(duì)接前端接口?編輯 ?自定義分詞器?編輯 Completion suggester查詢(xún) Completion suggester查詢(xún) 酒店數(shù)據(jù)自動(dòng)補(bǔ)全 實(shí)現(xiàn)酒店搜索框界面輸入框的自動(dòng)補(bǔ)全 ?數(shù)據(jù)同步問(wèn)題分析?編輯 同

    2024年02月16日
    瀏覽(50)
  • ES慢查詢(xún)分析——性能提升6 倍

    ES慢查詢(xún)分析——性能提升6 倍

    ? ? ? ? 生產(chǎn)環(huán)境頻繁報(bào)警。查詢(xún)跨度91天的數(shù)據(jù),請(qǐng)求耗時(shí)已經(jīng)來(lái)到了30+s。報(bào)警的閾值為5s。我們期望值是5s內(nèi),大于該閾值的請(qǐng)求,我們認(rèn)為是慢查詢(xún)。這些慢查詢(xún),最終排查,是因?yàn)樽叩搅藲v史集群上。受到了數(shù)據(jù)遷移的一定影響,也做了一些優(yōu)化,最終從30s提升到5s。

    2024年02月04日
    瀏覽(14)
  • ES 8.x 向量檢索性能測(cè)試 & 把向量檢索性能提升100倍!

    ES 8.x 向量檢索性能測(cè)試 & 把向量檢索性能提升100倍!

    ? 向量檢索不僅在的跨模態(tài)檢索場(chǎng)景中應(yīng)用廣泛,隨著chat gpt的火熱,es的向量檢索,在Ai領(lǐng)域發(fā)揮著越來(lái)越大的作用。 ? 本文,主要測(cè)試es的向量檢索性能。我從8.x就開(kāi)始關(guān)注ES的向量檢索了。當(dāng)前ES已經(jīng)發(fā)布到 8.10 版本。以下是官方文檔的鏈接: ? ?https://www.elastic.co/guide/

    2024年02月07日
    瀏覽(19)
  • 【金倉(cāng)數(shù)據(jù)庫(kù)】kingbase ES性能提升之傳輸壓縮

    【金倉(cāng)數(shù)據(jù)庫(kù)】kingbase ES性能提升之傳輸壓縮

    數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景復(fù)雜且多樣,本文介紹金倉(cāng)數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)條件較差(小于10MB/s)場(chǎng)景,提供傳輸壓縮特性進(jìn)行性能提升。 當(dāng)應(yīng)用需要并發(fā)查詢(xún)大量結(jié)果集時(shí),容易出現(xiàn)網(wǎng)絡(luò)資源爭(zhēng)用問(wèn)題。造成服務(wù)端CPU空閑而網(wǎng)絡(luò)繁忙的狀況,因?yàn)榇蠼Y(jié)果集需要占用非常多的網(wǎng)絡(luò)帶寬,從而導(dǎo)

    2023年04月11日
    瀏覽(20)
  • ES forceMerge 強(qiáng)制段合并為什么會(huì)提升檢索性能?

    ? 根據(jù)以前的測(cè)試,forceMerge段合并,將段的個(gè)數(shù)合并成一個(gè)。帶來(lái)了將近一倍的性能提升,測(cè)試過(guò)程文檔(請(qǐng)參考我的另外一篇文章):ES優(yōu)化實(shí)戰(zhàn)- forceMerge搜索提升測(cè)試報(bào)告_es forcemerge_水的精神的博客-CSDN博客 ? 注意,這次測(cè)試,只是這對(duì)一個(gè)長(zhǎng)文本字段(就像一篇文章)

    2024年02月04日
    瀏覽(32)
  • elastic search es 分組統(tǒng)計(jì) aggs 次數(shù)用法

    參考鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html es 各個(gè)版本的語(yǔ)法可能會(huì)不一樣,如果大家在用的時(shí)候發(fā)現(xiàn)語(yǔ)法報(bào)錯(cuò)了,請(qǐng)查閱相關(guān)版本的語(yǔ)法。 剛需要按 ip 地址統(tǒng)計(jì)某個(gè)接口的訪問(wèn)次數(shù),查了下 es 分組統(tǒng)計(jì)次數(shù) aggs 的用法,特此記錄一下,方

    2024年02月11日
    瀏覽(12)
  • 通過(guò)java代碼實(shí)現(xiàn)ES中的常用搜索

    通過(guò)java代碼實(shí)現(xiàn)ES中的常用搜索

    目錄 測(cè)試環(huán)境準(zhǔn)備 在指定索引下搜索全部(可以指定字段) 通過(guò)ids進(jìn)行搜索 對(duì)搜索結(jié)果進(jìn)行分頁(yè) match分詞搜索 不分詞模糊搜索:wildcardQuery與matchPhraseQuery term 搜索(精確匹配) multi_match搜索 bool搜索 多條件匹配 filter過(guò)濾搜索 sort排序搜索 后續(xù)待補(bǔ)充:queryStringQuery,minimu

    2024年01月18日
    瀏覽(21)
  • 得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

    得物社區(qū)億級(jí)ES數(shù)據(jù)搜索性能調(diào)優(yōu)實(shí)踐

    2020年以來(lái)內(nèi)容標(biāo)注結(jié)果搜索就是社區(qū)中后臺(tái)業(yè)務(wù)的核心高頻使用場(chǎng)景之一,為了支撐復(fù)雜的后臺(tái)搜索,我們將社區(qū)內(nèi)容的關(guān)鍵信息額外存了一份到Elasticsearch中作為二級(jí)索引使用。隨著標(biāo)注業(yè)務(wù)的細(xì)分、迭代和時(shí)間的推移,這個(gè)索引的文檔數(shù)和搜索的RT開(kāi)始逐步上升。 下面是

    2024年02月05日
    瀏覽(23)
  • Elasticsearch專(zhuān)欄-8.es讀寫(xiě)性能及優(yōu)化

    Elasticsearch專(zhuān)欄-8.es讀寫(xiě)性能及優(yōu)化

    服務(wù)器資源 資源 數(shù)值 服務(wù)器 華為 系統(tǒng) centos7.9 cpu Intel? Core? i5-10500 CPU @ 3.10GHz、6核12線程 mem 62G disk 機(jī)械硬盤(pán)、3.6T 單機(jī)寫(xiě)入性能 將es堆內(nèi)存增大到20G,其余配置不做任何修改,數(shù)據(jù)單條寫(xiě)入。測(cè)試結(jié)果如下 線程 線程延遲時(shí)間(ms) 數(shù)據(jù)量(W) 平均響應(yīng)時(shí)間(ms) QPS 300 0 5.9 338

    2023年04月12日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包