Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Graph dans Microsoft Fabric présente certaines limitations fonctionnelles et de performance. 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 fichiers Parquet et CSV OneLake sont les seules sources de données actuellement prises en charge.
- Prise en charge de Power BI modèles sémantiques à mesure que les sources de données sont en cours de développement.
- La prise en charge de la sécurité oneLake au niveau des colonnes et des lignes est en cours de développement.
Types de données
Graph prend actuellement en charge les types de données suivants :
- Boolean (valeurs sont
trueetfalse) - Double (les valeurs sont des nombres à virgule flottante 64 bits)
- Entier (les valeurs sont des entiers signés 64 bits)
- Chaîne (les valeurs sont des chaînes de caractères Unicode)
- DateHeure zonée (les valeurs sont des horodatages accompagnés d’un décalage horaire pour le fuseau horaire)
- Durée (les valeurs sont des intervalles de durée ISO 8601)
Les types OneLake suivants sont pris en charge :
- IntegerType
- LongType
- StringType
- DoubleType
- Type Booléen
- FloatType
- ByteType
- ArrayType
- DateType
- TimestampNtzType
- TimestampType
Création d’arêtes
Lors de la modélisation de graphe, donnez différents types de bords de graphe différents noms.
Par exemple, un jeu de données de médias sociaux peut représenter « user likes comment » et « user likes post ». Si votre modèle de graphique utilise des types de nœuds distincts pour les commentaires et les publications, le type de nœud utilisateur a deux types de bords « likes » pour commenter et publier. Vous pouvez nommer ces bords userLikesComment et userLikesPost.
Heure de création de graphique
Jusqu’à une fois par semaine, un modèle de graphique peut rencontrer un délai d’expiration si la création ou la mise à jour du graphique prend plus de 20 minutes. L’opération est marquée comme ayant échoué.
Toutefois, les utilisateurs peuvent réinitialiser la création ou la mise à jour de graphiques.
Taille du graphe
Les configurations SKU actuellement généralement disponibles peuvent traiter environ 2 milliards d’éléments de graphe (nœuds et arêtes). Pour des graphes plus grands avec un plus grand nombre d’éléments ou une charge utile de propriété plus importante par élément, veuillez contacter l’équipe produit.
Nombre total de modèles de graphes
Chaque espace de travail Fabric peut avoir jusqu’à 10 modèles graphiques.
Interface utilisateur multitâche
Le modèle de graphique peut disparaître ou devenir vide lorsque vous basculez entre des onglets ou des fenêtres dans l’interface utilisateur multitask Fabric. L’équipe produit travaille activement à résoudre ce problème connu.
Sélection de propriétés de nœud
Lorsque vous ajoutez un type de nœud ou d’arête à votre modèle de graphe, sélectionnez manuellement les colonnes de la table source à ajouter comme propriétés. Les nœuds et les arêtes commencent sans propriétés, et vous n’ajoutez que celles dont vous avez besoin.
Querying
Nombre de tronçons dans les requêtes multihop
Graph prend actuellement en charge jusqu’à huit tronçons sur des modèles de longueur variable.
Taille des résultats
Les performances d’agrégation peuvent être instables lorsque les résultats dépassent 128 Mo de taille.
Le système tronque actuellement des réponses supérieures à 64 Mo.
Délai d'expiration
Les requêtes expirent si elles prennent plus de 20 minutes.
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 toujours en cours pour :
- Codes d’état GQL corrects
- Instruction FOR avec index
- PROCHAIN
- INSTRUCTION UNION DISTINCT
- Quantificateurs de modèles de graphiques non liés
- RECHERCHE DE CHEMIN D’ACCÈS LE PLUS COURT
- Recherche de chemin d’accès ANY
- N’IMPORTE QUELLE recherche de chemin d’accès LE PLUS COURT
- Conversion de données
- Sous-requêtes scalaires
- PROPERTIES, fonction
- FONCTION RANGE
- Fonctions numériques améliorées
- Fonctions logarithmiques
- Fonctions trigonométriques
- Concaténation des valeurs de chemin d’accès
- Prédicat de test d’étiquette
- Prédicat normalisé
- Prédicat source/destination
- Type de valeur INT32
- type de valeur FLOAT32
- Type de valeur RECORD fermé
- Type de valeur UINT32
- Type de valeur TIME ZONED
- Type de valeur DATE
- Passage de paramètres
- Bords non dirigés
- Préambule GQL
- Prédicats de modèle non local
- PRÉdicat DIRIGÉ
- prédicat REGEXP_CONTAINS
- Spécification des paramètres dynamiques
- Utilisateur de session
- Type de valeur BYTES
- Type de valeur DECIMAL
- Type de valeur DATETIME LOCAL
- Type de valeur HEURE LOCALE
- Instruction call named procedure
- ORDER BY avec ordre NULL explicite
- Instruction TABulaire FOR
- INSTRUCTION EXCEPT ALL
- INSTRUCTION EXCEPT DISTINCT
- INSTRUCTION INTERSECT ALL
- Instruction INTERSECT DISTINCT
- INSTRUCTION OTHERWISE
- Caractères génériques
- Cohérence topologique détendue
- PERCENTILE_CONT fonction d’agrégation
- PERCENTILE_DISC fonction d’agrégation
- Fonction d’agrégation PRODUCT
- STDDEV_POP fonction d’agrégation
- STDDEV_SAMP fonction d’agrégation
- Concaténation de chaîne d’octets
- Fonction TRIM de chaîne d’octets
- Fonction TRIM simple avec spécification TRIM
- Fonction TRIM multicharacteur
- Fonction de longueur de chaîne d’octets
- CARDINALITÉ
- prédicat ALL_DIFFERENT
- Prédicat IS DISTINCT
- MÊME prédicat
Catalogue
Note
Les noms de graphes et de contraintes sont générés automatiquement dans GraphBackend et ne peuvent pas être spécifiés dans l’interface utilisateur ni dans le schéma JSON.
| Zone de catalogue | Limite / comportement actuel | État d’application | Recommendation |
|---|---|---|---|
| Base d’identification de catalogue | Les identifiants d’éléments de catalogue sont des wrappers int32 signés où 0 est invalide, donc chaque famille d’ID a au maximum std::numeric_limits<int32_t>::max() - 1 des identifiants non nuls positifs (2 milliards). |
Plafond d’implémentation, pas un quota recommandé pour l’aviation générale | |
| Schémas de graphe | Un type de graphique par catalogue ; les commentaires sur l’identifiant du catalogue supposent que le catalogue ne contient qu’un seul type de graphe. | Hypothèse de conception ; non exposé comme un quota multi-schéma | |
| Définition du graphe taille sérialisée | Aucune limite explicite de taille d’octet sur GraphProto; elle contient des types de nœuds répétés, des types d’arêtes, des étiquettes, des noms de propriétés et des contraintes. |
Non appliqué sous protobuf/gRPC/mémoire ; Les vérifications du nombre d’objets dans le catalogue s’appliquent après la construction du graphe | |
| Nom du graphe | Doit être non vide ; Pas de longueur maximale explicite d’octets ni de liste de caractères autorisés. | Seul le non-vide est appliqué | 128 caractères |
| Types de nœuds | Maximum 2 milliards de types de nœuds. | Appliqué par CatalogGraphType::Validate via un espace d’identification int32 non nul positif |
64k |
| Types d’arêtes | Maximum 2 milliards de types d’arêtes. | Appliqué par CatalogGraphType::Validate via un espace d’identification int32 non nul positif |
64k |
| Étiquettes de nœuds uniques pour tous les types de nœuds | Maximum 2 milliards d’étiquettes de nœuds uniques. | Appliqué par CatalogGraphType::Validate; les étiquettes dupliquées d’un même type sont rejetées |
Dérivé |
| Étiquettes d’arêtes uniques pour tous les types d’arêtes | Maximum 2 milliards d’articles de bord uniques. | Appliqué par CatalogGraphType::Validate; les étiquettes dupliquées d’un même type sont rejetées |
Dérivé |
| Noms de propriétés uniques pour tous les types de nœuds et d’arêtes | Maximum 2 milliards de noms de propriétés uniques. | Appliqué par CatalogGraphType::Validate; les noms de propriété ne peuvent pas être vides et les doublons d’un même type sont rejetés |
64k * 10 |
| Définitions de contraintes de nœuds | Au maximum 2 milliards de définitions de contraintes de clé de nœud. | Appliqué par CatalogGraphType::Validate via un espace d’identification int32 non nul positif |
<= types de nœuds |
| Définitions des contraintes d’arête | Maximum 2 milliards de définitions de contraintes de clé d’arête, mais les contraintes de clé d’arête sont désactivées par défaut sauf si allow_edge_key_constraints c’est vrai. |
Le comte est appliqué si présent ; La porte de caractéristiques rejette par défaut les contraintes d’arête | <= types d’arêtes |
| Noms de propriétés, caractères / longueur | Pas explicitement appliqué au-delà des noms de propriétés non vides et de la grammaire de l’analyseur ; Pas de longueur maximale d’octets dans le catalogue ni de liste de caractères autorisés. | 128 chars | |
| Caractères / longueur des étiquettes | Pas explicitement appliquée au-delà de la grammaire de l’analyseur et des étiquettes non vides dans les contraintes ; Pas de longueur maximale d’octets dans le catalogue ni de liste de caractères autorisés. | 128 chars | |
| Caractères du nom de contrainte / longueur | Les noms des contraintes doivent être non vides ; Pas de longueur maximale explicite d’octets ni de liste de caractères autorisés. | La validation des contraintes par duplique/correspondance est distincte | 128 chars |
| Propriétés par type de nœud | Aucun nombre maximal explicite de propriétés sur un type de nœud ; les noms de propriétés en double sont rejetés. | Validation de la correction uniquement | 256 |
| Propriétés par type d’arête | Pas de nombre maximal explicite de propriétés sur un type d’arête ; les noms de propriétés en double sont rejetés. | Validation de la correction uniquement | 256 |
| Étiquettes par type de nœud | Aucun nombre maximal explicite d’étiquettes sur un type de nœud ; les doublons sont rejetés. | Validation de la correction uniquement | 64 |
| Étiquettes par type d’arête | Pas de nombre maximal explicite d’étiquettes sur un type d’arête ; les étiquettes en double sont rejetées ; Les inscriptions ajoutées sur les bords sont rejetées. | Validation de la correction uniquement | 64 |
| Propriétés clés par contrainte | Pas de nombre maximal explicite de propriétés de clé dans les contraintes de nœud ou de clé d’arête ; Les noms individuels des biens ne peuvent pas être vides. | Validation de la correction uniquement | 16 |
Valeurs d’exécution
| Type de valeur d’exécution | Représentation du support / portée | Plafond explicite de niveau de valeur ? | Recommandé |
|---|---|---|---|
| BOOL | bool ; valeurs vrai/faux | Oui, domaine fixe | |
| INT64 | entier 64 bits signé | Oui, largeur fixe | |
| UINT64 | Entier non signé de 64 bits | Oui, largeur fixe | |
| DOUBLE | C++/protobuf double / Arrow DoubleScalar (IEEE-754 binary64) ; les valeurs non finies ne sont pas rejetées par Value::FromProto |
Pas de contrôle fini-seulement | |
| DECIMAL128 | Flèche Decimal128Scalar; la validation à l’exécution permet une précision 1..38 et une précision à l’échelle 0.. ; jusqu’à 38 chiffres décimaux |
Oui, pour la construction à vérifier/à partir de la proto-production | |
| STRING |
std::string; ValueProto.string_value |
Pas de plafond de valeur | 4 Mo |
| BYTES |
std::string utilisé comme conteneur d’octets ; ValueProto.bytes_value |
Pas de plafond de valeur | Limite de corde |
| VERTEX_ID | uint64 enroulé par VertexId; les identifiants générés utilisent un identifiant local de shards de 48 bits et réservent 0 comme invalide |
Le proto brut accepte tout uint64 ; Les ID générés sont contraints | |
| EDGE_ID | uint64 enroulé par EdgeId; les identifiants générés utilisent un identifiant local de shards de 48 bits et réservent 0 comme invalide |
Le proto brut accepte tout uint64 ; Les ID générés sont contraints | |
| ZONED_DATE_TIME |
absl::Time plus le fuseau horaire ; sérialisé en int64 millisecondes depuis l’époque Unix plus les secondes décalées int32 UTC. La plage de millisecondes est [-9 223 372 036 854 775 808, 9 223 372 036 854 775 807], documentée en instantanés UTC de -292275055-05-16T16:47:04.192+00:00 à 292278994-08-17T07:12:55.807+00:00. |
Intervalle de temps documenté ; Offset est un int32 et n’est pas enregistré par range Value::FromProto |
|
| DURÉE |
absl::Duration; sérialisé sous le nom int64 millisecondes. Les numéros min/max sérialisés sont de -9 223 372 036 854 775 808 ms à 9 223 372 036 854 775 807 ms (environ +/-292 277 024,6 ans). L’analyseur ISO est plus strict : +/-9 223 372 035 secondes (environ +/-292,277 ans). |
Le chemin proto-est accepte le champ int64 millisecondes complet ; L’analyseur a une majuscule explicite plus étroite | |
| NULL / null typé |
std::monostate ou enveloppe typed-null |
||
| Listes dactylographiées |
std::vector<std::optional<T>>; LIST_NULL Stocke un size_t; LIST_ANY Magasins std::vector<Value> |
Pas de plafond de valeur par défaut | |
| Listes imbriquées | Les listes imbriquées générales ne sont pas prises en charge dans le proto contrat ; Runtime dispose d’une gestion imbriquée spéciale LIST_INT64 |
Pas de quota par défaut de profondeur/longueur | |
| CHEMIN | Alternance des identifiants uint64 entre sommets/arêtes/sommets dans un vecteur ; La forme de chemin valide a un nombre d’éléments impairs | Pas de quota de longueur de chemin | |
| ENREGISTREMENT |
absl::flat_hash_map<std::string, Value> / Carte protobuf |
Pas de quota de nombre de champs, de longueur de clé ou de profondeur d’imbrication | |
| QUELCONQUE |
Value::DataType() n’est pas censé retourner TYPE_ANY; les valeurs dynamiques sont transportées comme des valeurs concrètes, surtout à l’intérieur LIST_ANY ou à l’intérieur de la flèche. Toute extension de stockage |
Pas de quota de taille ou de profondeur |
Autres limites
- Les identifiants ne peuvent pas commencer par un soulignement.
- Les entiers littéraux sont traités par défaut comme des entiers signés.
- Retourner TOUS les types et Records n’est pas pris en charge. La solution temporaire consiste à les jsoniser via
TO_JSON_STRING. - La longueur maximale de la propriété de la chaîne est de 65535. Les données au-delà de 64 KiB sont inaccessibles au désérialiseur ; le tampon complet est toujours écrit sur RocksDB.
- Le nombre maximal d’éléments dans
List<T>la propriété est de 65535. Une LISTE INT64 de 70 000 éléments se désérialise en 4 464 éléments. - La taille maximale de la réponse en octets est de 64 Mo.