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

es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

先自我介紹一下,小編浙江大學畢業(yè),去過華為、字節(jié)跳動等大廠,目前阿里P7

深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長,但自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年最新軟件測試全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友。
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試

既有適合小白學習的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,涵蓋了95%以上軟件測試知識點,真正體系化!

由于文件比較多,這里只是將部分目錄截圖出來,全套包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、大綱路線、講解視頻,并且后續(xù)會持續(xù)更新

如果你需要這些資料,可以添加V獲?。簐ip1024b (備注軟件測試)
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試

正文

轉(zhuǎn)載自:https://zhuanlan.zhihu.com/p/60458049

面試題

es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率啊?

面試官心理分析

這個問題是肯定要問的,說白了,就是看你有沒有實際干過 es,因為啥?其實 es 性能并沒有你想象中那么好的。很多時候數(shù)據(jù)量大了,特別是有幾億條數(shù)據(jù)的時候,可能你會懵逼的發(fā)現(xiàn),跑個搜索怎么一下?5~10s,坑爹了。第一次搜索的時候,是5~10s,后面反而就快了,可能就幾百毫秒。

你就很懵,每個用戶第一次訪問都會比較慢,比較卡么?所以你要是沒玩兒過 es,或者就是自己玩玩兒 demo,被問到這個問題容易懵逼,顯示出你對 es 確實玩兒的不怎么樣?

面試題剖析

說實話,es 性能優(yōu)化是沒有什么銀彈的,啥意思呢?就是不要期待著隨手調(diào)一個參數(shù),就可以萬能的應對所有的性能慢的場景。也許有的場景是你換個參數(shù),或者調(diào)整一下語法,就可以搞定,但是絕對不是所有場景都可以這樣。

性能優(yōu)化的殺手锏——filesystem cache

你往 es 里寫的數(shù)據(jù),實際上都寫到磁盤文件里去了,查詢的時候,操作系統(tǒng)會將磁盤文件里的數(shù)據(jù)自動緩存到?filesystem cache?里面去。

es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試

es 的搜索引擎嚴重依賴于底層的?filesystem cache,你如果給?filesystem cache?更多的內(nèi)存,盡量讓內(nèi)存可以容納所有的?idx segment file?索引數(shù)據(jù)文件,那么你搜索的時候就基本都是走內(nèi)存的,性能會非常高。

性能差距究竟可以有多大?我們之前很多的測試和壓測,如果走磁盤一般肯定上秒,搜索性能絕對是秒級別的,1秒、5秒、10秒。但如果是走?filesystem cache,是走純內(nèi)存的,那么一般來說性能比走磁盤要高一個數(shù)量級,基本上就是毫秒級的,從幾毫秒到幾百毫秒不等。

這里有個真實的案例。某個公司 es 節(jié)點有 3 臺機器,每臺機器看起來內(nèi)存很多,64G,總內(nèi)存就是?64 * 3 = 192G。每臺機器給 es jvm heap 是?32G,那么剩下來留給?filesystem cache?的就是每臺機器才?32G,總共集群里給?filesystem cache?的就是?32 * 3 = 96G?內(nèi)存。而此時,整個磁盤上索引數(shù)據(jù)文件,在 3 臺機器上一共占用了?1T?的磁盤容量,es 數(shù)據(jù)量是?1T,那么每臺機器的數(shù)據(jù)量是?300G。這樣性能好嗎??filesystem cache?的內(nèi)存才 100G,十分之一的數(shù)據(jù)可以放內(nèi)存,其他的都在磁盤,然后你執(zhí)行搜索操作,大部分操作都是走磁盤,性能肯定差。

歸根結(jié)底,你要讓 es 性能要好,最佳的情況下,就是你的機器的內(nèi)存,至少可以容納你的總數(shù)據(jù)量的一半。

根據(jù)我們自己的生產(chǎn)環(huán)境實踐經(jīng)驗,最佳的情況下,是僅僅在 es 中就存少量的數(shù)據(jù),就是你要用來搜索的那些索引,如果內(nèi)存留給?filesystem cache?的是 100G,那么你就將索引數(shù)據(jù)控制在?100G?以內(nèi),這樣的話,你的數(shù)據(jù)幾乎全部走內(nèi)存來搜索,性能非常之高,一般可以在 1 秒以內(nèi)。

