持久图形概述(预览版)

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

注释

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

持久图形使你可以大规模存储、管理和查询图形数据结构。 与使用 生成图形 运算符创建的暂时性图形不同,永久性图形是持久数据库对象,这些对象在单个查询执行之外仍然存在,提供企业级图形分析功能。

概述

持久图由两个主要组件组成:

此体系结构提供了在大规模查询图形数据方面定义图形架构和效率方面的灵活性。

主要优势

永久性图形为企业级图形分析提供显著优势:

  • 持久存储:图形模型和快照保留在数据库元数据中以实现长期可用性
  • 可伸缩性:处理超过单节点内存限制的大型图形
  • 可重用性:多个用户和应用程序可以在不重建的情况下查询相同的图形结构
  • 性能优化:消除重复查询的图形构造开销
  • 架构支持:具有其属性的不同节点和边缘类型的结构化定义
  • 版本控制:多个快照支持在不同时间点表示图形

图形模型

图形模型定义存储在数据库元数据中的图形的规范。 其中包括:

  • 架构定义:具有其属性的节点和边缘类型
  • 数据源映射:从表格数据生成图形的说明
  • 标签:节点和边缘的静态(预定义)和动态(在运行时生成)标签

图形模型包含用于创建图形快照的蓝图,而不是实际图形数据。

管理图形模型

以下命令可用于管理图形模型:

指令 DESCRIPTION
.create-or-alter graph_model 创建新的图形模型或更改现有图形模型
.show graph_model 显示特定图形模型的详细信息
.show graph_models 列出数据库中的所有图形模型
.drop graph_model 删除图形模型

图形快照

图形快照是从图形模型具体化的实际图形实例。 它表示:

  • 模型定义的数据的特定时间点视图
  • 节点、边缘及其属性采用可查询格式
  • 在显式删除之前保留的自包含实体

快照是处理持久图时查询的实体。

管理图形快照

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

指令 DESCRIPTION
.make graph_snapshot 从图形模型创建新的图形快照
.show graph_snapshot 显示特定图形快照的详细信息
.show graph_snapshots 列出数据库中的所有图形快照
.drop graph_snapshot 删除单个图形快照
.drop graph_snapshots 根据条件删除多个图形快照

工作流程

创建和使用永久性图形的典型工作流遵循以下步骤:

  1. 创建图形模型 - 定义图形的结构和数据源
  2. 创建图形快照 - 将图形模型具体化为可查询快照
  3. 查询图形快照 - 使用 KQL 图形运算符分析图形数据
  4. 管理生命周期 - 根据需要创建新快照并删除旧快照

查询持久图形

创建图形快照后,可以使用函数后跟其他 KQL 图形运算符对其进行查询 graph

graph("MyGraphModel")
| graph-match (n)-[e]->(m)
    project n, e, m

若要查询特定快照,请提供快照名称:

graph("MyGraphModel", "MyGraphSnapshot")
| graph-match (n)-[e]->(m)
    project n, e, m

运算符 graph-match 启用模式匹配和遍历作,同时 graph-shortest-paths 有助于查找实体之间的最佳连接。 运算符将 graph-to-table 图形结果转换回表格格式。

关键注意事项

本部分介绍图形模型和快照的主要注意事项和当前限制。

快照限制

永久性图形具有以下限制:

  • 常规数据库限制:每个数据库最多 5,000 个图形快照
  • 免费虚拟群集限制:每个数据库最多 500 个图形快照
  • 快照创建时间:限制为 1 小时

后续步骤