Bieżące ograniczenia wykresu w Microsoft Fabric

Graph w Microsoft Fabric ma pewne ograniczenia funkcjonalne. W tym artykule wyróżniono niektóre kluczowe ograniczenia, ale nie jest wyczerpującą listą. Regularnie sprawdzaj aktualizacje.

Aby uzyskać pomoc dotyczącą typowych problemów, zobacz Rozwiązywanie problemów z grafem.

Tworzenie modeli grafów

Źródła danych

OneLake i Mirrored Databases są obsługiwanymi źródłami danych dla graph.

Typy danych

Modele grafów wspierają następujące typy wartości nieruchomości.

Typ wartości GQL Opis
BOOLEAN Wartości to true i false.
INT (lub INT64) Wartości to 64-bitowe liczby całkowite ze znakiem.
DOUBLE (lub FLOAT64) Wartości to 64-bitowe liczby zmiennoprzecinkowe IEEE-754.
FLOAT (lub FLOAT32) Wartości to 32-bitowe liczby zmiennoprzecinkowe.
STRING Wartości to ciągi znaków Unicode zakodowane w UTF-8. Maksymalny rozmiar właściwości wynosi 65 535 bajtów.
ZONED DATETIME Wartości to znaczniki czasowe wraz z przesunięciem strefy czasowej, z precyzją milisekundową.

Obsługiwane są następujące typy kolumn OneLake i Delta Lake do wprowadzania do grafów.

Typ OneLake Odwzorowania na typ wartości nieruchomości GQL
BooleanType BOOLEAN
ByteType INT (lub INT64)
IntegerType INT (lub INT64)
LongType INT (lub INT64)
FloatType DOUBLE (lub FLOAT64)
DoubleType DOUBLE (lub FLOAT64)
StringType STRING
DateType ZONED DATETIME
TimestampType ZONED DATETIME
TimestampNtzType ZONED DATETIME

Note

Kompleksowe lub zagnieżdżone typy jezior Delta (MapType i StructType) nie są obsługiwane. Możesz parsować kolumny łańcuchów znaków zakodowanych w JSON podczas zapytania, używając .PARSE_JSON_STRING

Przetwarzanie grafów i skala

Operacje ładowania i odświeżania grafów mogą wymagać wydłużonego czasu przetwarzania, w zależności od rozmiaru grafu, liczby elementów grafu (węzłów i krawędzi) oraz rozmiaru ładunków właściwości powiązanych z tymi elementami. Duże wykresy mogą wymagać kilku godzin na przetworzenie. Jeśli operacja ładowania lub odświeżania grafu nie została zakończona po 24 godzinach, złóż wniosek o wsparcie do dalszego badania.

Obecne możliwości przetwarzania grafów obsługują grafy zawierające do około 2 miliardów elementów grafu (węzłów i krawędzi). Efektywna pojemność może się różnić w zależności od struktury grafu i wielkości ładunku nieruchomości. Jeśli oczekuje się, że Twoje obciążenie przekroczy te limity, skontaktuj się z pomoc techniczna firmy Microsoft po wskazówki.

Partycjonowanie kolumn

Kolumny podziału Delta Lake mają ograniczone wsparcie jako właściwości grafu:

  • Kolumny partycji używane jako jedyny klucz główny są zawsze odrzucane.
  • Generowane kolumny partycji nie są obsługiwane.
  • Kolumny podziałów złożonych i dziesiętnych (Decimal, Binary, Array, Map, i Struct) są usuwane z ostrzeżeniem.

Zmiany schematu

Zmiany schematu wywołują przeładowanie grafu.

Wykonywanie zapytania

Ścieżki o zmiennej długości

Kreator ścieżek UI Explore obsługuje do ośmiu skoków dla wzorców o zmiennej długości. To ograniczenie interfejsu użytkownika nie dotyczy zapytań GQL wprowadzonych w edytorze kodu.

Graph obsługuje ALLANY SHORTEST prefiksy i path search. ALL SHORTEST i ANY nie są obsługiwane.

Poniższa tabela podsumowuje wsparcie GQL o zmiennej długości:

