Limitations actuelles du graphique dans Microsoft Fabric

Graph dans Microsoft Fabric présente certaines limitations fonctionnelles. Cet article met en évidence certaines limitations clés, mais n’est pas une liste exhaustive. Vérifiez régulièrement les mises à jour.

Pour obtenir de l’aide sur les problèmes courants, consultez le graphique de résolution des problèmes.

Création de modèles de graphe

Sources de données

Les bases de données OneLake et Mirrored Database sont les sources de données prises en charge pour les graphes.

Types de données

Les modèles de graphes prennent en charge les types de valeurs de propriété suivants.

Type de valeur GQL Description
BOOLEAN Les valeurs sont true et false.
INT (ou INT64) Les valeurs sont des entiers signés 64 bits.
DOUBLE (ou FLOAT64) Les valeurs sont des nombres IEEE-754 à virgule flottante de 64 bits.
FLOAT (ou FLOAT32) Les valeurs sont des nombres à virgule flottante de 32 bits.
STRING Les valeurs sont des chaînes de caractères Unicode encodées en UTF-8. La taille maximale de la propriété est de 65 535 octets.
ZONED DATETIME Les valeurs sont des horodatages accompagnés d’un décalage de fuseau horaire, avec une précision milliseconde.

Les types de colonnes OneLake et Delta Lake suivants sont pris en charge pour l’ingestion dans les graphes.

Type OneLake Correspondance au type de valeur de propriété GQL
BooleanType BOOLEAN
ByteType INT (ou INT64)
IntegerType INT (ou INT64)
LongType INT (ou INT64)
FloatType DOUBLE (ou FLOAT64)
DoubleType DOUBLE (ou FLOAT64)
StringType STRING
DateType ZONED DATETIME
TimestampType ZONED DATETIME
TimestampNtzType ZONED DATETIME

Note

Les types complexes ou imbriqués de Delta Lake (MapType et StructType) ne sont pas pris en charge. Vous pouvez analyser les colonnes de chaînes encodées en JSON au moment de la requête en utilisant PARSE_JSON_STRING.

Traitement des graphes et échelle

Les opérations de chargement et de rafraîchissement de graphes peuvent nécessiter un temps de traitement prolongé selon la taille du graphe, le nombre d’éléments du graphe (nœuds et arêtes), et la taille des charges utiles de propriété associées à ces éléments. Les grands graphiques peuvent prendre plusieurs heures à être traités. Si une opération de chargement ou de rafraîchissement de graphe n’a pas été terminée après 24 heures, soumettez une demande de support pour une enquête approfondie.

Les capacités actuelles de traitement des graphes supportent des graphes contenant jusqu’à environ 2 milliards d’éléments de graphes (nœuds et arêtes). La capacité effective peut varier en fonction de la structure du graphe et de la taille de la charge utile de la propriété. Si votre charge de travail devrait dépasser ces limites, contactez le Support Microsoft pour obtenir des conseils.

Colonnes de partition

Les colonnes de partition Delta Lake ont un support limité en tant que propriétés de graphe :

  • Les colonnes de partition utilisées comme seule clé primaire sont toujours rejetées.
  • Les colonnes de partition générées ne sont pas prises en charge.
  • Les types de colonnes de partition complexes et décimales (Decimal, Binary, Array, Map, et Struct) sont supprimés avec un avertissement.

Modifications de schéma

Les changements de schéma déclenchent un rechargement du graphe.

Querying

Chemins à longueur variable

Le constructeur de chemins Explore UI supporte jusqu’à huit sauts pour des motifs de longueur variable. Cette limite d’interface utilisateur ne s’applique pas aux requêtes GQL saisies dans l’éditeur de code.

Graph prend en charge les ALL préfixes de recherche de chemin et (et ANY SHORTEST path search). ALL SHORTEST et ANY ne sont pas pris en charge.

Le tableau suivant résume le support GQL à longueur variable :

