Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Graph в Microsoft Fabric имеет определённые функциональные и производительные ограничения. В этой статье рассматриваются некоторые ключевые ограничения, но не является исчерпывающим списком. Регулярно проверяйте наличие обновлений.
Сведения о распространенных проблемах см. в графе "Устранение неполадок".
Создание моделей графов
Источники данных
- Файлы Parquet и CSV OneLake являются единственными источниками данных, поддерживаемыми в настоящее время.
- Поддержка Power BI семантических моделей в процессе разработки источников данных.
Типы данных
Graph в настоящее время поддерживает следующие типы данных:
- Логический (значения и
truefalse) - Double (значения — 64-разрядные числа с плавающей запятой)
- Целое число (значения — 64-разрядные целые числа со знаком)
- Строка (значения — символьные строки Юникода)
- Zoned DateTime (значения — это временные метки вместе с временным сдвигом для часового пояса)
- Длительность (значения — интервалы длительности ISO 8601)
Поддерживаются следующие типы OneLake:
- Целочисленный тип
- LongType
- Тип строки
- ДвойнойТип
- Тип Boolean
- Тип с плавающей запятой
- ByteType
- ArrayType
- ТипДата
- TimestampNtzType
- Тип временной метки
Создание пограничных вычислений
Во время моделирования графа присвойте разным типам краев графа разные имена.
Например, набор данных социальных сетей может представлять "пользователь любит комментарий" и "пользователь любит запись". Если в модели графа используются отдельные типы узлов для комментариев и публикации, то тип узла пользователя имеет два типа ребра "нравится" для комментариев и публикации. Эти края можно назвать userLikesComment и userLikesPost.
Время создания графа
До одного раза в неделю модель графа может столкнуться с временем ожидания, если создание или обновление графа занимает более 20 минут. Операция помечена как сбой.
Однако пользователи могут повторно создавать графы или обновлять их.
Размер графа
Современные общедоступные конфигурации SKU могут обрабатывать около 2 миллиардов графовых элементов (узлов и рёбер). Для больших графов с большим количеством элементов или большим свойственным полезной нагрузкой на элемент, пожалуйста, свяжитесь с продуктовой командой.
Общее количество графовых моделей
Каждое рабочее пространство Fabric может содержать до 10 графовых моделей.
Многозадачность пользовательского интерфейса
Модель графа может исчезнуть или стать пустой при переключении между вкладками или окнами в пользовательском интерфейсе Fabric многозадак. Группа продуктов активно работает над решением этой известной проблемы.
Выбор свойства узла
Когда вы добавляете узел или тип ребра в модель графа, вручную выбирайте столбцы из исходной таблицы для добавления свойств. И узлы, и рёбра начинаются без свойств, и вы добавляете только те, что вам нужны.
Запрос данных
Количество прыжков в запросах с несколькими перехватчиками
График в настоящее время поддерживает до восьми прыжков в шаблонах переменной длины.
Размер результатов
Производительность агрегирования может быть нестабильной, если результаты превышают размер 128 МБ.
Система в настоящее время усечена ответов, размер которых превышает 64 МБ.
Таймаут
Время ожидания запросов, если они занимают более 20 минут.
Экспорт и визуализация данных
- Экспорт результатов запроса графа или структур графа в настоящее время не поддерживается.
- Подключение Power BI непосредственно к графу для сценариев визуализации в настоящее время не поддерживается.
Соответствие GQL
Подробное сопоставление поддерживаемых функций GQL с стандартом ISO/IEC 39075:2024, включая минимальное соответствие, необязательные функции по группам и функциям, которые еще не поддерживаются, см. в разделе GQL standard соответствия.
Соответствие стандартам GQL по-прежнему выполняется:
- Исправление кодов состояния GQL
- Инструкция FOR с индексом
- СЛЕДУЮЩИЙ
- Оператор UNION DISTINCT
- Квантификаторы шаблонов графа без подключения
- ВСЕ ПОИСК ПО КРАТЧАЙШЕМу пути
- ЛЮБОЙ поиск пути
- ЛЮБОЙ ПОИСК ПО КРАТЧАЙШЕМу пути
- Преобразование данных
- Скалярные вложенные запросы
- Функция PROPERTIES
- Функция RANGE
- Расширенные числовые функции
- Логарифмические функции
- Функции Trigonometric
- Объединение значений пути
- Предикат теста метки
- Нормализованный предикат
- Предикат источника и назначения
- Тип значения INT32
- тип значения FLOAT32
- Тип значения закрытого записи
- Тип значения UINT32
- Тип значения ZONED TIME
- Тип значения DATE
- Передача параметров
- Ненаправленные края
- GQL-preamble
- Предикаты нелокальных шаблонов
- Предикат IS DIRECTED
- предикат REGEXP_CONTAINS
- Спецификация динамического параметра
- Пользователь сеанса
- Тип значения BYTES
- Тип ЗНАЧЕНИЯ DECIMAL
- Тип значения LOCAL DATETIME
- Тип значения LOCAL TIME
- Оператор именованной процедуры CALL
- ORDER BY с явным порядком NULL
- Табличная инструкция FOR
- Инструкция EXCEPT ALL
- Инструкция EXCEPT DISTINCT
- Оператор INTERSECT ALL
- Оператор INTERSECT DISTINCT
- Оператор В ПРОТИВНОМ СЛУЧАЕ
- Подстановочные знаки
- Расслабленная топологическая согласованность
- агрегатная функция PERCENTILE_CONT
- агрегатная функция PERCENTILE_DISC
- Агрегатная функция PRODUCT
- агрегатная функция STDDEV_POP
- агрегатная функция STDDEV_SAMP
- Объединение строк байтов
- Функция TRIM строки байтов
- Простая функция TRIM с спецификацией TRIM
- Функция TRIM с несколькими диаграммами
- Функция длины строки байтов
- МОЩНОСТЬ
- предикат ALL_DIFFERENT
- ПРЕДИКАТ IS DISTINCT
- ТОТ ЖЕ предикат
Каталог
Note
Имена графов и имена ограничений генерируются автоматически и GraphBackend не могут быть указаны в интерфейсе или в схеме JSON.
| Область каталога | Предел тока / поведение | Состояние принудительного применения | Recommendation |
|---|---|---|---|
| База идентификаторов каталога | ID элементов каталога — это обёртки int32, где 0 недействительно, поэтому в каждой семье ID максимум std::numeric_limits<int32_t>::max() - 1 положительные ненулевые идентификаторы (2 миллиарда). |
Потолок внедрения, а не рекомендуемая квота GA | |
| Схемы графов | Один тип графа на каталог; Комментарии к идентификатору каталога предполагают, что каталог содержит только один тип графа. | Предположение проектирования; Не экспонируем как многосхемная квота | |
| Определение графа по сериализированному размеру | Нет явного ограничения по размеру байта на GraphProto; он содержит повторяющиеся типы узлов, типы рёбер, метки, имена свойств и ограничения. |
Не применяется ниже protobuf/gRPC/памяти; Проверка количества объектов в каталоге применяется после построения графа | |
| Название графа | Должно быть непустым; Нет явного списка максимальной длины байта или разрешённого символа. | Применяется только непустое | 128 символов |
| Типы узлов | Максимум 2 миллиарда типов узлов. | Обеспечивается CatalogGraphType::Validate через положительно ненулевой int32 ID пространство |
64k |
| Типы ребер | Максимум 2 миллиарда типов краёв. | Обеспечивается CatalogGraphType::Validate через положительно ненулевой int32 ID пространство |
64k |
| Уникальные метки узлов для всех типов узлов | Максимум 2 миллиарда уникальных меток узлов. | Применяется CatalogGraphType::Validate; дублирующиеся метки внутри одного типа отклоняются |
Производный |
| Уникальные метки рёбер для всех типов рёбер | Максимум 2 миллиарда уникальных краевых меток. | Применяется CatalogGraphType::Validate; дублирующиеся метки внутри одного типа отклоняются |
Производный |
| Уникальные имена свойств для всех типов узлов и рёбер | Максимум 2 миллиарда уникальных названий недвижимости. | В соответствии CatalogGraphType::Validateс ; имена свойств не могут быть пустыми, а дубликаты внутри одного типа отклоняются |
64k * 10 |
| Определения ограничений узлов | Максимум 2 миллиарда определений ограничений ключей узлов. | Обеспечивается CatalogGraphType::Validate через положительно ненулевой int32 ID пространство |
<= типы узлов |
| Определения ограничений рёбер | Максимум 2 миллиарда определений ограничений ключей по краям, но ограничения ключей по умолчанию отключены, если allow_edge_key_constraints только это не верно. |
Граф выполняется при наличии; Feature Gate по умолчанию отклоняет ограничения по краям | <= типы рёбер |
| Название свойств, символы / длина | Это явно не применяется за пределами непустых имён свойств и грамматики парсера; В каталоге нет максимальной длины байта или разрешённого списка символов. | 128 персонажей | |
| Символы ярлыка / длина | Не применяется явно за пределами грамматики парсера и непустых меток в ограничениях; В каталоге нет максимальной длины байта или разрешённого списка символов. | 128 персонажей | |
| Название персонажей / длина ограничений | Имена ограничений должны быть непустыми; Нет явного списка максимальной длины байта или разрешённого символа. | Проверка ограничений дублирования/сопоставления — это отдельная проверка | 128 персонажей |
| Свойства по типу узла | Нет явного максимального количества свойств на типе узла; Дублирующиеся названия свойств отклоняются. | Только проверка корректности | 256 |
| Свойства по типам рёбер | Нет явного максимального количества свойств на типе ребра; Дублирующиеся названия свойств отклоняются. | Только проверка корректности | 256 |
| Метки по типу узла | Нет явного максимального количества меток на типе узла; Дублирующие метки отклоняются. | Только проверка корректности | 64 |
| Метки по типу рёбра | Нет явного максимального количества меток на типе ребра; дублирующиеся ярлыки отклоняются; Ярлыки, добавленные по краям, отклоняются. | Только проверка корректности | 64 |
| Ключевые свойства по ограничению | Нет явного максимального количества свойств ключа в ограничениях ключей узлов или ребер; Имена отдельных объектов не могут быть пустыми. | Только проверка корректности | 16 |
Значения во время выполнения
| Тип значения во время выполнения | Представление фонов / диапазон | Явное ограничение уровня ценности? | Рекомендуется |
|---|---|---|---|
| BOOL | bool; значения верно/ложно | Да, фиксированный домен | |
| INT64 | 64-разрядное целое число со знаком | Да, фиксированная ширина | |
| UINT64 | Беззнаковое 64-битное целое число | Да, фиксированная ширина | |
| DOUBLE | C++/protobuf double / Arrow DoubleScalar (IEEE-754 binary64); неконечные значения не отклоняются Value::FromProto |
Нет проверки только с конечными данными | |
| DECIMAL128 | Стрелка Decimal128Scalar; валидация во время выполнения позволяет достигать точности 1..38 и масштабировать 0..точность; до 38 десятичных цифр |
Да, для проверенной конструкции/от proto | |
| СТРУНА |
std::string; ValueProto.string_value |
No Value Cap | 4 МБ |
| байты |
std::string используется как контейнер для байтов; ValueProto.bytes_value |
No Value Cap | Ограничение строк |
| VERTEX_ID | uint64, обёрнутый в VertexId; сгенерированные идентификаторы используют 48-битный локальный идентификатор шарда и резервируют 0 как недействительные |
Raw proto принимает любой uint64; Сгенерированные идентификаторы ограничены | |
| EDGE_ID | uint64, обёрнутый в EdgeId; сгенерированные идентификаторы используют 48-битный локальный идентификатор шарда и резервируют 0 как недействительные |
Raw proto принимает любой uint64; Сгенерированные идентификаторы ограничены | |
| ZONED_DATE_TIME |
absl::Time плюс часовой пояс; сериализируется как int64 миллисекунды с эпохи Unix плюс int32 UTC смещенные секунды. Миллисекундный диапазон равен [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807], задокументирован как UTC-мгновения с -292275055-05-16T16:47:04.192+00:00 до 292278994-08-17T07:12:55.807+00:00. |
Временной диапазон задокументирован; Смещение — это int32 и не проверяется по дальности Value::FromProto |
|
| ДЛИТЕЛЬНОСТЬ |
absl::Duration; сериализируется как int64 миллисекунды. Сериализированные минимум/максимум составляют от -9 223 372 036 854 775 808 мс до 9 223 372 036 854 775 807 мс (примерно +/-292 277 024,6 года). Парсер ISO строже: +/-9 223 372 035 секунд (примерно +/-292,277 лет). |
Прототипный путь принимает полное поле int64 миллисекунды; У парсера более узкий явный предел | |
| NULL / типизированный null |
std::monostate или типированная нулевая оболочка |
||
| Типизированные списки |
std::vector<std::optional<T>>; LIST_NULL хранит а size_t; LIST_ANY Магазины std::vector<Value> |
Нет стандартного лимита стоимости | |
| Вложенные списки | Общие вложенные списки не поддерживаются в прототипном контракте; Runtime имеет специальную LIST_INT64 вложенную обработку |
Нет стандартной квоты по глубине/длине | |
| ПУТЬ | Чередующиеся идентификаторы вершины/ребра/вершины uint64 в векторе; Валидная форма пути имеет нечётное количество элементов | Нет квоты по длине пути | |
| ЗАПИСЬ |
absl::flat_hash_map<std::string, Value> / карта протобуфа |
Нет квоты по количеству полей, длине ключа или глубине вложения | |
| ЛЮБОЙ |
Value::DataType() не ожидается возврата TYPE_ANY; динамические значения переносятся как конкретные значения, особенно внутри LIST_ANY стрелки Любое расширенное хранилище |
Нет квоты по размеру и глубине |
Другие ограничения
- Идентификаторы не могут начинаться с подчёркивания.
- Литералы целых чисел по умолчанию рассматриваются как знаковые целые числа.
- Возврат ЛЮБЫХ и типов записей не поддерживается. Временное решение — jsonize их через
TO_JSON_STRING. - Максимальная длина свойства строки — 65535. Данные выше 64 KiB недоступны для десериализатора; полный буфер всё ещё записывается в RocksDB.
- Максимальное количество элементов в
List<T>свойстве — 65535. Список INT64 из 70 000 элементов десериализируется как 4 464 элемента. - Максимальный размер ответа запроса в байтах — 64 МБ.