Wyszukiwanie ścieżek i tryb ścieżki Kwantyfikator stały lub ograniczony Kwantyfikator nieograniczony
ALL WALK (ustawienie domyślne) Supported Nie jest obsługiwany, ponieważ powtarzające się elementy mogą generować nieskończenie wiele ścieżek.
ALL TRAIL, ALL SIMPLE lub ALL ACYCLIC Supported Wspierane, ale liczba ścieżek nadal może być duża.
ANY SHORTEST WALK Supported Obsługiwane dla prostej dostępności do punktów końcowych z jedną anonimową, ilościową krawędzią między dwoma węzłami. Ścieżka ograniczona przez tę nieograniczoną formę może być używana tylko z i PATH_LENGTH(path) obok niej, path IS NULL; pełna ścieżka nie jest materializowana. Zobacz wzorce o nieograniczonej zmiennej długości.
ANY SHORTEST TRAIL, ANY SHORTEST SIMPLE lub ANY SHORTEST ACYCLIC Supported Supported.

Stałe i ograniczone kwantyfikatory to {n}, {m,n}, oraz {,n}. Nieograniczenie kwantyfikatory to {m,}, *, oraz +. Więcej informacji można znaleźć w artykule o wzorcach grafów GQL.

Umieszczenie predykatów ścieżek

GQL rozróżnia predykaty, które ograniczają odpowiednie ścieżki, od predykatów, które filtrują ścieżki po wybraniu ich przez prefiks wyszukiwania ścieżek. Dla niektórych ANY SHORTEST kształtów zapytań Graph może obecnie zastosować warunek na poziomie MATCH ... WHERE instrukcji przed wyborem ścieżki.

Aby wyraźnie wyróżnić zamierzony etap, należy umieścić odpowiedniość predykatów w linii w wzorcach węzłów lub krawędzi. Dla filtrowania po wyborze użyj osobnego FILTER zapytania po MATCH. Przykłady można znaleźć w artykule Place predykaty przed lub po wyborze ścieżki.

Filtry predykatów z listy

Filtry predykatów listy obecnie nie obsługują:

  • EXISTS Subqueries.
  • Funkcje agregujące nad elementem lokalnie związanym. Wspierana jest pozioma agregacja na otoczonej liście grupowej.

Aby poznać wspieraną składnię i semantykę wyników, zobacz Lista funkcji predykatów.

Rozmiar wyników

Graph skraca odpowiedź zapytania, gdy jego wewnętrzna reprezentacja binarna przekracza 64 MB. Graph zwraca wiersze, które pasują, i raportuje dodatkowe ostrzeżenie z publicznym kodem 01000 statusu oraz kanonicznym GQLSTATUS 01M11. Wyniki pośrednie są ograniczone do 128 MB.

Odpowiedź nie zawiera tokena kontynuacji dla wierszy pominiętych przez obcięcie. Zawęź wynik za pomocą filtrów, konkretnych projekcji lub LIMIT, a następnie uruchom zapytanie ponownie.

Przerwa czasowa

Wykonanie API zapytań ma łączny czas przejścia 20 minut, wliczając żądania kontynuacyjne. Jeśli wykonanie przekroczy ten limit, API zwraca HTTP 408 z kodem QueryTimeoutbłędu .

Subqueries

CALL, OPTIONAL CALL, oraz podzapytań w formie EXISTS procedury. Podzapytania inline CALL mogą być zagnieżdżone i niejawnie importować zmienne z zakresów otaczających. Nie obsługiwane są wywołania procedur nazwane, jawne listy importu zmiennych, takie jak CALL (p) { ... }, tylko EXISTSwzorce grafu , oraz podzapytania skalarne (VALUE { ... }) nie są obsługiwane.

Funkcje agregacji

Obsługiwane są następujące funkcje agregacji:

  • COUNT, COUNT(*), SUM, AVG, MINi MAX
  • COLLECT_LIST, COLLECT_ONEi COLLECT_ELEMENTS
  • DISTINCT warianty wszystkich poprzednich funkcji
  • Poziome (wierszowe, nad zmiennymi/listami grupowymi) warianty wszystkich powyższych

