适用于:✅Azure 数据资源管理器
使用图形查询语言(GQL)可以使用标准化的图形模式匹配。 GQL 遵循图形数据库查询的 ISO GQL 标准 。
注释
GQL 支持处于预览状态。 功能和语法可能会根据反馈和正在进行的开发而变化。
介绍
图形查询语言(GQL)是查询图形数据库的新兴 ISO 标准。 GQL 允许对图形模式匹配使用类似于 SQL 的语法,因此可以更轻松地分析数据中的关系。 本文介绍如何使用 GQL、其优点和关键功能。
GQL 提供标准化的图形模式匹配功能,用于使用 ISO 标准语法分析数据中的关系。
入门指南
若要使用 GQL,需要:
步骤 1:创建图形引用
在使用 GQL 之前,请创建图形数据源。 本文使用内存中生成图形运算符,但我们建议对生产方案使用图形快照。
.create-or-alter function G_doc() {
let nodes = datatable(id:string, lbl:string, name:string, properties:dynamic)
[
"p1","Person","Alice",dynamic({"age": 25}),
"p2","Person","Bob",dynamic({"age": 30}),
"p3","Person","Carol",dynamic({"age": 28}),
"p4","Person","David",dynamic({"age": 35}),
"p5","Person","Emma",dynamic({"age": 26}),
"c1","Company","TechCorp",,
"c2","Company","DataSoft",,
"c3","Company","CloudInc",,
"ct1","City","Seattle",,
"ct2","City","Portland",,
"ct3","City","San Francisco",
];
let edges = datatable(source:string, target:string, lbl:string, since:int)
[
"p1","c1","works_at",2020,
"p2","c1","works_at",2022,
"p3","c2","works_at",2023,
"p4","c3","works_at",2021,
"p5","c1","works_at",2024,
"p1","ct1","located_at",2019,
"p2","ct1","located_at",2021,
"p3","ct2","located_at",2022,
"p4","ct3","located_at",2020,
"p5","ct2","located_at",2023,
"c1","ct1","located_at",2015,
"c2","ct2","located_at",2018,
"c3","ct3","located_at",2017,
"p1","p2","knows",2019,
"p2","p3","knows",2021,
"p3","p4","knows",2022,
"p4","p5","knows",2023,
"p1","p4","likes",2020,
"p4","p1","likes",2020,
"p5","p2","likes",2022
];
edges
| make-graph source --> target with nodes on id
}
步骤 2:配置客户端请求属性
若要运行 GQL 查询,请设置三个客户端请求属性。 使用指令通过 SDK、API 或直接在 Kusto 资源管理器 或 Azure 数据资源管理器 Web UI 中设置这些属性。
设置客户端请求属性
重要
在运行 GQL 查询之前,请单独运行每个指令。 指令为 GQL 执行设置查询环境。
#crp query_language=gql
#crp query_graph_reference=G_doc()
若要在 GQL 中使用标签,请设置标签列名称:
#crp query_graph_label_name=lbl
小窍门
标签在 GQL 中是可选的,但它们通常用于按类型筛选节点和边缘。 设置标签列名称以在 GQL 查询中使用标签。
以编程方式设置客户端请求属性
对于编程访问,请设置以下客户端请求属性:
-
query_language
:设置为"gql"
. -
query_graph_reference
:设置为图形函数名称(例如"G_doc()"
)。 -
query_graph_label_name
:设置为标签列名称(例如"lbl"
)。
步骤 3:运行 GQL 查询
完成设置后,使用标准 GQL 语法运行 GQL 查询。 使用以下示例浏览基本和高级 GQL 功能。
例子
在此处查找模式匹配和标签的基本示例。 有关更复杂的示例,请参阅 GQL 查询模式、示例和常见方案。 有关参考文档(包括基础知识和函数详细信息),请参阅 Graph 查询语言(GQL)参考。
基本模式匹配的示例 GQL 查询
MATCH (n)-[e]->(n2)
RETURN COUNT(*) as CNT
输出
下表显示了查询的结果。
CNT |
---|
20 |
带有标签的示例 GQL 查询
MATCH (p:Person)-[e]->(target)
RETURN p.name, target.name, e.lbl
ORDER BY p.name, target.name
LIMIT 2
输出
下表显示了查询的结果。
p.name | target.name | e.lbl |
---|---|---|
爱丽丝 | 鲍勃 | 知道 |
爱丽丝 | 大卫 | 喜欢 |