Recherche de chemin et mode de chemin Quantificateur fixe ou borné Quantificateur non borné
ALL WALK (valeur par défaut) Supported Non supporté car les éléments répétés peuvent produire un nombre infini de chemins.
ALL TRAIL, ALL SIMPLE ou ALL ACYCLIC Supported C’est supporté, mais le nombre de chemins peut rester important.
ANY SHORTEST WALK Supported Pris en charge pour une accessibilité simple au point d’accès avec un bord quantifié anonyme entre deux nœuds. Un chemin délimité par cette forme non bornée ne peut être utilisé que par PATH_LENGTH(path) et, parallèlement, path IS NULL; le chemin complet n’est pas matérialisé. Voir Motifs de longueur variable non bornés.
ANY SHORTEST TRAIL, ANY SHORTEST SIMPLE ou ANY SHORTEST ACYCLIC Supported Soutenu.

Les quantificateurs fixes et bornés sont {n}, {m,n}, et {,n}. Les quantificateurs non bornés sont {m,}, *, et +. Pour plus d’informations, voir les motifs de graphes GQL.

Placement des prédicats de chemin

GQL distingue les prédicats qui contraignent les chemins éligibles des prédicats qui filtrent les chemins après qu’un préfixe de recherche de chemin les ait sélectionnés. Pour certaines ANY SHORTEST formes de requête, Graph peut actuellement appliquer une condition au niveau MATCH ... WHERE de l’instruction avant la sélection du chemin.

Pour rendre explicite l’étape prévue, placez les prédicats d’éligibilité en ligne dans les motifs de nœud ou d’arête. Pour le filtrage post-sélection, utilisez une instruction séparée FILTER après MATCH. Pour des exemples, voir Place les prédicats avant ou après la sélection du chemin.

Filtres à prédicats listés

Les filtres de prédicat par liste ne prennent pas actuellement en charge :

  • EXISTS sous-requêtes.
  • Agréger les fonctions sur l’élément localement lié. L’agrégation horizontale sur une liste de groupes entourant est prise en charge.

Pour la syntaxe prise en charge et la sémantique des résultats, voir Lister les fonctions de prédicat.

Taille des résultats

Le graphe tronque une réponse à la requête lorsque sa représentation binaire interne dépasse 64 Mo. Graph renvoie les lignes qui correspondent et rapporte un avertissement supplémentaire avec un code 01000 d’état public et un GQLSTATUS 01M11canonique . Les résultats intermédiaires sont plafonnés à 128 Mo.

La réponse n’inclut pas de jeton de continuation pour les lignes omises par troncature. Affinez le résultat avec des filtres, des projections spécifiques, ou LIMIT, puis relancez la requête.

Délai d'expiration

L’exécution de l’API de requête a un délai total de 20 minutes, y compris les requêtes de continuation. Si l’exécution dépasse cette limite, l’API renvoie HTTP 408 avec un code QueryTimeoutd’erreur .

Subqueries

CALL, OPTIONAL CALL, et les sous-requêtes procédures-formes EXISTS sont prises en charge. Les sous-requêtes en ligne CALL peuvent être imbriquées et importent implicitement des variables à partir des péripéties entourantes. Les appels de procédure nommés, les listes d’importation de variables explicites telles que CALL (p) { ... }, uniquement EXISTSle motif graphique, et les sous-requêtes scalaires (VALUE { ... }) ne sont pas pris en charge.

Fonctions d’agrégation

Les fonctions d’agrégation suivantes sont prises en charge :

  • COUNT, COUNT(*), SUM, AVG, MINet MAX
  • COLLECT_LIST, COLLECT_ONE et COLLECT_ELEMENTS
  • DISTINCT Variantes de toutes les fonctions précédentes
  • Variantes horizontales (rangées par lignes, sur des variables/listes de groupe) de tout ce qui précède

