概述
EntityStore 是 UModel 系统中的统一存储引擎,负责存储和管理可观测性领域的核心 Metadata 数据,包括 UModel 元数据、实体数据和实体关系数据。它为可观测性分析提供高性能的数据存储和查询能力。
应用案例
当前应用案例相关素材,请参考:umodel.zip
核心概念
在深入了解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-456
EntityStore架构
核心组件
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。