Następujące funkcje agregacji nie są jeszcze obsługiwane:

  • PERCENTILE_CONT i PERCENTILE_DISC
  • STDDEV_POP i STDDEV_SAMP
  • PRODUCT

Ustawianie operacji

UNION ALL i UNION DISTINCT są obsługiwane. INTERSECT, EXCEPT, i OTHERWISE nie są jeszcze wspierane.

Wspierane oświadczenia i klauzule GQL

Obsługiwane są następujące podstawowe instrukcje i klauzule GQL:

  • MATCH i OPTIONAL MATCH
  • WHERE Filtry
  • LET Wiązania zmiennych
  • FOR ... IN Rozwijanie listy z opcjonalnym ORDINALITY indeksowaniem
  • NEXT, w tym etapy zapytań zawierające UNION, UNION DISTINCT, lub UNION ALL
  • RETURN i RETURN DISTINCT
  • GROUP BY
  • ORDER BY z NULLS FIRST lub NULLS LAST
  • LIMIT i OFFSET
  • UNION ALL i UNION DISTINCT
  • CALL, OPTIONAL CALLi EXISTS
  • CAST z szeroką macierzą konwersji typów
  • Obsługiwane funkcje skalarne i agregacyjne wymienione w wyrażeniach, predykatach i funkcjach GQL

Operacje DML i DDL

Operacje w języku manipulacji danymi (DML), takie jak INSERT, UPDATE, i DELETE nie są obsługiwane przez GQL. Operacje Data Definition Language (DDL) dla mutacji schematu nie są obsługiwane.

Eksportowanie i wizualizacja danych

Eksportowanie wyników zapytania grafu lub struktur grafu nie jest obecnie obsługiwane.

Łączenie Power BI bezpośrednio z grafem dla scenariuszy wizualizacji nie jest obecnie obsługiwane.

Zgodność Z GQL

Aby uzyskać szczegółowe mapowanie obsługiwanych funkcji GQL względem standardu ISO/IEC 39075:2024, w tym minimalnej zgodności, opcjonalnych funkcji według grupy i funkcji, które nie są jeszcze obsługiwane, zobacz Zgodność ze standardami GQL.

Zgodność ze standardami GQL jest nadal w toku dla następujących cech.

Sterowanie przepływem i operacjami zbioru

  • EXCEPT ALL i EXCEPT DISTINCT instrukcje
  • INTERSECT ALL i INTERSECT DISTINCT instrukcje
  • OTHERWISE, oświadczenie

Wyszukiwanie ścieżek i dopasowywanie wzorców

  • ALL SHORTEST Path Search (nie obsługiwane)
  • ANY Wyszukiwanie ścieżki
  • Predykaty nielokalnego wzorca
  • Złagodzona spójność topologiczna
  • Symbole wieloznaczne

Predicates

  • Predykat testu etykiety (IS LABELED)
  • predykat IS DIRECTED
  • Znormalizowany predykat
  • Predykat źródłowy/docelowy
  • predykat ALL_DIFFERENT
  • predykat IS DISTINCT
  • predykat SAME
  • predykat REGEXP_CONTAINS

Obsługiwane typy wartości w czasie wykonywania

Typ wartości w czasie wykonywania Reprezentacja/zasięg Limit
BOOLEAN true i false
INT (lub INT64) Podpisana 64-bitowa liczba całkowita
UINT (lub UINT64) 64-bitowa liczba całkowita bez znaku
DOUBLE (lub FLOAT64) IEEE-754 binary64 Brak sprawdzania tylko skończonych; akceptowane są wartości nieskończone
STRING Ciąg Unicode 65 534 bajtów (długość uint16 na dysku)
ZONED DATETIME Milisekundy od epoki Uniksa plus przesunięcie int32 UTC zakres int64 milisekund
DURATION(DAY TO SECOND) Precyzja milisekundowa
NODE uint64 raw
EDGE uint64 raw
LIST Jednorodna lista typowana 65 534 elementów (długość uint16 na dysku)
RECORD Struktura typowanych pól
PATH Naprzemienna lista węzłów i krawędzi, która zawsze zaczyna się i kończy na węzłu 65 534 elementów (długość uint16 na dysku)

