Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
trueifalse) - 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.