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

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘

這篇具有很好參考價(jià)值的文章主要介紹了從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

日志數(shù)據(jù)的處理與分析是最典型的大數(shù)據(jù)分析場景之一,過去業(yè)內(nèi)以 Elasticsearch 和 Grafana Loki 為代表的兩類架構(gòu)難以同時(shí)兼顧高吞吐實(shí)時(shí)寫入、低成本海量存儲(chǔ)、實(shí)時(shí)文本檢索的需求。Apache Doris 借鑒了信息檢索的核心技術(shù),在存儲(chǔ)引擎上實(shí)現(xiàn)了面向 AP 場景優(yōu)化的高性能倒排索引,對于字符串類型的全文檢索和普通數(shù)值、日期等類型的等值、范圍檢索具有更高效的支持,相較于 Elasticsearch 實(shí)現(xiàn)性價(jià)比 10 余倍的提升,以此為日志存儲(chǔ)與分析場景提供了更優(yōu)的選擇。

日志數(shù)據(jù)在企業(yè)大數(shù)據(jù)中非常普遍,其體量往往在企業(yè)大數(shù)據(jù)體系中占據(jù)非常高的比重,包括服務(wù)器、數(shù)據(jù)庫、網(wǎng)絡(luò)設(shè)備、IoT 物聯(lián)網(wǎng)設(shè)備產(chǎn)生的系統(tǒng)運(yùn)維日志,與此同時(shí)還包含了用戶行為埋點(diǎn)等業(yè)務(wù)日志。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

日志數(shù)據(jù)對于保障系統(tǒng)穩(wěn)定運(yùn)行和業(yè)務(wù)發(fā)展至關(guān)重要:基于日志的監(jiān)控告警可以發(fā)現(xiàn)系統(tǒng)運(yùn)行風(fēng)險(xiǎn),及時(shí)預(yù)警;在故障排查過程中,實(shí)時(shí)日志檢索能幫助工程師快速定位到問題,盡快恢復(fù)服務(wù);日志報(bào)表能通過長歷史統(tǒng)計(jì)發(fā)現(xiàn)潛在趨勢。而用戶埋點(diǎn)日志數(shù)據(jù)則是用戶行為分析以及智能推薦業(yè)務(wù)所依賴的決策基礎(chǔ),有助于用戶需求洞察與體驗(yàn)優(yōu)化以及后續(xù)的業(yè)務(wù)流程改進(jìn)。由于其在業(yè)務(wù)中能發(fā)揮的重要意義,因此構(gòu)建統(tǒng)一的日志分析平臺(tái),提供對日志數(shù)據(jù)的存儲(chǔ)、高效檢索以及快速分析能力,成為企業(yè)挖掘日志數(shù)據(jù)價(jià)值的關(guān)鍵一環(huán)。而日志數(shù)據(jù)和應(yīng)用場景往往呈現(xiàn)如下的特點(diǎn):

  • 數(shù)據(jù)增長快:每一次用戶操作、系統(tǒng)事件都會(huì)觸發(fā)新的日志產(chǎn)生,很多企業(yè)每天新增日志達(dá)到幾十甚至幾百億條,對日志平臺(tái)的寫入吞吐要求很高;
  • 數(shù)據(jù)總量大:由于自身業(yè)務(wù)和監(jiān)管等需要,日志數(shù)據(jù)經(jīng)常要存儲(chǔ)較長的周期,因此累積的數(shù)據(jù)量經(jīng)常達(dá)到幾百 TB 甚至 PB 級,而較老的歷史數(shù)據(jù)訪問頻率又比較低,面臨沉重的存儲(chǔ)成本壓力;
  • 時(shí)效性要求高:在故障排查等場景需要能快速查詢到最新的日志,分鐘級的數(shù)據(jù)延遲往往無法滿足業(yè)務(wù)極高的時(shí)效性要求,因此需要實(shí)現(xiàn)日志數(shù)據(jù)的實(shí)時(shí)寫入與實(shí)時(shí)查詢。

這些日志數(shù)據(jù)天然存在的特點(diǎn)也給承載存儲(chǔ)和分析需求的系統(tǒng)帶來了一定程度的挑戰(zhàn):

  • 高吞吐實(shí)時(shí)寫入:即需要保證日志流量的大規(guī)模寫入,又要支持低延遲可見;
  • 低成本大規(guī)模存儲(chǔ):系統(tǒng)自身可以存儲(chǔ)海量數(shù)據(jù),且通過數(shù)據(jù)壓縮、冷熱分離等多種機(jī)制降低存儲(chǔ)成本;
  • 高性能交互式分析且支持文本檢索:日志檢索的隨機(jī)性很強(qiáng)、很難提前預(yù)測模式,因此要求支持靈活的文本檢索,通過實(shí)時(shí)交互式查詢滿足分析需求。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

