Bieżące ograniczenia wykresu w Microsoft Fabric

Graph w Microsoft Fabric ma pewne ograniczenia funkcjonalne i wydajnościowe. 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

  • Pliki OneLake parquet i CSV są obecnie jedynymi obsługiwanymi źródłami danych.
  • Obsługa modeli semantycznych Power BI w miarę opracowywania źródeł danych.
  • Obsługa zabezpieczeń onelake na poziomie kolumn i wiersza jest w fazie projektowania.

Typy danych

Program Graph obsługuje obecnie następujące typy danych:

  • Typ logiczny (wartości to true i false)
  • Podwójne (wartości to 64-bitowe liczby zmiennoprzecinkowe)
  • Liczba całkowita (wartości to 64-bitowe liczby całkowite ze znakiem)
  • Ciąg (wartości to ciągi znaków Unicode)
  • Strefowany DateCzas (wartości to znaczniki czasu razem z przesunięciem czasowym dla strefy czasowej)
  • Czas trwania (wartości to interwały czasu trwania ISO 8601)

Obsługiwane są następujące typy OneLake:

  • Typ Integer
  • LongType
  • TypCiągu
  • PodwójnyTyp
  • Typ boolowski
  • FloatType
  • ByteType
  • ArrayType
  • Typ daty
  • TimestampNtzType
  • TypZnacznikaCzasu

Tworzenie przeglądarki Microsoft Edge

Podczas modelowania grafu nadaj różnym typom krawędzi grafu różne nazwy.

Na przykład zestaw danych mediów społecznościowych może reprezentować "użytkownik lubi komentarz" i "użytkownik lubi post". Jeśli model grafu używa oddzielnych typów węzłów do komentowania i publikowania, typ węzła użytkownika ma dwa typy krawędzi "polubień" do komentowania i publikowania. Możesz nazwać te krawędzie userLikesComment i userLikesPost.

Czas tworzenia grafu

Nawet raz w tygodniu model grafu może napotkać limit czasu, jeśli tworzenie lub aktualizacja grafu trwa dłużej niż 20 minut. Operacja jest oznaczona jako nieudana.

Jednak użytkownicy mogą ponownie zainicjować tworzenie lub aktualizowanie grafu.

Rozmiar grafu

Obecnie dostępne konfiguracje SKU mogą przetwarzać około 2 miliardów elementów grafu (węzłów i krawędzi). Aby uzyskać większe wykresy z większą liczbą elementów lub większy ładunek właściwości na element, prosimy o kontakt z zespołem produktowym.

Łączna liczba modeli grafów

Każde środowisko robocze Fabric może mieć do 10 modeli graficznych.

Wielozadaniowy interfejs użytkownika

Model grafu może zniknąć lub stać się pusty podczas przełączania się między kartami lub oknami w interfejsie użytkownika wielotaskowego Fabric. Zespół produktu aktywnie pracuje nad rozwiązaniem tego znanego problemu.

Wybór właściwości węzła

Gdy dodajesz węzeł lub typ krawędzi do modelu grafu, ręcznie wybierz kolumny z tabeli źródłowej, które zostaną dodane jako właściwości. Zarówno węzły, jak i krawędzie zaczynają bez żadnych właściwości i dodajesz tylko te, których potrzebujesz.

Wykonywanie zapytania

Liczba przeskoków w zapytaniach wielokropowych

Wykres obsługuje obecnie maksymalnie osiem przeskoków we wzorcach o zmiennej długości.

Rozmiar wyników

Wydajność agregacji może być niestabilna, gdy wyniki przekraczają rozmiar 128 MB.

System obecnie obcina odpowiedzi, które są większe niż 64 MB.

Przerwa czasowa

