Руководство. Запрос графа с помощью GQL

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Эта предварительная демонстрация предоставляется без соглашения на уровне обслуживания и не рекомендуется для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.

На этом шаге руководства вы запрашиваете граф с помощью GQL (язык запросов Graph) в редакторе кода. GQL предоставляет мощные возможности запросов для сложных шаблонов графов и анализа.

Переключение в режим редактора кода

Выполните следующие действия, чтобы перейти в редактор кода и начать запрос к графу с помощью GQL:

  1. Перейдите на домашнюю страницу вашего графика.

  2. Выберите редактор кода в верхнем меню.

    Снимок экрана: результат выбора редактора кода.

Выполнение базового запроса

  1. Введите запрос GQL в поле ввода. Например, подсчитывать все заказы:

    MATCH (n:`Order`) RETURN count(n) AS num_orders
    
  2. Выберите "Выполнить запрос ", чтобы выполнить запрос.

Этот запрос находит все узлы с Order меткой, подсчитывает их и возвращает общее значение в виде num_orders. Это простой способ подтвердить наличие данных в графике и убедиться, что количество совпадает с числом загруженных строк заказа. На следующем рисунке показан результат запроса:

Снимок экрана: результат выполнения запроса GQL для подсчета всех заказов.

Восстановите запрос построителя запросов в GQL

На предыдущем шаге руководства вы использовали построитель запросов для поиска продуктов, приобретенных конкретным клиентом. Вот тот же запрос, написанный в GQL:

MATCH (c:Customer)-[:purchases]->(o:`Order`)-[:`contains`]->(p:`Product`)
FILTER c.fullName = 'Carla Adams'
RETURN c.fullName, o, p.productName

Этот запрос:

  1. Соответствует шаблону Customer → → purchasesOrder → → containsProduct
  2. Фильтры для клиента с именем Карла Адамс
  3. Возвращает полное имя клиента, детали заказа и наименования продуктов

На следующем рисунке показан результат запроса (отображается только часть возвращаемых данных).

Снимок экрана: результат выполнения запроса GQL для поиска продуктов, приобретенных Карлой Адамс.

Выполнение сложного запроса

Можно выполнять более сложные запросы, которые объединяют соответствующие шаблоны графов, фильтрацию, агрегирование, сортировку и ограничение:

MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`), 
      (o:`Order`)-[:`contains`]->(p)
FILTER c.categoryName = 'Clothing'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(DISTINCT p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5

Этот запрос:

  1. Соответствует шаблону, который подключает поставщиков к продуктам через цепочку поставок и заказы на продукты.
  2. Фильтры для продуктов в Clothing категории.
  3. Определяет переменные для имен поставщиков и подкатегорий.
  4. Возвращает имя поставщика, подкатегорию, отдельное число продуктов и число заказов.
  5. Группировать результаты по поставщику и подкатегории.
  6. Результаты заказов по количеству заказов в порядке убывания.
  7. Ограничивает результаты до 5 лучших.

В сводке показано пять лучших поставщиков, поставляющих продукты в Clothing категории, а также количество продуктов, которые они предоставляют, и сколько заказов у этих продуктов.

Снимок экрана: результат выполнения запроса GQL для поиска лучших пяти поставщиков, поставляющих продукты в категории

Дополнительные сведения о поддержке языка GQL см. в следующем разделе:

Следующий шаг