Aktuelle begrænsninger af grafen i Microsoft Fabric

Graf i Microsoft Fabric har visse funktionelle og ydelsesmæssige begrænsninger. Denne artikel fremhæver nogle vigtige begrænsninger, men er ikke en udtømmende liste. Vend regelmæssigt tilbage for at få opdateringer.

Du kan finde hjælp til almindelige problemer under Fejlfinding af graf.

Oprettelse af grafmodeller

Datakilder

  • OneLake-parquet- og CSV-filer er de eneste datakilder, der understøttes i øjeblikket.
  • Understøttelse af Power BI semantiske modeller, da datakilder er under udvikling.
  • Understøttelse af onelake-sikkerhed på kolonne- og rækkeniveau er under udvikling.

Datatyper

Graph understøtter i øjeblikket følgende datatyper:

  • Boolesk (værdier er true og false)
  • Dobbelt (værdier er 64-bit tal med flydende tal)
  • Heltal (værdier er 64-bit signerede heltal)
  • Streng (værdier er Unicode-tegnstrenge)
  • Zonet DatoTid (værdier er tidsstempler sammen med en tidsforskydning for tidszonen)
  • Duration (værdier er ISO 8601-varighedsintervaller)

Følgende OneLake-typer understøttes:

  • IntegerType
  • LongType
  • StringType
  • Dobbelttype
  • Boolesk type
  • FloatType
  • ByteType
  • Matrixtype
  • Datotype
  • TidsstempelNtzType
  • Tidsstempeltype

Edge-oprettelse

Under grafmodellering skal du give forskellige grafkanttyper forskellige navne.

Et datasæt på sociale medier kan f.eks. repræsentere "brugeren synes godt om kommentar" og "brugeren synes godt om opslag". Hvis din grafmodel bruger separate nodetyper til kommentarer og indlæg, har brugernodetypen to typer "synes godt om"-kanter til kommentar og indlæg. Du kan navngive disse kanter userLikesComment og userLikesPost.

Oprettelsestidspunkt for graf

Der kan opstå timeout for en grafmodel op til en gang om ugen, hvis oprettelsen eller opdateringen af grafen tager mere end 20 minutter. Handlingen er markeret som mislykket.

Brugerne kan dog geninditiere oprettelse eller opdatering af grafer.

Det samlede antal grafforekomster

Hvert Fabric arbejdsområde kan have op til 10 grafforekomster.

Grafens størrelse

At lave grafer med mere end 1 milliard noder og kanter kan resultere i ustabil ydeevne.

Brugergrænsefladen til flere opgaver

Grafmodellen kan forsvinde eller blive tom, når du skifter mellem faner eller vinduer i brugergrænsefladen for Fabric. Produktteamet arbejder aktivt på at løse dette kendte problem.

Valg af nodeegenskab

Når du føjer en nodetype til din grafmodel, tilføjes alle kolonner fra kildetabellen som standard som egenskaber. Du kan fjerne egenskaber ved at vælge skraldespandsikonet. Edge-typer fungerer anderledes – de starter uden egenskaber, og du tilføjer kun dem, du har brug for. Valg af en brugerdefineret visningsmærkat (f.eks. visning af et navn i stedet for et id) understøttes endnu ikke.

Forespørge

Antal hop i forespørgsler med flere indstillinger

Grafen understøtter i øjeblikket op til otte hop på mønstre med variabel længde.

Størrelse af resultater

Akkumuleringsydeevnen kan være ustabil, når resultaterne overstiger 128 MB.

Systemet afkorter i øjeblikket svar, der er større end 64 MB.

Timeout

Forespørgsler får timeout, hvis de tager mere end 20 minutter.

Dataeksport og -visualisering

  • Eksport af grafforespørgselsresultater eller grafstrukturer understøttes ikke i øjeblikket.
  • Oprettelse af forbindelse Power BI direkte til en graf til visualiseringsscenarier understøttes ikke i øjeblikket.

GQL-overensstemmelse

Du kan finde en detaljeret tilknytning af understøttede GQL-funktioner i forhold til ISO/IEC 39075:2024-standarden, herunder minimumoverensstemmelse, valgfrie funktioner efter gruppe og funktioner, der endnu ikke understøttes, under GQL-standardoverensstemmelse.