當(dāng)前業(yè)界有兩種比較典型的日志存儲(chǔ)與分析架構(gòu),分別是以 Elasticsearch 為代表的倒排索引檢索架構(gòu)以及以 Loki 為代表的輕量索引/無索引架構(gòu),如果我們從實(shí)時(shí)寫入吞吐、存儲(chǔ)規(guī)模和成本、實(shí)時(shí)交互式查詢性能等幾方面進(jìn)行對比,不難發(fā)現(xiàn)以下結(jié)論:

  • 以 ES 為代表的倒排索引檢索架構(gòu),支持全文檢索、查詢性能好,因此在日志場景中被業(yè)內(nèi)大規(guī)模應(yīng)用,但其仍存在一些不足,包括實(shí)時(shí)寫入吞吐低、消耗大量資源構(gòu)建索引,且需要消耗巨大存儲(chǔ)成本;
  • 以 Loki 為代表的輕量索引或無索引架構(gòu),實(shí)時(shí)寫入吞吐高、存儲(chǔ)成本較低,但是檢索性能慢、關(guān)鍵時(shí)候查詢響應(yīng)跟不上,性能成為制約業(yè)務(wù)分析的最大掣肘。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

ES 在日志場景的優(yōu)勢在于全文檢索能力,能快速從海量日志中檢索出匹配關(guān)鍵字的日志,其底層核心技術(shù)是倒排索引(Inverted Index)。倒排索引是一種用于快速查找文檔中包含特定單詞或短語的數(shù)據(jù)結(jié)構(gòu),最早應(yīng)用于信息檢索領(lǐng)域。如下圖所示,在數(shù)據(jù)寫入時(shí),倒排索引可以將每一行文本進(jìn)行分詞,變成一個(gè)個(gè)詞(Term),然后構(gòu)建詞(Term) -> 行號(hào)列表(Posting List) 的映射關(guān)系,將映射關(guān)系按照詞進(jìn)行排序存儲(chǔ)。當(dāng)需要查詢某個(gè)詞在哪些行出現(xiàn)的時(shí)候,先在 詞 -> 行號(hào)列表 的有序映射關(guān)系中查找詞對應(yīng)的行號(hào)列表,然后用行號(hào)列表中的行號(hào)去取出對應(yīng)行的內(nèi)容。這樣的查詢方式,可以避免遍歷對每一行數(shù)據(jù)進(jìn)行掃描和匹配,只需要訪問包含查找詞的行,在海量數(shù)據(jù)下性能有數(shù)量級的提升。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

倒排索引原理示意倒排索引為 ES 帶來快速檢索能力的同時(shí),也付出了寫入速度吞吐低和存儲(chǔ)空間占用高的代價(jià)——由于數(shù)據(jù)寫入時(shí)倒排索引需要進(jìn)行分詞、詞典排序、構(gòu)建倒排表等 CPU 和內(nèi)存密集型操作,導(dǎo)致寫入吞吐大幅下降。而從存儲(chǔ)成本角度考慮,ES 會(huì)存儲(chǔ)原始數(shù)據(jù)和倒排索引,為了加速分析可能還需要額外存儲(chǔ)一份列存數(shù)據(jù),因此 3 份冗余也會(huì)導(dǎo)致更高的存儲(chǔ)空間占用。Loki 則放棄了倒排索引,雖然帶來來寫入吞吐和存儲(chǔ)空間的優(yōu)勢,但是損失了日志檢索的用戶體驗(yàn),在關(guān)鍵時(shí)刻不能發(fā)揮快速查日志的作用。成本雖然有所降低,但是沒有真正解決用戶的問題。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

從以上方案對比可知,以 Elasticsearch 為代表的倒排索引檢索架構(gòu)以及以 Loki 為代表的輕量索引/無索引架構(gòu)無法同時(shí)兼顧 高吞吐、低存儲(chǔ)成本和實(shí)時(shí)高性能的要求,只能在某一方面或某幾方面做權(quán)衡取舍。如果在保持倒排索引的文本檢索性能優(yōu)勢的同時(shí),大幅提升系統(tǒng)的寫入速度與吞吐量并降低存儲(chǔ)資源成本,是否日志場景所面臨的困境就迎刃而解呢?答案是肯定的。如果我們希望使用 Apache Doris 來更好解決日志存儲(chǔ)與分析場景的痛點(diǎn),其實(shí)現(xiàn)路徑也非常清晰——在數(shù)據(jù)庫內(nèi)部增加倒排索引、以滿足字符串類型的全文檢索和普通數(shù)值/日期等類型的等值、范圍檢索,同時(shí)進(jìn)一步優(yōu)化倒排索引的查詢性能、使其更加契合日志數(shù)據(jù)分析的場景需求。在同樣實(shí)現(xiàn)倒排索引的情況下,相較于 ES, Apache Doris 怎么做到更高的性能表現(xiàn)呢?或者說現(xiàn)有倒排索引的優(yōu)化空間有哪些呢?

  • ES 基于 Apache Lucene 構(gòu)建倒排索引,而日志和大多數(shù) OLAP 場景只需要其核心功能,包括分詞、倒排表等,而相關(guān)度排序等并非強(qiáng)需求,因此存在進(jìn)一步功能簡化和性能提升的空間;
  • ES 和 Apache Lucene 均采用 Java 實(shí)現(xiàn),而 Apache Doris 存儲(chǔ)引擎和執(zhí)行引擎采用 C++ 開發(fā)并且實(shí)現(xiàn)了全面向量化,相對于 Java 實(shí)現(xiàn)具有更好的性能;
  • 倒排索引并不能決定性能表現(xiàn)的全部,作為一個(gè)高性能、實(shí)時(shí)的 OLAP 數(shù)據(jù)庫,Apache Doris 的列式存儲(chǔ)引擎、MPP 分布式查詢框架、向量化執(zhí)行引擎以及智能 CBO 查詢優(yōu)化器,相較于 ES 更為高效。