比如說你現(xiàn)在有一行數(shù)據(jù)。id,name,age ....?30 個字段。但是你現(xiàn)在搜索,只需要根據(jù)?id,name,age?三個字段來搜索。如果你傻乎乎往 es 里寫入一行數(shù)據(jù)所有的字段,就會導致說?90%?的數(shù)據(jù)是不用來搜索的,結(jié)果硬是占據(jù)了 es 機器上的?filesystem cache?的空間,單條數(shù)據(jù)的數(shù)據(jù)量越大,就會導致?filesystem cahce?能緩存的數(shù)據(jù)就越少。其實,僅僅寫入 es 中要用來檢索的少數(shù)幾個字段就可以了,比如說就寫入 es?id,name,age?三個字段,然后你可以把其他的字段數(shù)據(jù)存在 mysql/hbase 里,我們一般是建議用?es + hbase?這么一個架構(gòu)。

hbase 的特點是適用于海量數(shù)據(jù)的在線存儲,就是對 hbase 可以寫入海量數(shù)據(jù),但是不要做復雜的搜索,做很簡單的一些根據(jù) id 或者范圍進行查詢的這么一個操作就可以了。從 es 中根據(jù) name 和 age 去搜索,拿到的結(jié)果可能就 20 個?doc id,然后根據(jù)?doc id?到 hbase 里去查詢每個?doc id?對應的完整的數(shù)據(jù),給查出來,再返回給前端。

寫入 es 的數(shù)據(jù)最好小于等于,或者是略微大于 es 的 filesystem cache 的內(nèi)存容量。然后你從 es 檢索可能就花費 20ms,然后再根據(jù) es 返回的 id 去 hbase 里查詢,查 20 條數(shù)據(jù),可能也就耗費個 30ms,可能你原來那么玩兒,1T 數(shù)據(jù)都放 es,會每次查詢都是 5~10s,現(xiàn)在可能性能就會很高,每次查詢就是 50ms。

數(shù)據(jù)預熱

假如說,哪怕是你就按照上述的方案去做了,es 集群中每個機器寫入的數(shù)據(jù)量還是超過了?filesystem cache?一倍,比如說你寫入一臺機器 60G 數(shù)據(jù),結(jié)果?filesystem cache?就 30G,還是有 30G 數(shù)據(jù)留在了磁盤上。

其實可以做數(shù)據(jù)預熱

舉個例子,拿微博來說,你可以把一些大V,平時看的人很多的數(shù)據(jù),你自己提前后臺搞個系統(tǒng),每隔一會兒,自己的后臺系統(tǒng)去搜索一下熱數(shù)據(jù),刷到?filesystem cache?里去,后面用戶實際上來看這個熱數(shù)據(jù)的時候,他們就是直接從內(nèi)存里搜索了,很快。

或者是電商,你可以將平時查看最多的一些商品,比如說 iphone 8,熱數(shù)據(jù)提前后臺搞個程序,每隔 1 分鐘自己主動訪問一次,刷到?filesystem cache?里去。

對于那些你覺得比較熱的、經(jīng)常會有人訪問的數(shù)據(jù),最好做一個專門的緩存預熱子系統(tǒng),就是對熱數(shù)據(jù)每隔一段時間,就提前訪問一下,讓數(shù)據(jù)進入?filesystem cache?里面去。這樣下次別人訪問的時候,性能一定會好很多。

冷熱分離

es 可以做類似于 mysql 的水平拆分,就是說將大量的訪問很少、頻率很低的數(shù)據(jù),單獨寫一個索引,然后將訪問很頻繁的熱數(shù)據(jù)單獨寫一個索引。最好是將冷數(shù)據(jù)寫入一個索引中,然后熱數(shù)據(jù)寫入另外一個索引中,這樣可以確保熱數(shù)據(jù)在被預熱之后,盡量都讓他們留在?filesystem os cache?里,別讓冷數(shù)據(jù)給沖刷掉。