Overensstemmelse med GQL-standarder er stadig i gang for:

  • Ret GQL-statuskoder
  • FOR-sætning med indeks
  • NÆSTE
  • UNION DISTINCT-sætning
  • Ubundet grafmønster-kvantifier
  • SØGNING EFTER KORTESTE STI
  • VILKÅRLIG stisøgning
  • ENHVER SØGNING EFTER KORTESTE sti
  • Datakonvertering
  • Skalarunderforespørgsler
  • Funktionen PROPERTIES
  • Funktionen RANGE
  • Forbedrede numeriske funktioner
  • Logaritmiske funktioner
  • Trigonometriske funktioner
  • Sammenkædning af stiværdi
  • Prædikat for etikettest
  • Normaliseret prædikat
  • Prædikat for kilde/destination
  • INT32-værditype
  • FLOAT32 værditype
  • Værditype for lukket POST
  • UINT32-værditype
  • VÆRDItype FOR ZONED-KLOKKESLÆT
  • DATOværditype
  • Parameteroverførsel
  • Ikke-dirigerede kanter
  • GQL-præambel
  • Prædikater for ikke-lokalt mønster
  • PRÆDIKAT FOR IS DIRECTED
  • prædikat REGEXP_CONTAINS
  • Specifikation af dynamiske parametre
  • Sessionsbruger
  • BYTES-værditype
  • DECIMALværditype
  • LOKAL DATETIME-værditype
  • VÆRDItype FOR LOKAL TID
  • KALD navngivet proceduresætning
  • ORDER BY med eksplicit NULL-sortering
  • FOR-sætning i tabelformat
  • EXCEPT ALL-sætning
  • EXCEPT DISTINCT-sætning
  • INTERSECT ALL-sætning
  • INTERSECT DISTINCT-sætning
  • OTHERWISE-sætning
  • Jokertegn
  • Afslappet topologisk konsistens
  • PERCENTILE_CONT aggregeringsfunktion
  • PERCENTILE_DISC aggregeringsfunktion
  • Aggregeringsfunktion FOR PRODUCT
  • STDDEV_POP aggregeringsfunktion
  • STDDEV_SAMP aggregeringsfunktion
  • Sammenkædning af bytestreng
  • Funktionen TRIM for bytestreng
  • Enkel TRIM-funktion med TRIM-specifikation
  • Funktionen TRIM med flere tegn
  • Funktionen Bytestrenglængde
  • KARDINALITET
  • prædikat ALL_DIFFERENT
  • ER DISTINKT prædikat
  • SAMME prædikat

Katalog

Bemærkning

Grafnavne og constraint-navne genereres automatisk i GraphBackend og kan ikke specificeres i UI'en eller i JSON-skemaet.

Katalogområde Strømgrænse / adfærd Håndhævelsesstatus Anbefaling
Katalog-ID-basis Katalogelement-ID'er er signerede int32-wrappere, hvor 0 er ugyldig, så hver ID-familie har højst std::numeric_limits<int32_t>::max() - 1 positive ikke-nul ID'er (2 milliarder). Implementeringsloft, ikke en anbefalet GA-kvote
Grafskemaer Én graftype pr. katalog; katalog-ID-kommentarer antager, at kataloget kun indeholder én graftype. Designantagelse; ikke eksponeret som en multi-skema kvote
Grafdefinition af serialiseret størrelse Ingen eksplicit bytestørrelsesgrænse på GraphProto; den indeholder gentagne nodetyper, kanttyper, etiketter, egenskabsnavne og begrænsninger. Ikke håndhævet under protobuf/gRPC/hukommelse; Katalogets objekttællingskontrol gælder efter grafkonstruktion
Grafens navn Skal være ikke-tom; Ingen eksplicit liste over maksimale byte-længde eller tilladte tegn. Kun ikke-tomme håndhæves 128 karakterer
Nodetyper Maks 2 milliarder nodetyper. Håndhævet via CatalogGraphType::Validate positivt ikke-nul int32 ID-rum 64k
Kanttyper Maks 2 milliarder kanttyper. Håndhævet via CatalogGraphType::Validate positivt ikke-nul int32 ID-rum 64k
Unikke nodeetiketter på tværs af alle nodetyper Maks 2 milliarder unikke node-labels. Håndhævet af CatalogGraphType::Validate; duplikerede etiketter inden for én type afvises Afledt
Unikke kantetiketter på tværs af alle kanttyper Maks 2 milliarder unikke kantetiketter. Håndhævet af CatalogGraphType::Validate; duplikerede etiketter inden for én type afvises Afledt
Unikke egenskabsnavne på tværs af alle node- og kanttyper Maks 2 milliarder unikke ejendomsnavne. Håndhævet af CatalogGraphType::Validate; egenskabsnavne kan ikke være tomme, og dubletter inden for én type afvises 64k * 10
Nodebegrænsningsdefinitioner Maks definitioner af 2 milliarder nodenøglebegrænsninger. Håndhævet via CatalogGraphType::Validate positivt ikke-nul int32 ID-rum <= nodetyper
Definitioner af kantbegrænsninger Maks 2 milliarder kantnøglebegrænsninger, men kantnøglebegrænsninger er deaktiveret som standard, medmindre allow_edge_key_constraints det er sandt. Optælling håndhævet, hvis det er til stede; Feature Gate afviser som standard kantbegrænsninger <= kanttyper
Ejendomsnavn tegn / længde Ikke eksplicit håndhævet ud over ikke-tomme egenskabsnavne og parsergrammatik; Ingen katalog med maksimal bytelængde eller tilladte tegn liste. 128 karakterer
Etiket-tegn / længde Ikke eksplicit håndhævet ud over parsergrammatik og ikke-tomme etiketter i begrænsninger; Ingen katalog med maksimal bytelængde eller tilladte tegn liste. 128 karakterer
Begrænsningsnavnekarakterer / længde Begrænsningsnavne skal være ikke-tomme; Ingen eksplicit liste over maksimale byte-længde eller tilladte tegn. Validering af duplikat-/matchningsbegrænsning er separat 128 karakterer
Egenskaber pr. nodetype Ingen eksplicit maksimal mængde egenskaber på en nodetype; Duplikerede ejendomsnavne afvises. Kun korrekthedsvalidering 256
Egenskaber pr. kanttype Ingen eksplicit maksimal mængde egenskaber på en kanttype; Duplikerede ejendomsnavne afvises. Kun korrekthedsvalidering 256
Labels pr. nodetype Ingen eksplicit maksimal mængde etiketter på en nodetype; Duplikerede etiketter afvises. Kun korrekthedsvalidering 64
Etiketter pr. kanttype Ingen eksplicit maksimal mængde etiketter på en kanttype; duplikatetiketter afvises; Kanttilføjede etiketter afvises. Kun korrekthedsvalidering 64
Nøgleegenskaber pr. begrænsning Ingen eksplicit maksimal mængde nøgleegenskaber i node- eller kantnøglebegrænsninger; Individuelle ejendomsnavne kan ikke være tomme. Kun korrekthedsvalidering 16