Les fonctions d’agrégation suivantes ne sont pas encore prises en charge :

  • PERCENTILE_CONT et PERCENTILE_DISC
  • STDDEV_POP et STDDEV_SAMP
  • PRODUCT

Définir des opérations

UNION ALL et UNION DISTINCT sont pris en charge. INTERSECT, EXCEPT, et OTHERWISE ne sont pas encore pris en charge.

Déclarations et clauses GQL prises en charge

Les instructions et clauses GQL de base suivantes sont prises en charge :

  • MATCH et OPTIONAL MATCH
  • WHERE Filtres
  • LET Liaisons de variables
  • FOR ... INdéroulement de liste avec indexation optionnelle ORDINALITY
  • NEXT, y compris les étapes de requête qui contiennent UNION, UNION DISTINCT, ou UNION ALL
  • RETURN et RETURN DISTINCT
  • GROUP BY
  • ORDER BY avec NULLS FIRST ou NULLS LAST
  • LIMIT et OFFSET
  • UNION ALL et UNION DISTINCT
  • CALL, OPTIONAL CALL et EXISTS
  • CAST avec une matrice de conversion de type large
  • Fonctions scalaires et agrégées prises en charge listées dans les expressions, prédicats et fonctions GQL

Opérations DML et DDL

Les opérations du Langage de Manipulation de Données (DML) telles que INSERT, UPDATE, et DELETE ne sont pas prises en charge via GQL. Les opérations de Langage de Définition de Données (DDL) pour la mutation de schéma ne sont pas prises en charge.

Exportation et visualisation des données

L’exportation des résultats des requêtes de graphe ou des structures de graphe n’est actuellement pas prise en charge.

La connexion Power BI directement à un graphique pour les scénarios de visualisation n'est actuellement pas prise en charge.

Conformité GQL

Pour obtenir un mappage détaillé des fonctionnalités GQL prises en charge par rapport à la norme ISO/IEC 39075:2024, y compris la conformité minimale, les fonctionnalités facultatives par groupe et les fonctionnalités non encore prises en charge, consultez la conformité de la norme GQL.

La conformité aux normes GQL est encore en cours pour les fonctionnalités suivantes.

Contrôle des opérations de flux et d’ensemble

  • Déclarations EXCEPT ALL et EXCEPT DISTINCT
  • Déclarations INTERSECT ALL et INTERSECT DISTINCT
  • Instruction OTHERWISE

Recherche de chemin et correspondance de motifs

  • ALL SHORTEST Recherche de chemin (non prise en charge)
  • ANY Recherche de chemin
  • Prédicats de modèle non local
  • Cohérence topologique détendue
  • Caractères génériques

Predicates

  • Prédicat du test d’étiquette (IS LABELED)
  • Prédicat IS DIRECTED
  • Prédicat normalisé
  • Prédicat source/destination
  • Prédicat ALL_DIFFERENT
  • Prédicat IS DISTINCT
  • Prédicat SAME
  • Prédicat REGEXP_CONTAINS

Types de valeur d’exécution pris en charge

Type de valeur d’exécution Représentation/étendue Limit
BOOLEAN true et false
INT (ou INT64) Entier 64 bits signé
UINT (ou UINT64) Entier 64 bits non signé
DOUBLE (ou FLOAT64) IEEE-754 binary64 Aucun contrôle fini-seulement ; les valeurs non finies sont acceptées
STRING Chaîne Unicode 65 534 octets (longueur uint16 sur disque)
ZONED DATETIME Millisecondes depuis l’époque Unix plus décalage int32 UTC Plage int64 millisecondes
DURATION(DAY TO SECOND) Précision en millisecondes
NODE uint64 raw
EDGE uint64 raw
LIST Liste homogène typée 65 534 éléments (uint16 longueur sur disque)
RECORD Structure des champs typés
PATH Liste alternée de nœuds et d’arêtes qui commence et se termine toujours par un nœud 65 534 éléments (uint16 longueur sur disque)

