GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景

Greptime格睿科技發表於2024-03-06
就在上週,我們公佈了 GreptimeDB 2024 路線圖,揭示了今年 GreptimeDB 的幾個重大版本計劃。隨著三月初春的到來, 適用於生產級別的 GreptimeDB 開源版也在萬物復甦的“驚蟄”時節如約而至。v0.7 版本標誌著我們向生產就緒版本邁出的重要一步,我們歡迎社群的每一位成員積極參與使用,並提供寶貴的反饋意見。
從 v0.6 到 v0.7,Greptime 團隊取得了顯著的進步: 累計合併了 184 個 Commits,修改了 705 個檔案,包括 82 項功能增強、35 項 Bug 修復、19 次程式碼重構,以及大量的測試工作。 這期間,一共有 8 名獨立貢獻者參與 GreptimeDB 的程式碼貢獻, 特別感謝 Eugene Tolbakov 作為 GreptimeDB 首位 committer,持續活躍在 GreptimeDB 的程式碼貢獻中,和我們一同成長!
更新重點(省流版)Metric Engine:針對可觀測場景設計的全新引擎可被推薦使用,能處理大量的小表,適合雲原生監控場景; Region Migration:最佳化了使用體驗,可以透過 SQL 方便地執行 Region 遷移; Inverted Index:高效定位使用者查詢所涉及資料段,顯著減少掃描資料檔案所需 IO 操作,加速查詢過程。
v0.7 是 GreptimeDB 開源以來少數幾次的重大版本更新之一,此次我們也將在影片號直播。瞭解更多功能細節、觀看 demo 演示,或者和我們核心開發團隊深入交流,歡迎參與下週四(3 月 14 日)晚 19:30 的直播。

Region Migration

Region Migration 提供在 Datanode 之間遷移資料表的 Region 的能力,藉助這個能力,我們可以容易地實現熱點資料遷移,以及負載平衡的水平擴充套件。GreptimeDB 在釋出 v0.6 時曾提到初步實現了 Region Migration,此次版本更新完善並最佳化了使用體驗。
現在,我們可以透過 SQL 方便地執行 Region 遷移:
select migrate_region(
    region_id,
    from_dn_id,
    to_dn_id,
    [replay_timeout(s)]);
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Region Migration 示意圖

Metric Engine

Metric Engine 是針對可觀測場景來設計的一個的全新引擎,它的主要目標是能處理大量的小表,特別適合雲原生監控比如使用 Prometheus 的場景。透過利用合成的寬表,這個新的 Engine 提供指標資料儲存和後設資料複用的能力,“表”在它之上變得更輕量,它可以克服現有 Mito 引擎的表過於重量級的一些限制。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Metric Engine 架構示意圖
  • 圖例 - 原始 Metric 資料
  • 以下六個 Node Exporter 的 Metrics 為例。在 Prometheus 為代表的單值模型系統中,即使是關聯度很高的指標也需要拆成若干個分開儲存。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Node Exporter 的 Metrics 儲存示意圖
  • 圖例 - 使用者視角的邏輯表
  • Metric Engine 原汁原味地還原了 Metrics 的結構,使用者見到的就是寫入的 Metrics 結構。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Metrics 結構示意圖
  • 圖例 - 儲存視角的物理表
  • 在儲存層,Metric Engine 進行了對映,使用一張物理表來儲存相關的資料,能夠降低儲存成本,並支撐更大規模的 Metrics 儲存。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Metrics 儲存示意圖
  • 圖例 - 接下來的研發計劃:Fields 自動分組
  • 在實際場景產生的 Metrics 中,大部分都是有關聯性的。GreptimeDB 可以自動推導相關的指標並放合併到一起,不僅能跨 Metrics 減少時間線的數量,而且對於關聯查詢也很友好。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Fields 研發計劃示意圖


  • 儲存成本最佳化
基於 AWS S3 儲存後端進行成本測試,各寫入約三十分鐘的時長的資料,總和寫入量約 30w row/s 。統計過程中的各個操作發生的次數,根據 AWS 的報價估算成本。測試過程中 index 功能均開啟。
報價參考 的 Standard 等級
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景

從上述測試表格可以看到,Metric Engine 能夠透過減少物理表的數量大幅降低儲存成本,各階段操作次數均有數量級減少,折算的綜合成本相比 Mito Engine 能降低八倍以上。