你看,假設(shè)你有 6 臺機器,2 個索引,一個放冷數(shù)據(jù),一個放熱數(shù)據(jù),每個索引 3 個 shard。3 臺機器放熱數(shù)據(jù) index,另外 3 臺機器放冷數(shù)據(jù) index。然后這樣的話,你大量的時間是在訪問熱數(shù)據(jù) index,熱數(shù)據(jù)可能就占總數(shù)據(jù)量的 10%,此時數(shù)據(jù)量很少,幾乎全都保留在?filesystem cache?里面了,就可以確保熱數(shù)據(jù)的訪問性能是很高的。但是對于冷數(shù)據(jù)而言,是在別的 index 里的,跟熱數(shù)據(jù) index 不在相同的機器上,大家互相之間都沒什么聯(lián)系了。如果有人訪問冷數(shù)據(jù),可能大量數(shù)據(jù)是在磁盤上的,此時性能差點,就 10% 的人去訪問冷數(shù)據(jù),90% 的人在訪問熱數(shù)據(jù),也無所謂了。

網(wǎng)上學習資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。

需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注軟件測試)
es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù),2024年程序員學習,elasticsearch,面試,壓力測試

一個人可以走的很快,但一群人才能走的更遠!不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎加入我們的的圈子(技術(shù)交流、學習資源、職場吐槽、大廠內(nèi)推、面試輔導),讓我們一起學習成長!
1575840)]

一個人可以走的很快,但一群人才能走的更遠!不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎加入我們的的圈子(技術(shù)交流、學習資源、職場吐槽、大廠內(nèi)推、面試輔導),讓我們一起學習成長!文章來源地址http://www.zghlxwxcb.cn/news/detail-858710.html

