概述
EntityStore 是 UModel 系統中的統一儲存引擎,負責儲存和管理可觀測性領域的核心 Metadata 資料,包括 UModel 中繼資料、實體資料和實體關聯資料。它為可觀測性分析提供高效能的資料存放區和查詢能力。
核心概念
在深入瞭解EntityStore之前,需要明確幾個容易混淆的核心概念:
概念 | 定義 | 類比 | 樣本 |
UModel | 完整的知識圖譜系統 | 整個資料庫Schema | 包含所有APM、K8s、雲資源的完整建模體系 |
EntitySet | 知識圖譜中的實體類型定義 | 資料庫中的表結構定義 |
|
Entity | 具體的實體執行個體 | 資料庫中的具體記錄 |
|
EntitySetLink | 實體之間的關係定義 | 圖資料庫中的關聯類型定義 |
|
EntityRelations | 實體之間的關係執行個體 | 圖資料庫中的關係執行個體 |
|
詳細關係說明
UModel(知識圖譜)
作用:定義整個可觀測性領域的建模規範。
包含:所有 EntitySet 定義、欄位規範、關聯類型等。
特點:是 Schema 層面的定義,描述"應該有什麼樣的實體類型"。
EntitySet(實體類型)
作用:定義某一類實體的結構和屬性規範。
包含:欄位定義、主鍵、索引、驗證規則等。
特點:類似於類定義,規定了執行個體應該具有的屬性。
Entity(實體執行個體)
作用:具體的業務對象執行個體。
包含:具體的屬性值和狀態資訊。
特點:是運行時的真實資料。
三者的協作關係
UModel (知識圖譜)
├── EntitySet: apm.service (類型定義)
│ ├── Entity: user-service (執行個體1)
│ ├── Entity: payment-service (執行個體2)
│ └── Entity: order-service (執行個體3)
├── EntitySet: k8s.pod (類型定義)
│ ├── Entity: web-pod-123 (執行個體1)
│ └── Entity: api-pod-456 (執行個體2)
└── EntitySetLink: service_runs_on_pod (關係定義)
├── Relation: user-service -> web-pod-123
└── Relation: payment-service -> api-pod-456EntityStore架構
核心組件
EntityStore 採用分層架構設計,包含以下核心組件:
┌─────────────────────────────────────────────────────┐
│ Query Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ USearch │ │ Graph Query │ │ UModel Query│ │
│ │ (實體檢索) │ │ (關係查詢) │ │ (中繼資料查詢) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────┐
│ Storage Engine │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ UModel │ │ Entity │ │ Topo │ │
│ │ (中繼資料存放區) │ │ (實體儲存) │ │ (關係儲存) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────┘SLS LogStore 資產
EntityStore 藉助於 SLS LogStore 資源實現資料寫入、消費等功能,在建立 EntityStore 時,會同步建立以下 LogStore 資產:
${workspace}__entity: 用於寫入實體資料。${workspace}__topo: 用於寫入關係資料。
主要功能特性
1. 多模式查詢支援
USearch(實體檢索)
全文檢索索引:支援跨欄位的模糊搜尋。
精確查詢:基於ID或屬性的精確匹配。
彙總分析:統計和分組功能。
UModel Query(中繼資料查詢)
Schema查詢:EntitySet定義查詢。
關係定義查詢:EntitySetLink配置查詢。
圖計算:基於UModel中繼資料的關聯分析。
Graph Query(關係查詢)
路徑查詢:多跳關係路徑分析。
鄰居查詢:實體鄰接關係分析。
自訂查詢:自訂拓撲模式識別。
2. 實體拓撲動態生命週期
動態生命週期:實體和關係具有動態生命週期,可以設定到期時間、刪除時間等。
任意時刻回溯:可以回溯任意時刻的實體和關係狀態,便於故障回溯。
查詢效能最佳化:動態實體汰換機制,保證各周期查詢效能。
3. 寫入模式支援
增量寫入:基於事件的即時更新。
全量寫入:周期性的完整資料同步。
生命週期管理:Create/Update/Expire/Delete/Revise。