Текущие ограничения графа в Microsoft Fabric

Граф в Microsoft Fabric имеет определённые функциональные ограничения. В этой статье рассматриваются некоторые ключевые ограничения, но не является исчерпывающим списком. Регулярно проверяйте наличие обновлений.

Сведения о распространенных проблемах см. в графе "Устранение неполадок".

Создание моделей графов

Источники данных

OneLake и зеркальные базы данных — поддерживаемые источники данных для графов.

Типы данных

Модели графов поддерживают следующие типы значений свойств.

Тип значения GQL Описание
BOOLEAN Значения: true и false.
INT (или INT64) Значения — это 64-битные знаковые целые числа.
DOUBLE (или FLOAT64) Значения — это 64-битные числа IEEE-754 с плавающей запятой.
FLOAT (или FLOAT32) Значения — это 32-битные числа с плавающей запятой.
STRING Значения — это строки символов Unicode, закодированные в UTF-8. Максимальный размер свойства — 65 535 байт.
ZONED DATETIME Значения — это временные метки вместе со смещением по часовым поясам с точностью в миллисекундах.

Следующие типы столбцов OneLake и Delta Lake поддерживаются для внесения в графики.

Тип OneLake Отображения в тип значения свойств GQL
BooleanType BOOLEAN
ByteType INT (или INT64)
IntegerType INT (или INT64)
LongType INT (или INT64)
FloatType DOUBLE (или FLOAT64)
DoubleType DOUBLE (или FLOAT64)
StringType STRING
DateType ZONED DATETIME
TimestampType ZONED DATETIME
TimestampNtzType ZONED DATETIME

Note

Сложные или вложенные типы Дельта-Лейк (MapType и StructType) не поддерживаются. Вы можете парсировать столбцы строк, закодированные в JSON, во время запроса, используя PARSE_JSON_STRING.

Обработка и масштабирование графов

Операции загрузки и обновления графов могут требовать увеличенного времени обработки в зависимости от размера графа, количества элементов графа (узлов и рёбер), а также размера полезных нагрузок свойств, связанных с этими элементами. Большие графики могут занимать несколько часов на обработку. Если загрузка или обновление графика не завершена в течение 24 часов, подайте запрос в поддержку для дальнейшего расследования.

Текущие возможности обработки графов поддерживают графы, содержащие до примерно 2 миллиардов элементов графа (узлов и рёбер). Эффективная ёмкость может варьироваться в зависимости от структуры графа и размера полезной нагрузки свойства. Если ожидается, что ваша нагрузка превысит эти ограничения, обратитесь в служба поддержки Майкрософт за советом.

Столбцы секционирования

Столбцы разделения Дельта-Лейк имеют ограниченную поддержку как графовые свойства:

  • Столбцы разделов, используемые как единственный первичный ключ, всегда отклоняются.
  • Сгенерированные столбцы разделов не поддерживаются.
  • Сложные и десятичные типы столбцов (Decimal, Binary, ArrayMap, , и Struct) отбрасываются с предупреждением.

Изменения схемы

Изменения схемы запускают перезагрузку графика.

Запрос данных

Пути переменной длины

Конструктор путей Explore UI поддерживает до восьми переходов для паттернов переменной длины. Это ограничение пользовательского интерфейса не применяется к запросам GQL, введённым в редакторе кода.

Graph поддерживает ALL префиксы поиска и ANY SHORTEST по путям. ALL SHORTEST и ANY не поддерживаются.

Следующая таблица обобщает поддержку GQL с переменной длиной:

Поиск по пути и режим пути Фиксированный или ограниченный квантор Неограниченный квантор
ALL WALK (по умолчанию) Поддерживается Не поддерживается, потому что повторяющиеся элементы могут создавать бесконечное количество путей.
ALL TRAIL, ALL SIMPLE или ALL ACYCLIC Поддерживается Поддерживается, но количество путей всё равно может быть большим.
ANY SHORTEST WALK Поддерживается Поддерживается для простой доступности конечных точек с одним анонимным количественным краем между двумя узлами. Путь, ограниченный этой неограниченной формой, может использоваться только с PATH_LENGTH(path) и, рядом с ним, path IS NULL; полный путь не материализуется. См. Неограниченные узоры переменной длины.
ANY SHORTEST TRAIL, ANY SHORTEST SIMPLE или ANY SHORTEST ACYCLIC Поддерживается Supported.

Фиксированные и ограниченные кванторы — это {n}, {m,n}и {,n}. Неограниченные кванторы — это {m,}, *и +. Для получения дополнительной информации см. графовые паттерны GQL.

Расположение предиката пути