Inverted Index

Inverted Index 作為新引入的索引模組,旨在高效定位使用者查詢所涉及資料段,顯著減少掃描資料檔案所需 IO 操作,加速查詢過程。 TSBS 測試場景下場景效能平均提升 50%,部分場景效能提升近 200%。Inverted Index 的核心優勢包括:
  1. 開箱即用:系統自動生成合適的索引,使用者無需額外指定;
  2. 功能實用:支援多列列值的等值、範圍和正則匹配,確保在多數場景下都能迅速定位和過濾資料;
  3. 靈活適應:自動調控內部引數以平衡構建成本和查詢效率,有效應對不同場景的索引需求。
圖例 - Inverted Index 的邏輯表示及資料定位過程
  • 使用者在多個列指定過濾條件,經過 Inverted Index 的快速定位,能排除掉大部分不匹配的資料段,最終得到較少的待掃描資料段,實現查詢加速。
GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
Inverted Index 架構示意圖

其他更新

1. 資料庫的管理功能得到顯著增強
我們對 information_schema 表進行了大幅補充,新增了 SCHEMATA 和 PARTITIONS 等資訊。此外,新版本引入了眾多新的 SQL 函式以實現對 DB 的管理操作。例如,現在透過 SQL 即可觸發 Region Flush、執行 Region 遷移,還可以查詢 procedure 的執行狀態等。
2. 效能提升
在 v0.7 版本中,對 Memtable 進行了重構,提升了資料掃描速度並降低了記憶體佔用。同時,我們針對物件儲存的讀寫效能也做了許多的改進和最佳化。

升級指南

由於新版本存在一些重大變更,本次 v0.7 釋出需要停機升級,推薦使用官方升級工具,大致升級流程如下:
  1. 建立一個全新的 v0.7 叢集
  2. 關閉舊叢集流量入口(停寫)
  3. 透過 GreptimeDB CLI 升級工具匯出表結構和資料
  4. 透過 GreptimeDB CLI 升級工具匯入資料到新叢集
  5. 入口流量切換至新叢集
詳細升級指南請參考:
  • 中文:
  • 英文:

未來展望

我們下一個重要的里程碑在四月份,屆時將推出 v0.8。這一版本將引入 GreptimeFlow,一款最佳化的流計算方案,專門用於 GreptimeDB 資料流中執行連續聚合操作。考慮到靈活性的需求,GreptimeFlow 既可以整合進 GreptimeDB 計算層共同部署,也能作為獨立服務部署。
除了功能層面的不斷升級,我們在版本效能方面也在持續進行最佳化,v0.7 版本的效能雖然對比之前已經有了巨大的提升,但在可觀測場景下距離部分主流方案還有一些差距,這也將是我們接下來的重點最佳化方向。
歡迎閱讀 GreptimeDB Roadmap 2024,全面瞭解我們全年的版本更新計劃。也歡迎各位參與程式碼貢獻或功能、效能的反饋和討論,讓我們攜手見證 GreptimeDB 持續的成長與精進。

關於 Greptime:

Greptime 格睿科技致力於為智慧汽車、物聯網及可觀測等產生大量時序資料的領域提供實時、高效的資料儲存和分析服務,幫助客戶挖掘資料的深層價值。目前主要有以下三款產品:
  • GreptimeDB 是一款用 Rust 語言編寫的時序資料庫,具有分散式、開源、雲原生和相容性強等特點,幫助企業實時讀寫、處理和分析時序資料的同時降低長期儲存成本。
  • GreptimeCloud 可以為使用者提供全託管的 DBaaS 服務,能夠與可觀測性、物聯網等領域高度結合。
  • GreptimeAI 是為 LLM 應用量身定製的可觀測性解決方案。
  • 車雲一體解決方案是一款深入車企實際業務場景的時序資料庫解決方案,解決了企業車輛資料呈幾何倍數增長後的實際業務痛點。
GreptimeCloud 和 GreptimeAI 已正式公測,歡迎關注公眾號或官網瞭解最新動態!對企業版 GreptimDB 感興趣也歡迎聯絡小助手(微信搜尋 greptime 新增小助手)。
官網:
GitHub:
文件:
Twitter:
Slack:
LinkedIn:


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

相關文章