Поделиться через


Язык запросов Graph (GQL) (предварительная версия)

Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer

Язык запросов Graph (GQL) позволяет использовать стандартизированное сопоставление шаблонов графа. GQL следует стандарту ISO GQL для запросов к базе данных графа.

Замечание

Поддержка GQL доступна в предварительной версии. Функции и синтаксис могут изменяться на основе отзывов и текущей разработки.

Введение

Язык запросов Graph (GQL) — это новый стандарт ISO для запросов к базам данных графа. GQL позволяет использовать синтаксис, подобный SQL, для сопоставления шаблонов графов, поэтому проще анализировать связи в данных. В этой статье объясняется, как использовать GQL, его преимущества и ключевые функции.

GQL предоставляет стандартизированные возможности сопоставления шаблонов графов для анализа связей в данных с помощью стандартного синтаксиса ISO.

Начало работы

Чтобы использовать GQL, вам потребуется:

  • Источник данных графа, который является моделью графа или функцией, возвращающей временный граф, заканчивающийся оператором make-graph (см. шаг 1).
  • Задайте определенные свойства запроса клиента (см. шаг 2).

Шаг 1. Создание ссылки на граф

Перед использованием GQL создайте источник данных графа. В этой статье используется оператор make-graph в памяти, но мы рекомендуем использовать моментальный снимок графа для рабочих сценариев.

.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 Data Explorer с помощью директив.

Чтобы запустить запросы GQL, задайте три свойства запроса клиента. Задайте эти свойства с помощью пакета SDK, API или непосредственно в обозревателе Kusto или наборе запросов KQL с помощью директив.

Задание свойств запроса клиента

Это важно

Запустите каждую директиву отдельно перед выполнением запроса 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
Алиса Боб Знает
Алиса Давид Любит