通過在 Apache Doris 2.0.0 最新版本的探索與持續(xù)優(yōu)化,在相同硬件配置和數(shù)據(jù)集的測試表現(xiàn)上,Apache Doris 在數(shù)據(jù)庫內(nèi)核實(shí)現(xiàn)高性能倒排索引后,相對于 ES 實(shí)現(xiàn)了日志數(shù)據(jù)寫入速度提升 4 倍、存儲(chǔ)空間降低 80%、查詢性能提升 2 倍,再結(jié)合 Apache Doris 2.0.0 版本引入的冷熱數(shù)據(jù)分離特性,整體性價(jià)比提升 10 倍以上!接下來我們進(jìn)一步介紹設(shè)計(jì)與實(shí)現(xiàn)細(xì)節(jié)。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

業(yè)界各類系統(tǒng)為了支持全文檢索和任意列索引,往往有兩種實(shí)現(xiàn)方式:一是通過外接索引系統(tǒng)來實(shí)現(xiàn),原始數(shù)據(jù)存儲(chǔ)在原系統(tǒng)中、索引存儲(chǔ)在獨(dú)立的索引系統(tǒng)中,兩個(gè)系統(tǒng)通過數(shù)據(jù)的 ID 進(jìn)行關(guān)聯(lián)。數(shù)據(jù)寫入時(shí)會(huì)同步寫入到原系統(tǒng)和索引系統(tǒng),索引系統(tǒng)構(gòu)建索引后不存儲(chǔ)完整數(shù)據(jù)只保留索引。查詢時(shí)先從索引系統(tǒng)查出滿足過濾條件的數(shù)據(jù) ID 集合,然后用 ID 集合去原系統(tǒng)查原始數(shù)據(jù)。這種架構(gòu)的優(yōu)勢是實(shí)現(xiàn)簡單,借力外部索引系統(tǒng),對原有系統(tǒng)改動(dòng)小。但是問題也很明顯:

  • 數(shù)據(jù)寫入兩個(gè)系統(tǒng),異常有數(shù)據(jù)不一致的問題,也存在一定冗余存儲(chǔ);
  • 查詢需在兩個(gè)系統(tǒng)進(jìn)行網(wǎng)絡(luò)交互有額外開銷,數(shù)據(jù)量大時(shí)用 ID 集合去原系統(tǒng)查性能比較低;
  • 維護(hù)兩套系統(tǒng)的復(fù)雜度高,將系統(tǒng)的復(fù)雜性從開發(fā)測轉(zhuǎn)移到運(yùn)維測;

而另一種方式則是直接在系統(tǒng)中內(nèi)置倒排索引,盡管技術(shù)實(shí)現(xiàn)會(huì)更為復(fù)雜,但性能更好、且無需花費(fèi)額外的系統(tǒng)維護(hù)成本,這也是 Apache Doris 所選擇的方式。

數(shù)據(jù)庫內(nèi)置倒排索引

在選擇了在數(shù)據(jù)庫內(nèi)核中內(nèi)置倒排索引后,我們需要進(jìn)一步對 Apache Doris 索引結(jié)構(gòu)進(jìn)行分析,判斷能否通過在已有索引基礎(chǔ)上進(jìn)行拓展來實(shí)現(xiàn)。Apache Doris 現(xiàn)有的索引存儲(chǔ)在 Segment 文件的 Index Region 中,按照適用場景可以分為跳數(shù)索引和點(diǎn)查索引兩類:

1. 跳數(shù)索引:包括 ZoneMap 索引和 Bloom Filter 索引。

  • ZoneMap 索引對每一個(gè)數(shù)據(jù)塊和文件保存 Min/Max/isnull 等匯總信息,可以用于等值、范圍查詢的粗粒度過濾,只能排除不滿足查詢條件的數(shù)據(jù)塊和文件,不能定位到行,也不支持文本分詞。
  • BloomFilter 索引也是數(shù)據(jù)塊和文件級別的索引,通過 Bloom Filter 判斷某個(gè)值是否在數(shù)據(jù)塊和文件中,同樣不能定位到行、不支持文本分詞;

2. 點(diǎn)查索引:包括 ShortKey 前綴排序索引和 Bitmap 索引。

  • ShortKey 在排序的基礎(chǔ)上,根據(jù)給定的前綴列實(shí)現(xiàn)快速查詢數(shù)據(jù)的索引方式,能夠?qū)η熬Y索引的列進(jìn)行等值、范圍查詢,但不支持文本分詞,另外由于數(shù)據(jù)要按前綴索引排序、因此一個(gè)表只允許一組前綴索引。
  • Bitmap 索引記錄數(shù)據(jù)值 -> 行號(hào) Bitmap 的有序映射,是一種很基礎(chǔ)的倒排索引,但是索引結(jié)構(gòu)比較簡單、查詢效率不高、不支持文本分詞。

原有索引結(jié)構(gòu)很難滿足日志場景實(shí)時(shí)文本檢索的需求,因此設(shè)計(jì)了全新的倒排索引。倒排索引在設(shè)計(jì)和實(shí)現(xiàn)上我們采取了無侵入的方式、不改變 Segment 數(shù)據(jù)文件格式,而是增加了新的 Inverted Index File,邏輯上在 Table 的 Column 級別。具體流程如下:

  • 數(shù)據(jù)寫入和 Compaction 階段:在寫 Segment 文件的同時(shí),同步寫入一個(gè) Inverted Index 文件,文件路徑由 Segment ID + Index ID 決定。寫入 Segment 的 Row 和 Index 中的 Doc 一一對應(yīng),由于同步順序?qū)懭耄琒egment 中的 Rowid 和 Index 中的 Docid 完全對應(yīng)。
  • 查詢階段:如果查詢 Where 條件中有建了倒排索引的列,會(huì)自動(dòng)去 Index 文件中查詢,返回滿足條件的 Docid List,將 Docid List 一一對應(yīng)的轉(zhuǎn)成 Rowid Bitmap,然后走 Doris 通用的 Rowid 過濾機(jī)制只讀取滿足條件的行,達(dá)到查詢加速的效果。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

Doris倒排索引架構(gòu)圖

這個(gè)設(shè)計(jì)的好處是已有的數(shù)據(jù)文件無需修改,可以做到兼容升級,而且增減索引不影響數(shù)據(jù)文件和其他索引,用戶增建索引沒有負(fù)擔(dān)。

通用倒排索引優(yōu)化