Limit czasu zapytań, jeśli trwa dłużej niż 20 minut.

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:

  • Poprawne kody stanu GQL
  • INSTRUKCJA FOR z indeksem
  • NASTĘPNY
  • UNION DISTINCT, instrukcja
  • Kwantyfikatory niezwiązanych wykresów
  • WSZYSTKIE NAJKRÓTSZE wyszukiwanie ścieżek
  • WYSZUKIWANIE DOWOLNEJ ścieżki
  • DOWOLNE NAJKRÓTSZE wyszukiwanie ścieżek
  • Konwersja danych
  • Podzapytania skalarne
  • PROPERTIES, funkcja
  • RANGE, funkcja
  • Ulepszone funkcje liczbowe
  • Funkcje logarytmicznych
  • Trygonometrycznych
  • Łączenie wartości ścieżki
  • Predykat testu etykiet
  • Znormalizowany predykat
  • Predykat źródłowy/docelowy
  • Typ wartości INT32
  • typ wartości FLOAT32
  • Typ wartości rekordu zamkniętego
  • Typ wartości UINT32
  • Typ wartości CZAS STREFY
  • Typ wartości DATE
  • Przekazywanie parametrów
  • Niekatalogowane krawędzie
  • Preambuły GQL
  • Predykaty nielokalnego wzorca
  • PREDYKAT JEST KIEROWANY
  • predykat REGEXP_CONTAINS
  • Specyfikacja parametru dynamicznego
  • Użytkownik sesji
  • Typ wartości BYTES
  • Typ wartości DZIESIĘTnej
  • TYP WARTOŚCI DATA/GODZINA LOKALNA
  • Typ wartości CZASU LOKALNEGO
  • CALL nazwanej instrukcji procedury
  • ORDER BY z jawną kolejnością NULL
  • Tabelaryczna instrukcja FOR
  • Z WYJĄTKIEM INSTRUKCJI ALL
  • Z wyjątkiem instrukcji DISTINCT
  • INTERSECT ALL, instrukcja
  • INTERSECT DISTINCT, instrukcja
  • INSTRUKCJA W PRZECIWNYM RAZIE
  • Symbole wieloznaczne
  • Złagodzona spójność topologiczna
  • funkcja agregacji PERCENTILE_CONT
  • funkcja agregacji PERCENTILE_DISC
  • Funkcja agregacji PRODUCT
  • funkcja agregacji STDDEV_POP
  • funkcja agregowania STDDEV_SAMP
  • Łączenie ciągów bajtów
  • Funkcja TRIM ciągu bajtowego
  • Prosta funkcja TRIM ze specyfikacją TRIM
  • Multicharacter TRIM, funkcja
  • Funkcja długości ciągu bajtowego
  • MOC
  • predykat ALL_DIFFERENT
  • IS DISTINCT predykat
  • Ten sam predykat

Katalog

Note

Nazwy grafów i ograniczeń są generowane automatycznie w GraphBackend i nie mogą być określone w interfejsie użytkownika ani w schemacie JSON.

