SelectDB肖康:Apache Doris在日誌儲存與分析場景的實踐
本文根據肖康在【第十三屆中國資料庫技術大會(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從 Elasticsearch 到 SelectDB,觀測雲實現日誌儲存與分析的 10 倍價效比提升Elasticsearch
- Apache RocketMQ 5.0 在Stream場景的儲存增強ApacheMQ
- 雲原生環境下的日誌採集、儲存、分析實踐
- ARMS實踐|日誌在可觀測場景下的應用
- 查詢提速 20 倍,Apache Doris 在 Moka BI SaaS 服務場景下的應用實踐Apache
- 日誌分析-apache日誌分析Apache
- 小米 A/B 實驗場景基於 Apache Doris 的查詢提速最佳化實踐Apache
- PG wal 日誌的物理儲存分析
- Apache Doris設計思想介紹與應用場景Apache
- Apache Pulsar 與 Apache Kafka 在金融場景下的效能對比分析ApacheKafka
- 分散式日誌儲存架構程式碼實踐分散式架構
- 阿里雲 肖文鵬:邊緣雲創新場景探索與實踐阿里
- perl分析apache日誌Apache
- Kubernetes Ingress 日誌分析與監控的最佳實踐
- Apache Doris 在同程數科數倉建設中的實踐Apache
- 從 Elasticsearch 到 Apache Doris,統一日誌檢索與報表分析,360 企業安全瀏覽器的資料架構升級實踐ElasticsearchApache瀏覽器架構
- ClickHouse在自助行為分析場景的實踐應用
- 在 R2 上儲存您的 Cloudflare 日誌Cloud
- 各種儲存效能瓶頸場景的分析與最佳化手段
- 玄機-第二章日誌分析-apache日誌分析Apache
- Apache Doris 輕鬆入門和快速實踐Apache
- python日誌怎麼儲存Python
- Spark+Hbase 億級流量分析實戰(日誌儲存設計)Spark
- 解鎖「SOAR」在不同場景下的應用與實踐
- 最佳實踐|放棄 Ceph,Salesforce 使用 Apache BookKeeper 在雲中實現最強儲存SalesforceApache
- lumen cli日誌和普通日誌分開儲存
- 基於Apache Doris的湖倉分析Apache
- 查詢平均提速 700%,奇安信基於 Apache Doris 升級日誌安全分析系統Apache
- 社群動態|SelectDB 聯合傳智教育推出免費 Apache Doris 中文影片教程Apache
- Apache Doris 在美聯物業的資料倉儲應用實踐,助力傳統行業數字化革新!Apache行業
- 城商行容器雲平臺應用場景及持久化儲存實踐持久化
- 某郵儲銀行資料歸集系統在HTAP場景下的選型與實踐
- Apache Doris在京東搜尋實時OLAP中的應用實踐Apache
- 對比Elasticsearch,使用Doris進行高效日誌分析(上)Elasticsearch
- 對比Elasticsearch,使用Doris進行高效日誌分析(下)Elasticsearch
- Apache Flink 在鬥魚的應用與實踐Apache
- 恭喜! SelectDB 五位開發者成為 Apache Doris 新晉 PMC 成員和 Committer!ApacheMIT
- Doris和Flink在實時數倉實踐