C++和向量化實(shí)現(xiàn)Apache Doris 使用 CLucene(https://clucene.sourceforge.net/) 作為底層的倒排索引庫,CLucene 是一個(gè)用 C++ 實(shí)現(xiàn)的高性能、穩(wěn)定的 Lucene 倒排索引庫,它的功能比較完整,支持分詞和自定義分詞算法,支持全文檢索查詢和等值、范圍查詢。Apache Doris 的存儲(chǔ)模塊和 CLucene 都用 C++ 實(shí)現(xiàn),避免了Java Lucene 的 JVM GC 等開銷,同樣的計(jì)算 C++ 實(shí)現(xiàn)相對于 Java 性能優(yōu)勢明顯,而且更利于做向量化加速。Doris 倒排索引進(jìn)行了向量化優(yōu)化,包括分詞、倒排表構(gòu)建、查詢等,性能得到進(jìn)一步提升。整體來看 Doris 的倒排索引寫入速度可以超過單核 20MB/s,而 ES 的單核寫入速度不到 5MB/s,有 4 倍的性能優(yōu)勢。列式存儲(chǔ)和壓縮Lucene 本身是文檔存儲(chǔ)模型,主數(shù)據(jù)采用行存,而 Doris 中不同列的倒排索引是相互獨(dú)立的,因此倒排索引文件也采用列式存儲(chǔ),有利于向量化構(gòu)建索引和提高壓縮率。采用壓縮比高且速度快的 ZSTD,通??梢赃_(dá)到 5 ~10倍的壓縮比,與常用的GZIP壓縮相比有50%以上的空間節(jié)省且速度更快。BKD 索引與數(shù)值、日期類型列優(yōu)化針對數(shù)值、日期類型的列,我們還實(shí)現(xiàn)了 BKD 索引,可以對范圍查詢提高性能,存儲(chǔ)空間也相對于轉(zhuǎn)成定長字符串更加高效,具有以下主要特性和優(yōu)勢:

  • 高效范圍查詢:BKD 索引采用多維數(shù)據(jù)結(jié)構(gòu),為范圍查詢帶來高效率。它能迅速定位數(shù)值或日期類型列中所需的數(shù)據(jù)范圍,降低查詢時(shí)間復(fù)雜度。
  • 存儲(chǔ)空間優(yōu)化:與其他索引方法相比,BKD 索引在存儲(chǔ)空間使用上更高效。通過聚合并壓縮相鄰數(shù)據(jù)塊,減少索引所需存儲(chǔ)空間,降低存儲(chǔ)成本。
  • 多維數(shù)據(jù)支持:BKD 索引具備良好擴(kuò)展性,支持多維數(shù)據(jù)類型,如地理坐標(biāo)(GEO point)和范圍(Range),使其在處理復(fù)雜數(shù)據(jù)類型時(shí)具有高適應(yīng)性。

此外,我們在原有 BKD 索引能力基礎(chǔ)上進(jìn)行了進(jìn)一步拓展:

  • 優(yōu)化低基數(shù)場景:針對數(shù)值分布集中、單個(gè)數(shù)值倒排列表較多的低基數(shù)場景,我們調(diào)整了針對性的壓縮算法,降低大量倒排表解壓縮和反序列化所帶來的CPU性能消耗。
  • 預(yù)查詢技術(shù):針對查詢結(jié)果命中數(shù)較高的場景,我們采用預(yù)查詢技術(shù)進(jìn)行命中數(shù)預(yù)估。若命中數(shù)顯著超過閾值,可跳過索引查詢,直接利用Doris在大數(shù)據(jù)量查詢下的技術(shù)優(yōu)勢進(jìn)行數(shù)據(jù)過濾。

面向 OLAP 的倒排索引優(yōu)化

日志存儲(chǔ)和分析場景對檢索的需求很簡單,不需要特別復(fù)雜的功能(比如相關(guān)性排序),更需要降低存儲(chǔ)成本和快速按照條件查出數(shù)據(jù)。因此,在面對海量數(shù)據(jù)的寫入和查詢時(shí),Apache Doris 還針對 OLAP 數(shù)據(jù)庫的特點(diǎn)優(yōu)化了倒排索引的結(jié)構(gòu),使其更加簡潔高效。例如:

  • 在寫入流程保證不會(huì)多個(gè)線程寫入一個(gè)索引,從而避免寫入時(shí)多線程鎖競爭的開銷;
  • 在存儲(chǔ)結(jié)構(gòu)上去掉了不必要的正排、norm 等文件,減少寫入 IO 開銷和存儲(chǔ)空間占用;
  • 查詢過程中簡化相關(guān)性打分和排序邏輯,降低不必要的開銷,提升查詢性能。

針對日志等數(shù)據(jù)有按時(shí)間分區(qū)、歷史數(shù)據(jù)訪問頻度低的特點(diǎn),基于獨(dú)立的索引文件設(shè)計(jì),Apache Doris 還將在后續(xù)的版本中提供更細(xì)粒度、更靈活的索引管理功能:

  • 指定分區(qū)構(gòu)建倒排索引,比如新增一個(gè)索引的時(shí)候指定最近7天的日志構(gòu)建索引,歷史數(shù)據(jù)不建索引
  • 指定分區(qū)刪除倒排索引,比如刪除超過1個(gè)月的日志的索引,釋放訪問頻度低的索引存儲(chǔ)空間

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

高性能是 Apache Doris 倒排索引設(shè)計(jì)和實(shí)現(xiàn)的首要出發(fā)點(diǎn),我們通過公開的測試數(shù)據(jù)集分別與 ES 以及 Clickhouse 進(jìn)行性能測試,測試效果如下:

vs Elasticsearch

我們采用了 ES 官方的性能測試 Benchmark esrally 并使用其中的 HTTP Logs 日志,在同樣的硬件資源、數(shù)據(jù)、測試Case 以及測試工具下,記錄并對比各自的數(shù)據(jù)寫入時(shí)間、吞吐以及查詢延遲。

  • 測試數(shù)據(jù):esrally HTTP Logs track 中自帶測試數(shù)據(jù)集,1998 年 World Cup HTTP Server Logs,未壓縮前 32G、共 2.47 億行、單行平均長度 134 字節(jié);
  • 測試查詢:esrally HTTP Logs 測試關(guān)鍵詞檢索、范圍查詢、聚合、排序等 11 個(gè) Query,所有查詢跑 100 次串行執(zhí)行;
  • 測試環(huán)境:3 臺(tái) 16C 64G 云主機(jī)組成的集群。

在最終的測試結(jié)果中,Doris 寫入速度是 ES 的 4.2 倍、達(dá)到 550 MB/s,寫入后的數(shù)據(jù)壓縮比接近 1:10、存儲(chǔ)空間節(jié)省超 80% ,查詢耗時(shí)下降 57%、查詢性能是 ES 的 2.3 倍。加上冷熱數(shù)據(jù)分離降低冷數(shù)據(jù)存儲(chǔ)成本,整體相較 ES 實(shí)現(xiàn) 10倍以上的性價(jià)比提升。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

vs Clickhouse

Clickhouse 近期的 v23.1 版本也引入了類似 Feature,將倒排索引作為實(shí)驗(yàn)性功能發(fā)布,因此我們同樣進(jìn)行了跟 Clickhouse 倒排索引的性能對比。在本次測試中,我們采用了 Clickhouse 官方 Inverted Index 介紹博客中使用的 Hacker News 樣例數(shù)據(jù)以及查詢 SQL ,同樣保持相同的物理資源、數(shù)據(jù)、測試 Case 以及測試工具。(參考文章:https://clickhouse.com/blog/clickhouse-search-with-inverted-indices

  • 測試數(shù)據(jù):Hacker News 2873 萬條數(shù)據(jù),6.7G,Parquet 格式;
  • 測試查詢:3 個(gè)查詢,分別查詢 'clickhouse'、'olap' OR 'oltp'、'avx' AND 'sve' 等關(guān)鍵字出現(xiàn)的次數(shù);
  • 測試機(jī)器:1 臺(tái) 16C 64G 云主機(jī)

在最終的測試結(jié)果中,3 個(gè) SQLApache Doris 的查詢性能分別是 Clickhouse 的 4.7 倍、12.0 倍以及 18.5 倍,有明顯的性能優(yōu)勢。

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

下面以一個(gè) Hacker News 100 萬條測試數(shù)據(jù)的示例展示 Doris 如何利用倒排索引實(shí)現(xiàn)高效的日志分析:1. 建表時(shí)指定索引

  • INDEX idx_comment (`comment`)指定對 comment 列建一個(gè)名為 idx_comment的索引
  • USING INVERTED指定索引類型為倒排索引
  • PROPERTIES("parser" = "english")?指定分詞類型為英文分詞
CREATE TABLE hackernews_1m
(
    `id` BIGINT,
    `deleted` TINYINT,
    `type` String,
    `author` String,
    `timestamp` DateTimeV2,
    `comment` String,
    `dead` TINYINT,
    `parent` BIGINT,
    `poll` BIGINT,
    `children` Array<BIGINT>,
    `url` String,
    `score` INT,
    `title` String,
    `parts` Array<INT>,
    `descendants` INT,
    INDEX idx_comment (`comment`) USING INVERTED PROPERTIES("parser" = "english") COMMENT 'inverted index for comment'
)
DUPLICATE KEY(`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS 10
PROPERTIES ("replication_num" = "1");

注:對于已經(jīng)存在的表,也可以通過ADD INDEX idx_comment ON hackernews_1m(`comment`) USING INVERTED PROPERTIES("parser" = "english") 來增加索引。值得一提的是,和 Doris 原先存儲(chǔ)在 Segment 數(shù)據(jù)文件中的智能索引和二級索引相比,增加倒排索引的過程只會(huì)讀 comment 列構(gòu)建新的倒排索引文件,不會(huì)讀寫原有的其他數(shù)據(jù),效率有明顯提升。2. 導(dǎo)入數(shù)據(jù)后查詢,使用MATCH_ALLcomment?這一列上匹配 OLAP 和 OLTP 兩個(gè)詞,和LIKE掃描硬匹配相比,查詢性能有十余倍的提升。(這僅是 100 萬條數(shù)據(jù)下的測試效果,而隨著數(shù)據(jù)量增大、性能提升越明顯)

mysql> SELECT count() FROM hackernews_1m WHERE comment LIKE '%OLAP%' AND comment LIKE '%OLTP%';
+---------+
| count() |
+---------+
|      15 |
+---------+
1 row in set (0.13 sec)

mysql> SELECT count() FROM hackernews_1m WHERE comment MATCH_ALL 'OLAP OLTP';
+---------+
| count() |
+---------+
|      15 |
+---------+
1 row in set (0.01 sec)

更多詳細(xì)功能介紹和測試步驟可以參考Apache Doris 倒排索引官方文檔:https://doris.apache.org/zh-CN/docs/dev/data-table/index/inverted-index/

從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘,elasticsearch,apache,Doris,selectdb,全文檢索

通過內(nèi)置高性能倒排索引,Apache Doris 對于字符串類型的全文檢索和普通數(shù)值、日期等類型的等值、范圍檢索具有更高效的支持,進(jìn)一步提升了數(shù)據(jù)查詢的效率和準(zhǔn)確性,對于大規(guī)模日志數(shù)據(jù)查詢分析有了更好的性能表現(xiàn),為需要檢索能力的用戶提供了更高性價(jià)比的選擇。

目前倒排索引已經(jīng)支持了 String、Int、Decimal、Datetime 等常用 Scalar 數(shù)據(jù)類型和 Array 數(shù)組類型,后續(xù)還會(huì)增加對 JSONB、Map 等復(fù)雜數(shù)據(jù)類型的支持。而 BKD 索引可以支持多維度類型的索引,為未來 Doris 增加 GEO 地理位置數(shù)據(jù)類型和索引打下了基礎(chǔ)。與此同時(shí) Apache Doris 在半結(jié)構(gòu)化數(shù)據(jù)分析方面還有更多能力擴(kuò)展,比如自動(dòng)根據(jù)導(dǎo)入數(shù)據(jù)擴(kuò)展表結(jié)構(gòu)的 Dynamic Table、豐富的復(fù)雜數(shù)據(jù)類型(Array、Map、Struct、JSONB)以及高性能字符串匹配算法等。除倒排索引以外,Apache Doris 在 2.0.0 Alpha 版本(https://github.com/apache/doris/releases/tag/2.0.0-alpha1)中還實(shí)現(xiàn)了單節(jié)點(diǎn)數(shù)萬 QPS 的高并發(fā)點(diǎn)查詢能力、基于對象存儲(chǔ)的冷熱數(shù)據(jù)分離、基于代價(jià)模型的全新查詢優(yōu)化器以及 Pipeline 執(zhí)行引擎等,歡迎大家下載體驗(yàn)。高并發(fā)點(diǎn)查詢的詳細(xì)介紹可以查看 SelectDB 技術(shù)團(tuán)隊(duì)過往發(fā)布的技術(shù)博客,其他功能的使用介紹請參考社區(qū)官方文檔,同時(shí)也敬請持續(xù)關(guān)注我們后續(xù)發(fā)布的特性解讀系列文章。為了讓用戶可以體驗(yàn)社區(qū)開發(fā)的最新特性,同時(shí)保證最新功能可以收獲到更廣范圍的使用反饋,我們建立了 2.0.0 版本的專項(xiàng)支持群,歡迎廣大社區(qū)用戶在使用最新版本過程中多多反饋使用意見,幫助 Apache Doris 持續(xù)改進(jìn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-519419.html

到了這里,關(guān)于從 Elasticsearch 到 Apache Doris,10 倍性價(jià)比的新一代日志存儲(chǔ)分析平臺(tái)|新版本揭秘的文章就介紹完了。如果您還想了解更多內(nèi)容,請?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)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • 萬字解讀|怎樣激活 TDengine 最高性價(jià)比?

    不知不覺間,TDengine?已經(jīng) 6 歲多了。在這 6 年多的時(shí)間里,我們從零開始,在一行又一行代碼的淬煉下,TDengine 從 1.6 走過 2.0,終于走到如今的 3.0 時(shí)代。 自 2022 年下旬發(fā)布以來,經(jīng)過我們不斷地打磨優(yōu)化之后,TDengine 3.0 在性能、功能、穩(wěn)定性各個(gè)方面均有大幅提升,已經(jīng)

    2024年02月07日
    瀏覽(16)
  • 【技術(shù)預(yù)研】starRocks高性價(jià)比替換hbase

    hbase作為類列數(shù)據(jù)庫,更準(zhǔn)確說是列族數(shù)據(jù)庫。本質(zhì)上是一個(gè)文件查詢系統(tǒng),追求極限的寫入和讀取。 而starRocks作為olap數(shù)據(jù)庫,在保持優(yōu)秀的關(guān)聯(lián)計(jì)算能力的前提下,還有不錯(cuò)的查詢效率,當(dāng)然和hbase本身比還有一定差距。 但對于一般場景還是可以接受的,畢竟要省掉很多的

    2024年01月23日
    瀏覽(18)
  • 2023年高性價(jià)比筆記本電腦選購?fù)扑]

    2023年高性價(jià)比筆記本電腦選購?fù)扑]

    用免費(fèi)公開視頻,卷飛培訓(xùn)班哈人!打死不報(bào)班,賺錢靠狠干!只要自己有電腦,前后項(xiàng)目都能搞!N年苦學(xué)無人問,一朝成名天下知! 畢竟錢是你自己的,沒有人會(huì)購買自己不喜歡的產(chǎn)品。還有就是任何人都不會(huì)是永遠(yuǎn)的真理。只寫給那些真心需要學(xué)習(xí)的人。對于大部分的

    2024年02月12日
    瀏覽(21)
  • 低價(jià)位高性價(jià)比keychron機(jī)器鍵盤推薦

    低價(jià)位高性價(jià)比keychron機(jī)器鍵盤推薦

    目錄 前言 ????????1、為什么要使用機(jī)器鍵盤? ????????2、什么是keychron機(jī)器鍵盤? ? 一、入坑keychron機(jī)器鍵盤 ????????1、keychron入坑歷程 ????????2、鍵盤介紹 ? ? ? ?2.1鍵盤按鍵區(qū)介紹 ????????2.2 風(fēng)格介紹 ?????????2.3實(shí)物場景圖片? 二、綜合實(shí)測 ??

    2024年02月10日
    瀏覽(22)
  • 不是 ES 用不起,而是 ClickHouse 更具“性價(jià)比”?

    不是 ES 用不起,而是 ClickHouse 更具“性價(jià)比”?

    云原生架構(gòu)是一種基于云計(jì)算、容器化和微服務(wù)的架構(gòu)模式。業(yè)內(nèi)預(yù)測,到2025年,預(yù)計(jì)超過95%的工作負(fù)載將遷移到云端,云原生架構(gòu)成為業(yè)務(wù)的必需品。 經(jīng)過十三年的發(fā)展,某快遞公司目前C端累計(jì)注冊用戶超2.5億、P端(專業(yè)用戶)累計(jì)注冊快遞員及網(wǎng)點(diǎn)經(jīng)營者超130萬、B端

    2024年01月25日
    瀏覽(24)
  • VPS服務(wù)器”性價(jià)比之王”系列:RackNerd

    VPS服務(wù)器”性價(jià)比之王”系列:RackNerd

    2023 黑五?。?!新 Ryzen 系列 洛杉磯dc02機(jī)房重新補(bǔ)貨! 支付方式:支付寶、PayPal、信用卡、數(shù)字貨幣 “流量翻倍”活動(dòng)參加方法在最后 CPU 內(nèi)存 硬盤(SSD) 流量 帶寬 價(jià)格(續(xù)費(fèi)同價(jià)) 購買鏈接 1核 768 MB 15GB 1TB 1Gbps $10.8/年 直達(dá)鏈接 1核 2 GB 30GB 2.5TB 1Gbps $16.98/年 直達(dá)鏈接 2核 2.5

    2024年02月03日
    瀏覽(25)
  • 高性價(jià)比中興智能穿墻路由京東預(yù)售詳情介紹(附活動(dòng)網(wǎng)址)

    隨著科技的發(fā)展,人們對網(wǎng)絡(luò)越來越依賴。而 路由器 作為家庭網(wǎng)絡(luò)的入口也引來了大批廠商的興趣。隨著小米,360,百度的加入,更是將路由智能化的話題推向了一個(gè)新的高峰。但是單從功能上來說,智能路由更多是一個(gè)概念上,而沒有給用戶帶來更多的實(shí)用。近日京東、

    2024年02月06日
    瀏覽(23)
  • AI智能音箱高性價(jià)比出好音質(zhì)的功放芯片

    AI智能音箱高性價(jià)比出好音質(zhì)的功放芯片

    近幾年 人工智能 等技術(shù)的不斷發(fā)展,AI智能音箱已成為炙手可熱的爆款;眾多企業(yè)紛紛加入其中;如我們熟知的天貓精靈、小愛同學(xué)、小度智能音箱、華為AI音箱、騰訊叮當(dāng)?shù)鹊戎悄芤粝洌粨?jù)不完全統(tǒng)計(jì),目前國內(nèi)做智能音箱的企業(yè)已有近百來家。 智能音箱雖然形態(tài)較小,但

    2024年02月04日
    瀏覽(20)
  • 藍(lán)奧聲開發(fā)高性價(jià)比智能wifi插座進(jìn)軍智能家居

    藍(lán)奧聲開發(fā)高性價(jià)比智能wifi插座進(jìn)軍智能家居

    :智能家居、家用插座、WiFi插座、高性價(jià)比插座 智能硬件的大潮襲來讓智能家居這一并不新鮮的概念再次火熱起來,關(guān)于智能家居的各種場景的描述給了我們很大的想象空間,然而落到實(shí)處真正開始走進(jìn)生活時(shí)卻又顯得那么骨感,一時(shí)間作為智能家居的控制中介,小

    2024年02月12日
    瀏覽(20)
  • ipad觸控筆是哪幾款?開學(xué)季性價(jià)比電容筆推薦

    ipad觸控筆是哪幾款?開學(xué)季性價(jià)比電容筆推薦

    隨著新學(xué)期的臨近,很多同學(xué)都在詢問,步入新學(xué)期的時(shí)候,應(yīng)該買什么類型的電容筆?蘋果的電容筆價(jià)格不菲,有必要去選購嗎?因?yàn)樘O果筆擁有著一種特殊的重力壓感,所以其的價(jià)格很貴,但是其的價(jià)格卻讓很多人望而卻步。以下,我將為大家介紹一些具有較高性價(jià)比和

    2024年02月09日
    瀏覽(87)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包