概要
EntityStore は、UModel システムの統合ストレージエンジンです。UModel メタデータ、エンティティデータ、エンティティ関係データなど、可観測性レルムのコアメタデータを格納および管理します。EntityStore は、可観測性分析のためのパフォーマンス専有型データストレージとクエリ機能を提供します。
コアコンセプト
EntityStore を詳しく見ていく前に、混同されがちな次のコアコンセプトを理解することが重要です。
コンセプト | 定義 | 類似 | 例 |
UModel | 完全な知識グラフシステム | データベーススキーマ全体 | すべての APM、K8s、およびクラウドリソースを含む完全なモデリングシステム |
EntitySet | 知識グラフにおけるエンティティタイプの定義 | データベース内のテーブルスキーマ定義 |
|
Entity | 特定のエンティティインスタンス | データベース内の特定のレコード |
|
EntitySetLink | エンティティ間の関係定義 | Graph Database 内の関係タイプの定義 |
|
EntityRelations | エンティティ間の関係インスタンス | Graph Database 内の関係インスタンス |
|
詳細な関係
UModel (知識グラフ)
機能: 可観測性レルム全体のモデリング標準を定義します。
内容: すべての EntitySet 定義、フィールド仕様、関係タイプなどが含まれます。
特徴: どのようなタイプのエンティティが存在できるかを記述するスキーマレベルの定義です。
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 (関係定義)
├── 関係: user-service -> web-pod-123
└── 関係: payment-service -> api-pod-456EntityStore アーキテクチャ
コアコンポーネント
EntityStore は、次のコアコンポーネントを含むレイヤー化アーキテクチャを使用します。
┌─────────────────────────────────────────────────────┐
│ クエリレイヤー │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ USearch │ │ Graph Query │ │ UModel Query│ │
│ │(エンティティ取得)│ │(関係クエリ)│ │(メタデータクエリ) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────┐
│ ストレージエンジン │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ UModel │ │ Entity │ │ Topo │ │
│ │ (メタストア) │ │(エンティティストレージ) │ │(関係ストレージ)│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────┘SLS Logstore アセット
EntityStore は、Simple Log Service (SLS) Logstore を使用してデータの書き込みと消費を行います。EntityStore を作成すると、次の Logstore アセットも作成されます。
${workspace}__entity: エンティティデータの書き込みに使用されます。${workspace}__topo: 関係データの書き込みに使用されます。
特徴
1. マルチパターンクエリのサポート
USearch (エンティティ取得)
全文インデックス: 複数フィールドにまたがるあいまい検索をサポートします。
用語クエリ: ID またはプロパティに基づく完全に一致をサポートします。
集計分析: 統計およびグループ化機能を提供します。
UModel Query (メタデータクエリ)
スキーマクエリ: EntitySet 定義を取得します。
関係定義クエリ: EntitySetLink 構成を取得します。
グラフコンピューティング: UModel メタデータに基づいて関連分析を実行します。
Graph Query (関係クエリ)
パスクエリ: マルチホップ関係パスを分析します。
近傍クエリ: エンティティの隣接関係を分析します。
カスタムクエリ: カスタムトポロジーパターンを認識します。
2. エンティティトポロジーの動的ライフサイクル
動的ライフサイクル: エンティティと関係には動的なライフサイクルがあり、有効期限と削除時間を設定できます。
ポイントインタイムリカバリ: エンティティと関係の状態を任意の時点に復元でき、トラブルシューティングに役立ちます。
クエリパフォーマンスの最適化: 動的なエンティティ置き換えメカニズムにより、異なるエポック間でのクエリパフォーマンスが保証されます。
3. 書き込みパターンのサポート
増分書き込み: イベントに基づくリアルタイム更新。
完全書き込み: 定期的かつ完全なデータ同期。
ライフサイクル管理: Create、Update、Expire、Delete、Revise 操作をサポートします。