Types de valeur d’exécution non encore pris en charge

  • INT8, INT16, et INT32 types de valeur (INT64 est pris en charge)
  • FLOAT16 et FLOAT32 types de valeurs (FLOAT64 est pris en charge)
  • UINT8, UINT16, et UINT32 types de valeur (UINT64 est pris en charge)
  • ZONED TIME Type de valeur
  • DATE type de valeur en tant que type autonome. Les dates ingérées correspondent à la date et heure zonée.
  • LOCAL DATETIME Type de valeur
  • LOCAL TIME Type de valeur
  • DURATION(YEAR TO MONTH) Type de valeur
  • BYTES type de valeur. L’ingestion est prise en charge, mais le type n’est pas interrogable en tant que propriété stockée.
  • VECTOR Type de valeur

Fonctions et expressions

  • PROPERTIES Fonction
  • NORMALIZEavec les NFKC formes et NFKD
  • DURATION_BETWEEN Fonction
  • Expressions recherchées CASE WHEN
  • Sous-requêtes scalaires
  • Concaténation des valeurs de chemin d’accès
  • Concaténation, TRIM, et fonctions de longueur
  • Fonction simple TRIM avec une TRIM spécification
  • Fonction multicaractère TRIM
  • CARDINALITY

Aggregation

  • PERCENTILE_CONT Fonction d’agrégation
  • PERCENTILE_DISC Fonction d’agrégation
  • PRODUCT Fonction d’agrégation
  • STDDEV_POP Fonction d’agrégation
  • STDDEV_SAMP Fonction d’agrégation

Other

  • Passage des paramètres ($param spécification dynamique des paramètres)
  • Utilisateur de session (SESSION_USER)
  • CALL Instruction de procédure nommée
  • CALL sous-requêtes avec des listes explicites d’importation de variables
  • Gestion du catalogue. Les noms des graphes et contraintes sont automatiquement générés.

Catalog

Note

Les noms de graphes et de contraintes sont générés automatiquement et ne peuvent pas être spécifiés dans l’interface utilisateur ni dans le schéma JSON.

Zone de catalogue Limite / comportement actuel Recommendation
Schéma de graphe Un type de graphique par catalogue.
Nom du graphe Doit être non vide ; pas de longueur maximale explicite. 127 personnages
Types de nœuds Maximum d’environ 2 milliards (espace d’identification int32). 64 Ko
Types d’arêtes Maximum d’environ 2 milliards (espace d’identification int32). 64 Ko
Étiquettes de nœuds uniques Un maximum d’environ 2 milliards ; les doublons d’un type sont rejetés. Dérivé des types de nœuds
Étiquettes d’arête uniques Un maximum d’environ 2 milliards ; les doublons d’un type sont rejetés. Dérivé des types d’arêtes
Noms uniques de propriétés Un maximum d’environ 2 milliards ; les noms vides et les doublons d’un même type sont rejetés. 64K x 10
Propriétés par type de nœud Aucun maximum explicite ; les noms de propriétés en double sont rejetés. 256
Propriétés par type d’arête Aucun maximum explicite ; les noms de propriétés en double sont rejetés. 256
Étiquettes par type de nœud Aucun maximum explicite ; les étiquettes dupliquées sont rejetées. 64
Étiquettes par type d’arête Aucun maximum explicite ; les étiquettes dupliquées sont rejetées. 64
Propriétés clés par contrainte Pas de maximum explicite ; les noms des propriétés doivent être non vides. 16
Longueur du nom de la propriété Pas explicitement appliqué au-delà du non-vide. 127 personnages
Longueur du nom d’étiquette Pas explicitement appliqué au-delà du non-vide. 127 personnages
Contraintes de clé d’arête Désactivé par défaut (allow_edge_key_constraints drapeau). ≤ le nombre de types d’arêtes