SelectDB肖康:Apache Doris在日誌儲存與分析場景的實踐

陶然陶然發表於2023-02-15

  本文根據肖康在【第十三屆中國資料庫技術大會(DTCC2022)】線上演講內容整理而成。

  基於Apache Doris大資料實時MPP資料庫,構建新一代雲原生實時數倉,充分發揮Apache Doris高效能、易用MPP引擎能力和雲端計算極致彈性,解決海量日誌等半結構化、非結構化資料儲存成本高、分析困難的痛點。

   Apache Doris基本介紹

  Apache Doris是一個基於MPP架構的高效能、實時的分析型資料庫,以極速易用的特點被人們所熟知,僅需亞秒級響應時間即可返回海量資料下的查詢結果,不僅可以支援高併發的點查詢場景,也能支援高吞吐的複雜分析場景。

  基於此,Apache Doris在多維報表、即席查詢、使用者畫像、實時大屏、日誌分析、資料湖查詢加速等諸多業務領域都能得到很好應用。

  Apache Doris於2022年6月成功從Apache孵化器畢業,正式成為ApacheTOP專案,截止目前Apache Doris社群已經聚集了來自不同行業百餘家企業的超400位貢獻者,每月活躍貢獻者人數也接近100位。

  Apache Doris如今在中國乃至全球範圍內都擁有著廣泛的使用者群體,截止目前,Apache Doris已經在全球範圍內1000家企業的生產環境中得到應用。

  在中國市值或估值排行前50的網際網路公司中,有超過80%長期使用Apache Doris,包括百度、美團、小米、京東、位元組跳動、騰訊、快手、網易、微博、新浪、360等,同時在一些傳統行業如金融、能源、製造、電信等領域也有著豐富的應用。  

  Apache Doris的定位是極速易用實時統一的多模分析型資料庫。不同型別的資料來源經過ETL,讓資料進入Doris,可以進行面向企業內部或外部的BI分析、日誌分析等,還可以直接對儲存在湖倉中的資料進行查詢。使用者可以透過 Apache Doris 構建多種不同場景的資料分析服務、同時支撐線上與離線的業務負載、高吞吐的互動式分析與高併發的點查詢;透過一套架構實現湖和倉的統一、在資料湖和多種異構儲存之上提供無縫且極速的分析服務;也可透過對日誌/文字等半結構化乃至非結構化的多模資料進行統一管理和分析、來滿足更多樣化資料分析的需求。

  Apache Doris在易用性方面有很大特色,其跟MySQL協議高度相容,MySQL應用可以直接對接。

   典型日誌儲存與分析場景

  在日誌儲存與分析場景,很多資料如使用者程式、審計日誌等資料都需要實時寫入進行統一儲存與實時分析,日誌對於保障系統、業務穩定性至關重要,常用於故障排查、監控告警等。

  日誌儲存與分析場景具有三大特點:

  1,資料寫入吞吐量大,還要實時可見;

  2,資料儲存量大,還要成本低;

  3,互動式查詢速度快,且需要支援文字檢索、時間排序。

  目前典型方案有兩大類:一類是以ES為代表的倒排索引檢索架構,另一類是以Loki為代表的後設資料索引/無索引架構。  

  具體分析如下:ES在實時寫入吞吐方面較弱,在儲存規模方面ES一般採用存算一體架構,資料存在本地,擴充套件規模有一定限制,儲存成本較高,但ES在互動式查詢效能上表現更好更快;而Loki在實時寫入吞吐方面更高,儲存規模更大,儲存成本更低,但在互動式查詢效能上表現更慢。

  簡單對比總結:ES為代表的索引架構最佳化查詢效能,犧牲寫入效能和儲存空間;Loki為代表的無索引架構最佳化寫入效能和儲存空間,犧牲查詢效能。

  那麼問題來了:最佳化這個犧牲那個,是不是頭痛醫頭腳痛醫腳了?倒排索引是0-1選擇嗎,它是問題的全部嗎?最為回顧,向量化計算成熟前,是不是都認為OLAP加速要靠預計算,而後來向量化加速是不是打破了固有認知? 在日誌儲存分析領域,我們也找到了突破點。

   日誌場景解決方案

  作為 ApacheDoris的商業化公司,SelectDB團隊基於 ApacheDoris核心開發了雲原生版本 SelectDBCloud,並推出了面向日誌分析場景的解決方案。

  基於以上問題,日誌場景解決方案的想法基於Doris高效能向量化引擎底座,再加上SelectDB存算分離架構、輕量級倒排索引和時序資料管理達到更好的效果。  

  舉例:在上游寫入方面,我們配置Logstash使用內建的http output plugin將資料寫入SelectDB。  

  在下游查詢方面,可觀測性:Grafana中使用內建MySQL資料來源,匯入已有模板配置視覺化日誌看板、檢索介面;商業智慧:Superset等BI工具透過MySQL協議,即可開箱即用訪問SelectDB進行視覺化BI分析。

  效能測試效果如下:  

  測試說明:

  1,測試環境是3臺16c 64g雲主機組成的叢集

  2,測試資料和測試case來源於ES官方效能benchmark中http_logs,資料總量32GB,2.47億行

  3,查詢時間是ES官方效能benchmark中的11個query,每個序列執行100次的總時間

  4,寫入速度越高越好,磁碟空間越低越好,查詢時間越低越好

  效能測試結果顯示:在寫入速度方面,SelectDB達到ES的4.2倍,儲存空間只需要ES的五分之一,查詢效能是ES的2倍。

   關鍵技術解析

   關鍵技術1:MPP查詢與向量化引擎

  在向量化方面,我們把行式變成了列式記憶體佈局,向量化計算框架大幅減少虛擬函式呼叫,大幅提升cache命中率。高效利用SIMD指令。在寬表聚合場景下效能提升5-10倍。  

  針對MPP查詢引擎,我們採用分散式MPP的查詢框架,節點間和節點內都並行執行,大幅提升效率,支援大表的shuffle分散式join。

   關鍵技術2:多重運算元最佳化與查詢最佳化器

  在運算元最佳化方面,採用自適應兩階段聚合運算元最佳化,JOIN/TOPN runtime filter最佳化為連線列生成filter推到左表,支援in/min/max/bf等filter,filter自動穿透到最底層,SSB部分查詢依賴RF有2-10倍提升。

  在查詢最佳化器方面,新一代智慧最佳化器(Nereids)支援CBO和RBO,RBO常見規則常量摺疊、子查詢改寫、謂詞下推等,CBO支援Join Reorder。  

  值得一提的是,在效能方面我們取得佳績,多項指標登頂ClickBenck,在近半數SQL在所有產品中更優,查詢總耗時遠低於行業競品。

   關鍵技術3:輕量級倒排索引

  支援快速檢索,支援文字檢索、普通數值/日期查詢,支援多條件AND OR組合;擴充套件資料庫引擎,內建倒排索引,避免了外掛式的跨系統通訊、冗餘儲存。

  為日誌場景精簡最佳化索引結構,簡化norm、score等,採用bitmap等最佳化倒排表;列式儲存+ ZSTD高效壓縮演算法,本身列式儲存壓縮率高,zstd比gzip快5倍且壓縮率更高,資料和索引都進行壓縮;採用C++和向量化的高效能實現,單核吞吐>20MB/s vs ES 5MB/s。  

   關鍵技術4:存算分離雲原生架構

  在雲服務方面的重要關鍵點包括,存算分離,以物件儲存為主儲存;共享快取,寫入即快取提高效能;彈性擴充套件,利用雲的彈性加速查詢;負載隔離,避免業務互相影響。  

  這樣做的好處是將儲存成本大幅降低,我們認為,儲存成本=儲存空間*單位成本。

  在儲存空間方面,我們將原始資料行存變成了列式儲存,將複雜倒排索引變成了專為日誌簡化的索引,將普通壓縮演算法變成了日誌高壓縮比;

  在單位成本方面,我們將原有的冷熱資料全本地盤變成了冷熱分離,將儲存計算同步擴容變成了儲存分離獨立擴容。

  這樣的效果實現了儲存空間降至五分之一,單位成本降至三分之一,最終實現儲存成本降至十五分之一,達到突破性的一個量級降低。

   關鍵技術5:高吞吐實時寫入

  我們讓客戶端進行實時小批次寫入,在SelectDB服務端進行攢批,可實現秒級flush可見,向量化索引吞吐幾十GB/s,寫放大更優的時序compaction。  

   關鍵技術6:快速互動式查詢

  快速互動式查詢面臨兩大挑戰:挑戰一,如何從海量日誌中全文檢索關鍵詞;挑戰二:如何從時間排序取滿足條件的最新N條日誌。  

  針對挑戰一,我們基於分割槽、主鍵的時間範圍快速跳過,基於倒排索引的全文檢索精確定位;針對挑戰二,我們按時間排序的時序儲存模型,動態剪枝的TopN查詢演算法。最終實現百億日誌檢索秒級響應。

   關於開源

  SelectDB一直秉承開源開放的價值觀,對於上面介紹的倒排索引、TopN最佳化、時序Compaction最佳化等關鍵技術,已經貢獻到ApacheDoris社群,預計在2023年Q1的Doris 2.0版本中正式釋出,2月份也會開放Doris 2.0 preview版本供大家試用,歡迎剛興趣的朋友們參與試用和技術交流,一起繁榮ApacheDoris社群。

   嘉賓介紹  

肖康

SelectDB聯合創始人兼技術副總裁

  2009年至2012年在百度從事Hadoop平臺研究與建設,2012開始先後在360、奇安信負責大資料平臺,研發基於MPP架構的安全大資料引擎,構建全球最大的網路安全大資料。2022年聯合創立SelectDB,致力於研發新一代雲原生實時數倉。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28285180/viewspace-2935459/,如需轉載,請註明出處,否則將追究法律責任。

相關文章