Entity Store 简介

概述

EntityStore 是 UModel 系统中的统一存储引擎,负责存储和管理可观测性领域的核心 Metadata 数据,包括 UModel 元数据、实体数据和实体关系数据。它为可观测性分析提供高性能的数据存储和查询能力。

应用案例

当前应用案例相关素材,请参考:umodel.zip

核心概念

在深入了解EntityStore之前,需要明确几个容易混淆的核心概念:

概念

定义

类比

示例

UModel

完整的知识图谱系统

整个数据库Schema

包含所有APM、K8s、云资源的完整建模体系

EntitySet

知识图谱中的实体类型定义

数据库中的表结构定义

apm.service(APM服务类型定义)

Entity

具体的实体实例

数据库中的具体记录

user-service-v1.2.3(具体的服务实例)

EntitySetLink

实体之间的关系定义

图数据库中的关系类型定义

service_runs_on_pod(服务运行在Pod上)

EntityRelations

实体之间的关系实例

图数据库中的关系实例

user-service -> web-pod-123(服务运行在Pod上)

详细关系说明

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。