Obszar katalogu Limit prądu / zachowanie Status egzekwowania Zalecenie
Baza katalogu ID elementów katalogowych to podpisane int32 wrappery, gdzie 0 jest nieprawidłowe, więc każda rodzina ID ma co najwyżej std::numeric_limits<int32_t>::max() - 1 dodatnie, niezerowe identyfikatory (2 miliardy). Limit wdrożenia, a nie zalecana kwota GA
Schematy grafów Jeden typ grafu na katalog; Komentarze ID katalogu zakładają, że katalog zawiera tylko jeden typ wykresu. Założenie projektowe; nie ujawniona jako kwota wieloschematowa
Definicja grafu – serializowany rozmiar Brak wyraźnego limitu rozmiaru bajtów na GraphProto; zawiera powtarzające się typy węzłów, typy krawędzi, etykiety, nazwy właściwości i ograniczenia. Nie egzekwowane poniżej protobuf/gRPC/pamięci; Kontrole liczby obiektów katalogowych są stosowane po konstrukcji grafu
Nazwa grafu Musi być niepusty; brak wyraźnej maksymalnej długości bajtu ani listy znaków. Egzekwowane jest tylko niepuste 128 znaków
Typy węzłów Maksymalnie 2 miliardy typów węzłów. Egzekwowane przez CatalogGraphType::Validate przez dodatnią, niezerową przestrzeń int32 ID 64k
Typy krawędzi Maksymalnie 2 miliardy typu krawędzi. Egzekwowane przez CatalogGraphType::Validate przez dodatnią, niezerową przestrzeń int32 ID 64k
Unikalne etykiety węzłów we wszystkich typach węzłów Maksymalnie 2 miliardy unikalnych etykiet węzłów. Egzekwowane przez CatalogGraphType::Validate; duplikaty etykiet w obrębie jednego typu są odrzucane Pochodne
Unikalne etykiety krawędzi we wszystkich typach krawędzi Maksymalnie 2 miliardy unikalnych etykiet krawędziowych. Egzekwowane przez CatalogGraphType::Validate; duplikaty etykiet w obrębie jednego typu są odrzucane Pochodne
Unikalne nazwy właściwości we wszystkich typach węzłów i krawędzi Maksymalnie 2 miliardy unikalnych nazw nieruchomości. Egzekwowane przez CatalogGraphType::Validate; nazwy właściwości nie mogą być puste, a duplikaty w obrębie jednego typu są odrzucane 64k * 10
Definicje ograniczeń węzłów Maksymalnie 2 miliardy definicji ograniczeń klucza węzłów. Egzekwowane przez CatalogGraphType::Validate przez dodatnią, niezerową przestrzeń int32 ID <= typy węzłów
Definicje ograniczeń krawędziowych Maksymalnie 2 miliardy definicji kluczy krawędziowych, ale ograniczenia klucza krawędziowego są domyślnie wyłączone, chyba że allow_edge_key_constraints jest prawdziwe. Liczba egzekwowana, jeśli obecna; Bramka cech domyślnie odrzuca ograniczenia krawędzi <= typy krawędzi
Nazwy własności, postacie / długość Nie jest to wyraźnie egzekwowane poza niepustymi nazwami własności i gramatyką parsera; Nie ma katalogu maksymalnej długości bajtu ani listy znaków. 128 znaków
Postacie wytwórni / długość Nie wymuszane jawnie poza gramatyką parsera i niepustymi etykietami w ograniczeniach; Nie ma katalogu maksymalnej długości bajtu ani listy znaków. 128 znaków
Znaki nazwy ograniczeń / długość Nazwy ograniczeń muszą być niepuste; brak wyraźnej maksymalnej długości bajtu ani listy znaków. Walidacja ograniczeń duplikacyjnych/dopasowanych jest osobna 128 znaków
Właściwości dla typu węzła Brak wyraźnej maksymalnej liczby właściwości dla typu węzła; Podwójne nazwy nieruchomości są odrzucane. Tylko walidacja poprawności 256
Właściwości dla każdego typu krawędzi Brak wyraźnej maksymalnej liczby właściwości typu krawędzi; Podwójne nazwy nieruchomości są odrzucane. Tylko walidacja poprawności 256
Etykiety według typu węzła Brak wyraźnej maksymalnej liczby etykiet na typie węzła; Podwójne etykiety są odrzucane. Tylko walidacja poprawności 64
Etykiety dla typu krawędzi Brak wyraźnej maksymalnej liczby etykiet na typie krawędzi; odrzucane są duplikaty etykiet; Etykiety dodane na krawędzi są odrzucane. Tylko walidacja poprawności 64
Kluczowe właściwości dla każdego ograniczenia Brak wyraźnej maksymalnej liczby cech klucza w ograniczeniach węzła lub krawędzi; nazwy poszczególnych nieruchomości nie mogą być puste. Tylko walidacja poprawności 16

Wartości wykonawcze