到了這里,關(guān)于es 在數(shù)據(jù)量很大的情況下(數(shù)十億級別)如何提高查詢效率?_es能存多少數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 明星企業(yè)Argo AI倒下:曾估值超70億美元 燒掉數(shù)十億美元

    明星企業(yè)Argo AI倒下:曾估值超70億美元 燒掉數(shù)十億美元

    雷遞網(wǎng) 雷建平 10月27日 曾估值超70億美元,并醞釀上市的自動駕駛初創(chuàng)公司Argo AI走向了滅亡。 Argo AI日前發(fā)布一份聲明,稱福特汽車公司決定需要投資在短期內(nèi)更容易實現(xiàn)的駕駛輔助技術(shù),而不是Argo的目標。 福特汽車CEO Jim Farley說,“大規(guī)模盈利的全自動駕駛還有很長的路要

    2024年02月02日
    瀏覽(22)
  • 這些年Web前端面試的那些套路,優(yōu)化后,ES-做到了幾十億數(shù)據(jù)檢索-3-秒返回,前端音頻框架

    這些年Web前端面試的那些套路,優(yōu)化后,ES-做到了幾十億數(shù)據(jù)檢索-3-秒返回,前端音頻框架

    默認情況下 routing參數(shù)是文檔ID (murmurhash3),可通過 URL中的 _routing 參數(shù)指定數(shù)據(jù)分布在同一個分片中,index和search的時候都需要一致才能找到數(shù)據(jù)。 如果能明確根據(jù)_routing進行數(shù)據(jù)分區(qū),則可減少分片的檢索工作,以提高性能 。 在我們的案例中,查詢字段都是固定的,不提供全

    2024年04月26日
    瀏覽(22)
  • ES如何提高準確率之【term-centric】

    提高準確率的方法有很多,但是要在提高準確率的同時保證召回率往往比較困難,本文只介紹一種比較常見的情況。 我們經(jīng)常搜索內(nèi)容,往往不止針對某個字段進行搜索,比如:標題、內(nèi)容,往往都是一起搜索的。 index結(jié)構(gòu)如下: 樣例數(shù)據(jù)如下: 現(xiàn)在我要搜索【紅色的蘋果

    2024年02月02日
    瀏覽(21)
  • linux查看es節(jié)點使用情況,elasticsearch(es) 如何查看當前集群中哪個節(jié)點是主節(jié)點(master)

    elasticsearch 查看當前集群中的 master 節(jié)點是哪個需要使用 _cat 監(jiān)控命令,具體如下。 查看方法 es 主節(jié)點確定命令,以 kibana 上查看示例如下: GET _cat/nodesv 返回結(jié)果示例如下: ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.16.16.188 52 99 5 2.59 1.70 1.45 mdi - elastic3

    2023年04月15日
    瀏覽(32)
  • 后端接口如何提高性能?從MySQL、ES、HBASE等技術(shù)一起探討下!(摘抄)

    后端接口如何提高性能?從MySQL、ES、HBASE等技術(shù)一起探討下!(摘抄)

    謝邀,利益相關(guān)。 大多數(shù)互聯(lián)網(wǎng)應用場景都是讀多寫少,業(yè)務邏輯更多分布在寫上。對讀的要求大概就是要快。那么都有什么原因會導致我們完成一次出色的慢查詢呢? 1.1 索引 在數(shù)據(jù)量不是很大時,大多慢查詢可以用索引解決,大多慢查詢也因為索引不合理而產(chǎn)生。 MySQ

    2024年04月26日
    瀏覽(20)
  • 數(shù)據(jù)量超過億級別,MySQL大表遷移該如何做?

    數(shù)據(jù)量超過億級別,MySQL大表遷移該如何做?

    MySQL 作為當前應用最廣泛的開源關(guān)系型數(shù)據(jù)庫之一,具有高性能、穩(wěn)定性和易用性等特性,是許多網(wǎng)站、應用和商業(yè)產(chǎn)品的主要數(shù)據(jù)存儲。在一些場景中,如果出現(xiàn)單表行數(shù)上億的情況,就可能需要開發(fā)和 DBA 對大表進行優(yōu)化:分表、歸檔或擴容操作,而在這些操作中都涉及

    2024年02月11日
    瀏覽(20)
  • AI已悄悄改變職場,微軟如何推動數(shù)十萬員工都用上Copilot?

    AI已悄悄改變職場,微軟如何推動數(shù)十萬員工都用上Copilot?

    ??歡迎大家在 GitHub 上 Star 我們: 分布式全鏈路因果學習系統(tǒng) OpenASCE:?https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驅(qū)動的知識圖譜 OpenSPG:?https://github.com/OpenSPG/openspg 大規(guī)模圖學習系統(tǒng) OpenAGL:?https://github.com/TuGraph-family/TuGraph-AntGraphLearning 不久前,微軟 AI 辦公副總裁 J

    2024年04月25日
    瀏覽(18)
  • SpringBoot 利用 ThreadPoolTaskExecutor 批量插入數(shù)十萬條數(shù)據(jù)

    SpringBoot 利用 ThreadPoolTaskExecutor 批量插入數(shù)十萬條數(shù)據(jù)

    在批處理插入數(shù)據(jù)時,如果在單線程環(huán)境下是非常耗時的,本篇文章將采用單線程和多線程進行對比,利用 ThreadPoolTaskExecutor 進行多線程批處理插入65w數(shù)據(jù),然后和單線程進行對比,最終得到性能優(yōu)化。 yml 文件配置 spring 容器注入線程池 bean 對象 創(chuàng)建異步線程業(yè)務類 創(chuàng)建單

    2024年02月14日
    瀏覽(33)
  • 在數(shù)據(jù)量很大的時候使用的lunce

    在數(shù)據(jù)量很大的時候使用的lunce

    ? ? ? ? ? 1.可擴展的高性能索引 ????????2.強大、準確、高效的搜索算法 ????????3.跨平臺解決方案? ? ? 在應用中為數(shù)據(jù)庫中的數(shù)據(jù)提供全文檢索實現(xiàn)。 ?? ?開發(fā)獨立的搜索引擎服務、系統(tǒng)。 ?? ?對于數(shù)據(jù)量大、數(shù)據(jù)結(jié)構(gòu)不固定的數(shù)據(jù)可采用全文檢索方式搜索。

    2024年02月12日
    瀏覽(13)
  • 大數(shù)據(jù)情況下如何保證企業(yè)數(shù)據(jù)交換安全

    大數(shù)據(jù)情況下如何保證企業(yè)數(shù)據(jù)交換安全

    數(shù)據(jù)交換是指在網(wǎng)絡(luò)或其他方式下,不同主體按照規(guī)定的規(guī)則和標準實現(xiàn)數(shù)據(jù)的共享、傳輸和處理的過程。大數(shù)據(jù)時代的到來使得數(shù)據(jù)交換的重要性更為凸顯,大數(shù)據(jù)帶來了海量、多樣、高速、低價值密度等特點,也帶來了更多的價值挖掘和應用場景。 保障企業(yè)在大數(shù)據(jù)環(huán)境

    2024年02月01日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包