Runtime-værdier

Runtime-værditype Backing-repræsentation / rækkevidde Eksplicit værdiniveau-loft? Anbefalet
BOOL bool; værdier sand/falsk Ja, fast domæne
INT64 signeret 64-bit heltal Ja, fast bredde
UINT64 usigneret 64-bit heltal Ja, fast bredde
DOBBELT C++/protobuf dobbelt / Arrow DoubleScalar (IEEE-754 binary64); ikke-endelige værdier afvises ikke af Value::FromProto Ingen kun finite-kontrol
DECIMAL128 Arrow Decimal128Scalar; kørselsvalidering tillader præcision 1..38 og skalerer 0..præcision; op til 38 decimalercifre Ja, for tjekket konstruktion/fra proto-konstruktion
STRING std::string; ValueProto.string_value No Value-loft 4 MB
BYTES std::string brugt som bytecontainer; ValueProto.bytes_value No Value-loft Strenggrænse
VERTEX_ID uint64 indpakket af VertexId; genererede ID'er bruger 48-bit shard-lokal ID og reserverer 0 som ugyldig Rå protoproto-teknologi accepterer enhver uint64; genererede ID'er er begrænsede
EDGE_ID uint64 indpakket af EdgeId; genererede ID'er bruger 48-bit shard-lokal ID og reserverer 0 som ugyldig Rå protoproto-teknologi accepterer enhver uint64; genererede ID'er er begrænsede
ZONED_DATE_TIME absl::Time plus tidszone; serialiseret som int64 millisekunder siden Unix-epoken plus int32 UTC-offsetsekunder. Millisekundområdet er [-9.223,372,036,854,775,808, 9,223,372,036,854,775,807], dokumenteret som UTC-øjeblikke fra -292275055-05-16T16:47:04.192+00:00 til 292278994-08-17T07:12:55.807+00:00. Tidsinterval dokumenteret; Offset er en INT32 og er ikke tjekket ind i rækkevidde Value::FromProto
VARIGHED absl::Duration; Serialiseret som int64 millisekunder. Serialiserede min/max er -9.223.372.036.854.775.808 ms til 9.223.372.036.854.775.807 ms (ca. +/-292.277.024,6 år). ISO-parseren er strengere: +/-9.223.372.035 sekunder (ca. +/-292,277 år). Proto-stien accepterer det fulde int64 millisekunds felt; Parser har en smallere eksplicit grænse
NULL / typet null std::monostate eller typed-null wrapper
Maskinskrevne lister std::vector<std::optional<T>>; LIST_NULL gemmer en size_t; LIST_ANY Butikker std::vector<Value> Ingen standard værdigrænse
Indlejrede lister Generelle indlejrede lister understøttes ikke i proto-kontrakten; Runtime har særlig indlejret LIST_INT64 håndtering Ingen standard dybde-/længdekvote
STI Alternerende hjørne/kant/hjørne uint64 ID'er i en vektor; Gyldig stiform har ulige elementantal Ingen sti-længde kvote
REKORD absl::flat_hash_map<std::string, Value> / Protobuf kort Ingen markantælling, nøglelængde eller rededybdekvote
ANY Value::DataType() forventes ikke at returnere TYPE_ANY; dynamiske værdier bæres som konkrete værdier, især inde i LIST_ANY eller Arrow Enhver udvidelseslagring Ingen størrelse/dybde-kvote

Andre begrænsninger

  • Identifikatorer kan ikke starte med underscore.
  • Heltalsliteraler behandles som standard signerede heltal.
  • Returnering af ANY og Record-typer understøttes ikke. Den midlertidige løsning er at jsonisere dem via TO_JSON_STRING.
  • Maksimal strengeegenskabslængde er 65535. Data over 64 KiB er utilgængelige for deserializeren; den fulde buffer skrives stadig til RocksDB.
  • Det maksimale antal elementer i List<T> ejendommen er 65535. En INT64-LISTE med 70.000 elementer kan deserialiseres som 4.464 elementer.
  • Maksimal svarstørrelse i bytes er 64 MB.