Typ wartości w czasie wykonywania Reprezentacja / zasięg Limit na poziomie wartości jawnej? Zalecane
BOOL bool; wartości prawda/fałsz Tak, stała domena
INT64 znakowana 64-bitowa liczba całkowita Tak, o stałej szerokości
UINT64 Całkowita liczba nieznana 64-bitowa Tak, o stałej szerokości
PODWÓJNY C++/protobuf double / Arrow DoubleScalar (IEEE-754 binary64); wartości nieskończone nie są odrzucane przez Value::FromProto Brak sprawdzania tylko skończonych wartości
DECIMAL128 Arrow Decimal128Scalar; validacja w czasie działania pozwala na precyzję 1..38 i skalę 0..precyzji; do 38 cyfr dziesiętnych Tak, dla sprawdzonej konstrukcji/z proto
STRING std::string; ValueProto.string_value Brak limitu wartości 4 MB
BAJTÓW std::string używany jako pojemnik bajtów; ValueProto.bytes_value Brak limitu wartości Limit strun
VERTEX_ID uint64 owinięty przez VertexId; generowane ID używają 48-bitowego lokalnego ID odłamku i rezerwują 0 jako nieprawidłowe Raw proto akceptuje dowolne uint64; Wygenerowane ID są ograniczone
EDGE_ID uint64 owinięty przez EdgeId; generowane ID używają 48-bitowego lokalnego ID odłamku i rezerwują 0 jako nieprawidłowe Raw proto akceptuje dowolne uint64; Wygenerowane ID są ograniczone
ZONED_DATE_TIME absl::Time Plus Timezone; serializowane jako int64 milisekundy od epoki Unixa plus int32 UTC offset seconds. Zakres milisekund to [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807], udokumentowany jako chwile UTC od -292275055-05-16T16:47:04.192+00:00 do 292278994-08-17T07:12:55.807+00:00. Udokumentowany przedział czasowy; Offset to int32 i nie jest sprawdzany w zakresie Value::FromProto
CZAS TRWANIA absl::Duration; Serializowane jako int64 milisekundy. Seryjizowane min/max to -9 223 372 036 854 775 808 ms do 9 223 372 036 854 775 807 ms (około +/-292 277 024,6 lat). Parser ISO jest bardziej rygorystyczny: +/-9 223 372 035 sekund (około +/-292,277 lat). Ścieżka proto-uznaje pełne pole int64 milisekund; Parser ma węższy limit jawny
NULL / typowany null std::monostate lub typowany otoczenie null
Listy maszynopisane std::vector<std::optional<T>>; LIST_NULL przechowuje ; size_tLIST_ANY Sklepy std::vector<Value> Brak domyślnego limitu wartości
Listy zagnieżdżone Ogólne listy zagnieżdżone nie są wspierane w protokontrakcie; Runtime ma specjalne zagnieżdżone LIST_INT64 obsługiwanie Brak domyślnego limitu głębokości/długości
ŚCIEŻKA Naprzemienne identyfikatory wierzchołków/krawędzi/wierzchołków uint64 w wektorze; Prawidłowy kształt ścieżki ma nieparzystą liczbę elementów Brak limitu długości ścieżki
RECORD absl::flat_hash_map<std::string, Value> / Mapa protobufów Brak limitu liczby pól, długości klucza ani głębokości zagnieżdżenia
JAKIEKOLWIEK Value::DataType() nie oczekuje się zwrotu TYPE_ANY; wartości dynamiczne są przenoszone jako konkretne wartości, zwłaszcza wewnątrz LIST_ANY lub Arrow Dowolna pamięć rozszerzeniowa Brak limitu rozmiaru/głębokości

Inne ograniczenia

  • Identyfikatory nie mogą zaczynać się od podkreślenia.
  • Literale całkowite są domyślnie traktowane jako numery całkowite ze znakiem.
  • Zwrot DOWOLNYCH i typów rekordów nie jest obsługiwany. Tymczasowym rozwiązaniem jest ich jsonizacja przez TO_JSON_STRING.
  • Maksymalna długość własności ciągu to 65535. Dane powyżej 64 KiB są niedostępne dla deserializatora; pełny bufor jest nadal zapisany w RocksDB.
  • Maksymalna liczba elementów w List<T> nieruchomości wynosi 65535. Lista INT64 z 70 000 elementami deserializuje się jako 4 464 elementy.
  • Maksymalny rozmiar odpowiedzi zapytania w bajtach wynosi 64 MB.