GQL отличает предикаты, ограничивающие подходящие пути, от предикатов, фильтрующих пути после того, как префикс поиска по пути выбрал их. Для некоторых ANY SHORTEST форм запроса Graph в настоящее время может применять условие на уровне MATCH ... WHERE оператора перед выбором пути.

Чтобы сделать задуманную стадию явной, размещайте предикаты правомочности по линии в узорах узлов или рёбер. Для фильтрации после выбора используйте отдельный FILTER оператор после MATCH. Например, см. Место предикатов до или после выбора пути.

Список фильтров предикатов

Фильтры предикатов списков в настоящее время не поддерживают:

  • EXISTS подзапросы.
  • Агрегатные функции над локально связанным элементом. Поддерживается горизонтальная агрегация по объединяющему списку групп.

Для поддерживаемого синтаксиса и семантики результатов см. Функции предиката списка.

Размер результатов

Граф обрезает ответ запроса, когда его внутреннее бинарное представление превышает 64 МБ. Graph возвращает подходящие строки и сообщает дополнительное предупреждение с публичным статусным кодом 01000 и каноничным GQLSTATUS 01M11. Промежуточные результаты ограничены 128 МБ.

В ответе нет токена продолжения для строк, пропущенных при усечении. Сузьте результат с помощью фильтров, конкретных проекций или LIMIT, а затем запустите запрос снова.

Таймаут

Выполнение API запросов имеет общий тайм-аут 20 минут, включая запросы на продолжение. Если выполнение превышает этот лимит, API возвращает HTTP 408 с кодом QueryTimeoutошибки .

Subqueries

CALL, OPTIONAL CALL, и подзапросы к процедурной форме EXISTS поддерживаются. Встроенные CALL подзапросы могут быть вложены и неявно импортировать переменные из окружающих областей. Именованные вызовы процедур, явные списки импорта переменных, такие CALL (p) { ... }как , только EXISTSпо шаблону графа, и скалярные подзапросы (VALUE { ... }) не поддерживаются.

Функции агрегирования

Поддерживаются следующие функции агрегирования:

  • COUNT, COUNT(*), SUM, AVG, MINи MAX
  • COLLECT_LIST, COLLECT_ONE и COLLECT_ELEMENTS
  • DISTINCT варианты всех предыдущих функций
  • Горизонтальные (по строкам, над групповыми переменными/списками) варианты всех вышеуказанных

Следующие функции агрегации пока не поддерживаются:

  • PERCENTILE_CONT и PERCENTILE_DISC.
  • STDDEV_POP и STDDEV_SAMP.
  • PRODUCT

Установка операций

UNION ALL и UNION DISTINCT поддерживаются. INTERSECT, EXCEPT, и OTHERWISE пока не поддерживаются.

Поддерживаемые операторы и положения GQL

Поддерживаются следующие основные GQL-операторы и оговорки:

  • MATCH и OPTIONAL MATCH.
  • WHERE Фильтры
  • LET Переменные привязки
  • FOR ... IN Разворачивание списка с необязательным ORDINALITY индексированием
  • NEXT, включая этапы запроса, содержащие UNION, UNION DISTINCT, или UNION ALL
  • RETURN и RETURN DISTINCT.
  • GROUP BY
  • ORDER BY с NULLS FIRST или NULLS LAST
  • LIMIT и OFFSET.
  • UNION ALL и UNION DISTINCT.
  • CALL, OPTIONAL CALL и EXISTS
  • CAST с широкой матрицей преобразования типов
  • Поддерживаемые скалярные и агрегатные функции , перечисленные в выражениях, предикатах и функциях GQL

Операции DML и DDL

