图形快照概述(预览版)

适用于:✅Azure 数据资源管理器

注释

此功能目前处于公开预览状态。 正式发布之前,功能和语法可能会更改。

图形快照是一个数据库实体,表示特定时间点图形模型的具体化实例。 虽然 图形模型 定义了结构和数据源,但快照是可查询的图形实现。

概述

图形快照提供:

  • 模型链接:连接到特定图形模型
  • 时间点具体化:表示创建时图形状态
  • 持久性:存储在数据库中,直到显式删除
  • 直接查询:启用查询而不重新生成图形
  • 元数据存储:包含创建时间和模型信息

同一图形模型中的多个快照支持对图形数据进行历史分析和时态比较。

图形快照结构

每个图形快照都包含两个主要组件:

元数据

  • 名称:唯一快照标识符
  • SnapshotTime:创建时间戳
  • 模型信息
    • ModelName:源图模型名称
    • ModelVersion:创建快照时的模型版本
    • ModelCreationTime:源模型创建时间戳

图形数据

  • 节点:模型作中的 AddNodes 具体化节点
  • 边缘:模型作中的 AddEdges 具体化关系
  • 属性:模型中定义的节点和边缘属性

示例快照配置

{
  "Metadata": {
    "Name": "UserInteractionsSnapshot",
    "SnapshotTime": "2025-04-28T10:15:30Z"
  },
  "ModelInformation": {
    "ModelName": "SocialNetworkGraph",
    "ModelVersion": "v1.2",
    "ModelCreationTime": "2025-04-15T08:20:10Z"
  }
}

管理命令

使用以下命令管理图形快照:

指令 目的
.make graph_snapshot 从现有图形模型创建快照
.drop graph_snapshot 从数据库中删除快照
.show graph_snapshots 列出数据库中的可用快照

查询快照

使用 graph() 函数查询图形快照:

查询最新快照

graph("SocialNetworkGraph") 
| graph-match (person)-[knows]->(friend)
  where person.age > 30
  project person.name, friend.name

查询特定快照

graph("SocialNetworkGraph", "UserInteractionsSnapshot") 
| graph-match (person)-[knows]->(friend)
  where person.age > 30
  project person.name, friend.name

有关高级模式匹配和遍历,请参阅 Graph 运算符

主要优势

图形快照提供:

  • 增强性能:消除每个查询的图形重新生成
  • 数据一致性:确保所有查询都以相同的图形状态运行
  • 时态分析:跨时间段启用历史比较
  • 资源优化:减少重复作的 CPU 和内存消耗