Typy wartości w czasie wykonywania nie są jeszcze obsługiwane

  • INT8, INT16, oraz INT32 typy wartości (INT64 jest obsługiwane)
  • FLOAT16 oraz FLOAT32 typy wartości (FLOAT64 obsługiwane)
  • UINT8, UINT16, oraz UINT32 typy wartości (UINT64 jest obsługiwane)
  • ZONED TIME Typ wartości
  • DATE Typ wartości jako samodzielny typ. Daty wejścia odwzorowują się na Strefowany DateTime.
  • LOCAL DATETIME Typ wartości
  • LOCAL TIME Typ wartości
  • DURATION(YEAR TO MONTH) Typ wartości
  • BYTES Typ wartości. Obsługiwane jest pobieranie, ale typ nie jest zapytywalny jako przechowywana właściwość.
  • VECTOR Typ wartości

Funkcje i wyrażenia

  • PROPERTIES funkcja
  • NORMALIZEz formami NFKC i NFKD
  • DURATION_BETWEEN funkcja
  • Przeszukiwane CASE WHEN wyrażenia
  • Podzapytania skalarne
  • Łączenie wartości ścieżki
  • Konkatenacja ciągów bajtowych, TRIM, oraz funkcje długości
  • Prosta TRIM funkcja ze specyfikacją TRIM
  • Funkcja wieloznakowa TRIM
  • CARDINALITY

Aggregation

  • PERCENTILE_CONT funkcja agregacji
  • PERCENTILE_DISC funkcja agregacji
  • PRODUCT funkcja agregacji
  • STDDEV_POP funkcja agregacji
  • STDDEV_SAMP funkcja agregacji

Other

  • Przekazywanie parametrów ($param specyfikacja parametrów dynamicznych)
  • Użytkownik sesji (SESSION_USER)
  • CALL Nazwane oświadczenie procedury
  • CALL Podzapytania z jawnymi listami importu zmiennych
  • Zarządzanie katalogiem. Nazwy grafów i ograniczeń są generowane automatycznie.

Catalog

Note

Nazwy grafów i ograniczeń są generowane automatycznie i nie można ich określić w interfejsie użytkownika ani w schemacie JSON.

Obszar katalogu Limit prądu / zachowanie Zalecenie
Schemat grafu Jeden typ wykresu na katalog.
Nazwa grafu Musi być niepusty; nie ma wyraźnej maksymalnej długości. 127 postaci
Typy węzłów Maksymalnie około 2 miliardów (przestrzeń wewnątrz 32 ID). 64 kilobajtów
Typy krawędzi Maksymalnie około 2 miliardów (przestrzeń wewnątrz 32 ID). 64 kilobajtów
Unikalne etykiety węzłów Maksymalnie około 2 miliardów; duplikaty w obrębie jednego typu są odrzucane. Wyprowadzone z typów węzłów
Unikalne etykiety krawędzi Maksymalnie około 2 miliardów; duplikaty w obrębie jednego typu są odrzucane. Wywodzące się z typów krawędzi
Unikalne nazwy nieruchomości Maksymalnie około 2 miliardów; puste nazwy i duplikaty w obrębie jednego typu są odrzucane. 64K x 10
Właściwości dla typu węzła Brak wyraźnego maksimum; nazwy zduplikowanych właściwości są odrzucane. 256
Właściwości dla każdego typu krawędzi Brak wyraźnego maksimum; nazwy zduplikowanych właściwości są odrzucane. 256
Etykiety według typu węzła Brak wyraźnej maksymalnej liczby; odrzucane są zduplikowane etykiety. 64
Etykiety dla typu krawędzi Brak wyraźnej maksymalnej liczby; odrzucane są zduplikowane etykiety. 64
Kluczowe właściwości dla każdego ograniczenia Brak jawnego maksimum; nazwy właściwości muszą być niepuste. 16
Długość nazwy nieruchomości Nie jest wyraźnie egzekwowane poza niepustością. 127 postaci
Długość nazwy etykiety Nie jest wyraźnie egzekwowane poza niepustością. 127 postaci
Ograniczenia klucza krawędziowego Domyślnie wyłączone (allow_edge_key_constraints flaga). ≤ liczba typów krawędzi