Операции с использованием языка обработки данных (DML), таких INSERTкак , UPDATE, и DELETE не поддерживаются через GQL. Операции на языке определения данных (Data Definition Language (DDL) для мутаций схемы не поддерживаются.

Экспорт и визуализация данных

Экспорт результатов запроса графа или структур графа в настоящее время не поддерживается.

Подключение Power BI непосредственно к графу для сценариев визуализации в настоящее время не поддерживается.

Соответствие GQL

Подробное сопоставление поддерживаемых функций GQL с стандартом ISO/IEC 39075:2024, включая минимальное соответствие, необязательные функции по группам и функциям, которые еще не поддерживаются, см. в разделе GQL standard соответствия.

Соответствие стандартам GQL для следующих функций всё ещё находится в стадии.

Управление потоками и операциями множества

  • Выражения EXCEPT ALL и EXCEPT DISTINCT
  • Выражения INTERSECT ALL и INTERSECT DISTINCT
  • заявление OTHERWISE

Поиск по путям и сопоставление шаблонов

  • ALL SHORTEST Поиск по пути (не поддерживается)
  • ANY Поиск по пути
  • Предикаты нелокальных шаблонов
  • Расслабленная топологическая согласованность
  • Подстановочные знаки

Predicates

  • Предикат теста метки (IS LABELED)
  • предикат IS DIRECTED
  • Нормализованный предикат
  • Предикат источника и назначения
  • предикат ALL_DIFFERENT
  • предикат IS DISTINCT
  • предикат SAME
  • предикат REGEXP_CONTAINS

Поддерживаемые типы значений во время выполнения

Тип значения во время выполнения Представление/ареал Limit
BOOLEAN true и false.
INT (или INT64) 64-разрядное целое число со знаком
UINT (или UINT64) Целое число без знака 64-битное
DOUBLE (или FLOAT64) IEEE-754 binary64 Проверки только конечных данных нет; принимаются неконечные значения
STRING Строка Юникода 65 534 байта (длина uint16 на диске)
ZONED DATETIME Миллисекунды с эпохи Unix плюс смещение int32 UTC Миллисекундный диапазон int64
DURATION(DAY TO SECOND) Миллисекундная точность
NODE uint64 raw
EDGE uint64 raw
LIST Однородный типизированный список 65 534 элемента (длина на диске uint16)
RECORD Структура типизированных полей
PATH Чередующийся список узлов и рёбер, который всегда начинается и заканчивается узлом 65 534 элемента (длина на диске uint16)

Типы значений во время выполнения пока не поддерживаются

  • INT8, INT16, и INT32 типы значений (INT64 поддерживаются)
  • FLOAT16 и FLOAT32 типы значений (FLOAT64 поддерживаются)
  • UINT8, UINT16, и UINT32 типы значений (UINT64 поддерживаются)
  • ZONED TIME Тип стоимости
  • DATE Value type как самостоятельный тип. Даты поглощения отображаются с Zoned DateTime.
  • LOCAL DATETIME Тип стоимости
  • LOCAL TIME Тип стоимости
  • DURATION(YEAR TO MONTH) Тип стоимости
  • BYTES Тип ценности. Поддержка входящей системы, но тип не подлежит запросу как сохранённое свойство.
  • VECTOR Тип стоимости

Функции и выражения

  • PROPERTIES функция
  • NORMALIZEс NFKC формами и NFKD
  • DURATION_BETWEEN функция
  • Поисковые CASE WHEN выражения
  • Скалярные вложенные запросы
  • Объединение значений пути
  • Конкатенация строк байтов TRIMи функции длины
  • Простая TRIM функция со TRIM спецификацией
  • Функция многосимволов TRIM
  • CARDINALITY

Aggregation

  • PERCENTILE_CONT Агрегатная функция
  • PERCENTILE_DISC Агрегатная функция
  • PRODUCT Агрегатная функция
  • STDDEV_POP Агрегатная функция
  • STDDEV_SAMP Агрегатная функция

Other

  • Передача параметров ($param спецификация динамических параметров)
  • Пользователь сессии (SESSION_USER)
  • CALL Оператор назначенной процедуры
  • CALL подзапросы с явными списками импорта переменных
  • Управление каталогом. Имена графов и ограничений генерируются автоматически.

Catalog

Note

Имена графов и имена ограничений генерируются автоматически и не могут быть указаны в интерфейсе или в JSON-схеме.

Область каталога Предел тока / поведение Recommendation
Схема графа Один тип графа на каждый каталог.
Название графа Должно быть непустым; нет явной максимальной длины. 127 символов
Типы узлов Максимум примерно 2 миллиарда (int32 ID пространство). 64K
Типы ребер Максимум примерно 2 миллиарда (int32 ID пространство). 64K
Уникальные метки узлов Максимум примерно 2 миллиарда; дубликаты внутри одного типа отклоняются. Выводится из типов узлов
Уникальные метки ребер Максимум примерно 2 миллиарда; дубликаты внутри одного типа отклоняются. Выводится из типов ребр
Уникальные названия объектов Максимум примерно 2 миллиарда; пустые имена и дубликаты в одном типе отклоняются. 64K x 10
Свойства по типу узла Нет явного максимума; дублирующиеся имена свойств отклоняются. 256
Свойства по типам рёбер Нет явного максимума; дублирующиеся имена свойств отклоняются. 256
Метки по типу узла Явного максимума нет; дублирующиеся метки отклоняются. 64
Метки по типу рёбра Явного максимума нет; дублирующиеся метки отклоняются. 64
Ключевые свойства по ограничению Нет явного максимума; имена свойств должны быть непустыми. 16
Длина названия объекта Не навязываются явно, кроме как непусто. 127 символов
Длина имени метки Не навязываются явно, кроме как непусто. 127 символов
Ограничения ключей по рёбрам Отключён по умолчанию (allow_edge_key_constraints флаг). ≤ количество типов рёбер