《專場15.3-CnosDB-2.0構建高性能時序數據庫實踐-鄭博.pdf》由會員分享,可在線閱讀,更多相關《專場15.3-CnosDB-2.0構建高性能時序數據庫實踐-鄭博.pdf(44頁珍藏版)》請在三個皮匠報告上搜索。
1、CnosDB 2.0 云原生時序數據庫鄭博北京諾司時空科技有限公司CEO隨著萬物互聯時代的發展,時序數據庫成為了物聯網行業的底層基礎架構。傳統的時序數據庫因為時間線膨脹和數據采樣頻率提高,產生了比較大的系統瓶頸;同時,時序數據庫在云原生環境上的部署與資源管理也成為企業面臨的挑戰。CnosDB 2.0 是一款云原生時序數據庫,具有高可用、高性能、高壓縮比的特點。本報告主要講述在云原生時代時序數據庫面臨的挑戰、構建云原生時序數據庫的技術以及時序數據庫未來的發展前景。主講人介紹北京市高層次人才專家,北京市朝陽區高層次人才專家,CCF數據庫專委會執行委員??▋然仿〈髮W計算機科學碩士。在國內外重要會議
2、及期刊發表論文10余篇,授權發明數十項。在美國曾參與工業制造業OEE平臺創業,負責系統架構與時序數據平臺的研發;參與多個開源社區如MongoDB、Alfresco的組織與代碼開發貢獻?;貒笤鳛橹饕蓡T參與企業服務及人工智能相關行業創業。中國企業服務聯盟特聘專家、中國CIO聯盟特聘專家、中國云體系產業創新戰略聯盟理事。鄭博CnosDB 時序數據庫開源社區發起人Part One概念解析波瀾壯闊的數據庫發展RDBMSOLTP/OLAPNoSQLCloud Native關系型數據庫把復雜數據結構歸結為二維表格形式結構化查詢語言,SQL語句來對數據進行處理OLTP數據庫與OLAP數據庫在關系型數據庫
3、領域分叉為避免讀寫沖突,需要建立專門的分析型數據庫系統(OLAP)針對非結構化、半結構化的海量數據處理系統出現了大數據的相關概念,用于大規模的數據分析原生數據庫開始流行,圖/kv/文本數據庫資源池化,存儲與計算能力無限拓展,云上多租戶模型列式存儲、向量化執行、多云協同信息系統互聯網物聯網什么是時序數據時間地區作物溫度濕度2022/6/1青島番茄74.322.52022/6/2青島番茄75.324.92022/6/3青島番茄74.825.32022/6/4青島番茄76.224.82022/6/5青島番茄74.925.62022/6/6青島番茄75.125.22022/6/7青島番茄75.824.
4、92022/6/1日照西瓜77.427.42022/6/2日照西瓜78.228.22022/6/3日照西瓜78.127.92022/6/4日照西瓜78.828.12022/6/5日照西瓜77.828.72022/6/6日照西瓜78.228.22022/6/7日照西瓜79.528.8時序數據形態什么是時序數據庫物聯網時代數據存儲基礎設施信息系統互聯網物聯網時序數據庫的場景躍遷監控從規劃、開發、集成和測試、部署到運營的整個開發流程鐵路地鐵智慧電力鍋爐橋梁數控機床化工核電站燃氣水務海洋軌道監測/車輛監測路網優化電網監控電網調度自動化工業鍋爐遠程監控供熱鍋爐優化油田生產管理災害預警精密儀器監控橋梁結構
5、監控安全預警核電DCS安全監控漏氣預警/用氣趨勢派單效率分析雨量監測水質預警WEB 3.0/4.0/5.0區塊鏈上交易車聯網與無人駕駛VR/AR/可穿戴消費級電子設備腦機接口互聯網物聯網萬物智聯Part Two時序數據庫挑戰時序數據庫發展Local AppRDBMSEdge AppHadoop/Big DataPrivateCloudTSDB 1.0Cloud NativeTSDB 2.0時序數據庫面臨的問題01020304在時間序列維度上數據偏斜帶來的負載不均衡問題四高昂學習成本使用成本和部署成本問題三大量時間線篩選和復雜聚合帶來查詢延遲過大問題二時間線膨脹和數據采樣頻率提高帶來雙重寫入性能
6、要求問題一云環境下需要解決的問題問題一問題四問題三云環境下資源的管理數據格式無法與第三方適配云上查詢的實時性要求和日益復雜的數據分析需求云環境下支持高可用性問題二面向下一代的時序數據庫開啟萬物智聯擁抱云原生需要更好的時序數據庫Part ThreeCnosDB云原生時序數據庫CnosDB 2.0 設計理念ServerlessDBaaSEverything on Cloud邊端與云融合沒有Silver Bullets專業的人做專業的事兒承認自己菜是進步的先決條件不相信All in One產品非產品面向未來,不破不立CnosDB 2.0 設計目標數據庫 超強的擴展性 計算存儲分離 平衡存儲性能與成本
7、 查詢引擎支持矢量化查詢 支持多種時序協議 支持外部全生態云原生 支持云原生 云上高可用 原生支持多租戶,按量付費 CDC 需求可配置 云邊端協同 云上生態融合整體框架Cloud Load BalancerAuthentication&Access ControlMeta CacheAccess layerProtocol Transform ServiceSQL Query EngineMeta Service Coordinator ServiceService layerStorage layerTsf fileDelta fileTomb fileCold Data Import Da
8、ta BackupTskv(Ebs/Local disk)OSS語言選擇“借 Rust 東風”語言及模型選擇Rust無GC,獲得對內存生命周期更精細的控制能力。性能高,表達能力強:它零成本抽象,工程效率高,又不影響運行性能。智能編譯器,在編譯前發現問題,而不是把問題留在運行時。Tokio一個異步IO的運行時,提供了I/O、網絡、調度、定時器等等異步編程所需的功能和工具,性能和功能異常強大。Glommio一個基于thread-per-core級別并使用 IO_uring實現的專用運行的工具??梢耘浜洗疟P直讀與直寫操作。Run-To-CompletionRTC是一種調度模型,其中每個任務運行到完成
9、或者將控制權交還給調度器,可以優化CPU的利用效率,讓負載更加均衡。最終性能內存利用效率更高負載更加均衡更加有效管理資源針對CPU執行優化Rust 優點編譯期內存安全Rust編譯期可以在編譯時跟蹤程序中資源的變量,并在沒有GC的情況下完成所有這些操作。零成本抽象支持高并發Rust編寫的程序表現力和性能好,其擁有高級函數式語言的大部分特性Rust是并發安全的,其具有、API和抽象能力,使得編寫正確和安全的并發代碼變得非常容易。抽象在運行時沒有任何成本,只在編譯時。Rust 的一些組件序號名稱說明1arrowApache Arrow 列式內存分析庫的 Rust 實現2arrow-datafusio
10、nApache Arrow 的擴展查詢執行框架,支持 SQL 和 DataFrame API3futures異步編程的一些特性4parking_lot提供更好的 Mutex/RwLock/Condvar/Once,并提供Reentrant Mutex5parquetApache Arrow 的數據讀寫部分6sqlparser解析 ANSI:SQL 2011 為抽象語法樹7tikv-jemalloc-ctl對 jemalloc:mallctl*()的安全包裝8tikv-jemalloc-sys為 Rust 創建 C 語言庫 jemalloc 的綁定9libc支持通過 FFL 直接綁定平臺的系統庫
11、10tokio事件驅動的異步網絡傳輸庫11tokio-stream為 tokio 庫添加流處理功能12tonicgrpc 的 Rust 實現13tracing跟蹤、收集診斷信息存儲引擎SQLLineProtocolPoint(Private Protocol)MQ(MQTT/Kafka.)File(CSV/JSON/Parquet)Other(Arrow flight)Http/HttpsRpc格式校驗Version_SetSummary process taskWAL1.Forward index2.Inverted index3.Table schema讀多寫少寫多讀少In-mem cac
12、heCacheTsf fileDelta fileTomb fileCompactFlushIndex engineData engineVnodeVnode.Vnode.可觀測性存儲引擎與壓縮壓縮算法考慮壓縮比和壓縮效率的均衡用戶的場景不同用戶靈活地選擇壓縮可以設置為無壓縮算法可以適用壓縮比不敏感的情況類型支持的壓縮算法(如右表)在創建列不指定壓縮算法的情況下我們使用默認的壓縮算法文檔鏈接https:/ 1DB 2Bucket 2Bucket 1Bucket 3Bucket 5ReplicaSet 1ReplicaSet 2ReplicaSet 1ReplicaSet 2Vnode 5-1-
13、1Vnode 5-1-2Vnode 5-2-1Vnode 5-2-2Vnode 2-1-1Vnode 2-1-2Vnode 2-1-3查詢引擎高擴展性支持各種函數甚至是復雜的分析函數支持大部分的SQL-92高性能支持多種數據源基于RUST實現融合 DataFusion 與Apache Arrow擁抱 DataFusionDataFusion 的特性和我們的需求完美結合高質量支持對象存儲易于嵌入高性能使用 DataFusionSQLResultParseInjectable parser rulesInjectable transform rules&Customizable logical n
14、odeInjectable logical opt rulesInjectable transform rules&Customizable physical rulesInjectable physical opt rulesLogical transformRBOPhysical transformCBOScheduleExecutePluggable Query DispatcherPluggable Query ExecutionPluggable Cascade OptimizerPluggable SchedulerQuery State Machine 分布式實現Hinted-h
15、andoff機制實現Anti-entropy反熵機制基于Quorum NRW 實現可調一致性級別滿足不同場景用戶的需求節點對等寫入無中心化節點分布式數據分片規則CnosDB 基 于 time-range 的 分 片 規 則 通 過db+time_range 來切分成不同的bucketBucket是一個虛擬邏輯單元,bucket分為不同的復制組,每個復制組有一組Vnode。Vnode是一個具體運行單元,分布到一個具體的Node上,每個Vnode是單獨Lsm tree。數據流PointSQLEngineCoordinatorTskvTskvTskvWrite ReqSQL ReqMeta Lead
16、erMetaMetaRaftPointRecordBatchPointRecordBatchPointRecordBatchHearbeatHearbeatPart Four云原生什么是云原生高擴展性云原生分布式數據庫與底層的云計算基礎設施分離,所以能夠靈活及時調動資源進行擴容縮容,以從容應對流量激增帶來的壓力,以及流量低谷期因資源過剩造成的浪費。生態兼容的特點,也讓云原生數據庫具備很強的可遷移性。易用性云原生分布式數據庫易于使用,它的計算節點在云端部署,可以隨時隨地從多前端訪問。因其集群部署在云上,通過自動化的容災與高可用能力,單點失敗對服務的影響非常小。當需要升級或更換服務時,還可以對節點
17、進行不中斷服務的輪轉升級??焖俚圃植际綌祿熘械母黜椃罩g相互獨立,個別服務的更新不會對其他部分產生影響。此外,云原生的研發測試和運維工具高度自動化,也就可以實現更加敏捷的更新與迭代。節約成本建立數據中心是一項獨立而完備的工程,需要大量的硬件投資以及管理和維護數據中心的專業運維人員,持續運維也會造成很大的財務壓力。云原生分布式數據庫以較低的前期成本,獲得一個可擴展的數據庫,實現更優化的資源分配。云原生是在云計算環境中構建、部署和管理現代應用程序的軟件方法。整體架構Shared-ClientMetaMetaMetaCnosDBQueryCnosDBQueryCnosDBQueryCno
18、sDBQueryCnosDBQueryCnosDBTskvCnosDBTskvCnosDBTskv池化池化CnosDBTskvCnosDBTskv云原生:高可用多云多區支持AWS支持GCP支持跨云災備支持跨區災備熱點自動遷移自主識別熱點熱點數據自動緩存熱點智能遷移秒級故障恢復自動化增量備份恢復自動化云端備份不變性備份實時重做傳輸專家724支持熱點遷移SQL調優高可用性99.999%云原生:低成本靈活的Dedicate套餐支持 Spot 支持Arm 01支持多租戶計費方式靈活支持按子租戶獨立計費02秒級伸縮根據業務量彈性伸縮03支持EBS+S3混合存儲體系04支持 Serverless根據訪問次
19、數和存儲量計費05云原生:高性能支持PB級數據無感知在線擴容Dedicate套餐可以支持PB級數據量在線擴容無感知,消除業務抖動云原生:生態兼容兼容 AWSLamdbaCloudWatch01020304兼容兼容 AP分析平臺分析平臺Snowflake Aws Redshift Flink 兼容開源時序數據庫兼容開源時序數據庫InfluxDBPromethues兼容兼容 Cloud AI Cloud AI 生態生態PyTorch兼容ML平臺Severless vs Dedicate需要對硬件進行控制時 Severless 是基于云的,不能控制硬件。出于安全或監管的原因需要可以控制硬件的解決方案
20、。需要一個深入的功能集時 Serverless 得功能目前還相對較少。有些公司需要一個具有多區域功能的數據庫。安全問題排除在多租戶之外時 Severless 歸根結底租戶仍共享同一臺機器。高安全性工作負載,Dedicate有其優勢。提供更好的性能或成本更低時 Severless 是許多用例的最佳選擇,但沒有完美的數據庫解決方案能滿足所有可能的用例/工作負載。需要自動彈性擴展時 自動擴大/縮小規模,對需求的變化即時作出反應。對工作負荷劇增或不可預測的企業尤為關鍵。需要最小化操作時 團隊可以花更少的時間來擔心數據庫,而把更多的時間用于構建你的應用程序。測試、實驗或評估時 適合輕量級應用、原型、測試
21、和開發環境、輔助項目等,因為它們是自助式的、快速的。需要最小化成本時 根據實際存儲和計算使用量收費。數據庫所分配的資源會隨著需求自動增加和減少。0101020203030404vsSeverlessDedicatePart FiveWhat elseAI for DB人工智能學習數據庫相關得體系化經驗,實現智能化運維管理數據庫存儲選擇云資源調節查詢優化索引選擇序號研究成果1基于機器學習的知識圖譜雙存儲結構2APRIL:基于強化學習的圖自動管理3基于強化學習的RDF圖數據分表存儲方法4基于Seq2Seq模型的SparQL查詢預測5PreKar:知識圖譜存儲結構性能智能評估6基于代價的輕量級存儲自
22、動決策7基于代價的數據庫內機器學習輕量級存儲自動決策8基于機器學習的自動化文檔管理9基于強化學習的NoSQL數據庫索引選擇技術10基于卷積神經網路的通用索引推薦模型11智能數據庫事務并發控制算法開源:基礎軟件最優商業模式信任基礎開源軟件可以進行白盒測試,無法測試作弊。公司可能倒閉,但開源社區代碼永存。人才杠桿大廠不再996釋放了程序員的時間。開源社區貢獻是已成為IT人員的重要評判標準?;ヂ摼W寒潮下,更多程序員思考自己的未來。市場杠桿白盒且免費的產品易于快速傳播,形成網絡和規模效應。社區反饋獲得產品未來的研發和市場方向。開源數據庫的商業化被市場成功驗證過。0255075100Ranking sc
23、ores%100%79.5%77.2%73.5%67.4%65.6%61.9%56%42.7%39.4%25.8%8.3%91.7%74.2%60.6%57.3%44%38.1%34.4%32.6%26.5%22.8%20.5%70%65%60%55%50%45%40%35%30%2013201420152016201720182019202020212022Ranking scores%我們的開源社區ContentDataChannel學術研究、行業前沿、工程實踐、使用手冊、小白入門B站、知乎、CSDN、公眾號、CCF、抖音、Twitter,Linkedin,Youtube全面監控全域數據,A/B test,提高社區活躍度,擴大社區影響力https:/使用手冊使用手冊產品預報2022 Q4 2.0 分布式2023 Q1 Cloud Version2023 Q2 Enterprise Service