Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Génération d'un rapport récapitulatif rapide de votre graphe
L'API de résumé de graphe récupère les informations suivantes concernant votre graphe :
Pour les graphes de propriétés (PG), l'API de résumé de graphe renvoie une liste en lecture seule des étiquettes et des clés de propriété des nœuds et des arêtes, ainsi que le nombre de nœuds, d'arêtes et de propriétés.
Pour les graphes RDF (Resource Description Framework), l'API de résumé de graphe renvoie une liste en lecture seule de classes et de clés de prédicat, ainsi que le nombre de quadruplets, de sujets et de prédicats.
Note
L'API de résumé de graphe a été introduite dans la version 1.2.1.0 du moteur Neptune.
Grâce à l'API de résumé de graphe, vous pouvez rapidement vous faire une idée de la taille et du contenu de vos données de graphe. Vous pouvez également utiliser l'API de manière interactive dans un bloc-notes Neptune grâce à la magie de workbench Neptune %summary. Dans une application de graphe, l'API peut être utilisée pour améliorer les résultats de recherche en fournissant les étiquettes de nœuds ou d'arêtes découvertes dans le cadre de la recherche.
Les données récapitulatives de graphe sont tirées des statistiques DFE calculées par le moteur DFE Neptune pendant l'exécution et sont disponibles chaque fois que des statistiques DFE sont disponibles. Les statistiques sont activées par défaut lorsque vous créez un cluster de bases de données Neptune.
Note
La génération de statistiques est désactivée sur les types d'instance t3
et t4
(c'est-à-dire sur les types d'instance db.t3.medium
et db.t4g.medium
) pour économiser de la mémoire. Par conséquent, les données récapitulatives de graphe ne sont pas disponibles non plus sur ces types d'instances.
Vous pouvez vérifier le statut des statistiques DFE à l'aide de l'API de statut des statistiques. Tant que la génération automatique des statistiques n'est pas désactivée, les statistiques sont automatiquement mises à jour périodiquement.
Si vous voulez vous assurer que les statistiques sont aussi à jour que possible lorsque vous demandez un résumé de graphe, vous pouvez déclencher manuellement une mise à jour des statistiques juste avant de récupérer ce résumé. Si le graphe change pendant le calcul des statistiques, celles-ci prendront nécessairement un peu de temps, mais pas beaucoup.
Utilisation de l'API de résumé de graphe pour récupérer les informations récapitulatives d'un graphe
Pour un graphe de propriétés que vous interrogez à l'aide de Gremlin ou d'openCypher, vous pouvez récupérer un résumé de graphe à partir du point de terminaison du graphe de propriétés. Il existe à la fois un URI long et un URI court pour ce point de terminaison :
https://
your-neptune-host
:port
/propertygraph/statistics/summaryhttps://
your-neptune-host
:port
/pg/statistics/summary
Pour un graphe RDF que vous interrogez à l'aide de SPARQL, vous pouvez récupérer un résumé du graphe depuis le point de terminaison du résumé RDF :
https://
your-neptune-host
:port
/rdf/statistics/summary
Ces points de terminaison sont en lecture seule et ne prennent en charge qu'une opération HTTP GET
. Si $GRAPH_SUMMARY_ENDPOINT est défini sur l'adresse du point de terminaison que vous souhaitez interroger, vous pouvez récupérer les données récapitulatives à l'aide de curl
et du protocole HTTP GET
comme suit :
curl -G "$GRAPH_SUMMARY_ENDPOINT"
Si aucune statistique n'est disponible lorsque vous essayez de récupérer un résumé de graphe, la réponse ressemble à ce qui suit :
{ "detailedMessage": "Statistics are not available. Summary can only be generated after statistics are available.", "requestId": "48c1f788-f80b-b69c-d728-3f6df579a5f6", "code": "StatisticsNotAvailableException" }
Paramètre de requête URL mode
pour l'API de résumé de graphe
L'API de résumé de graphe accepte un paramètre de requête URL nommémode
, qui peut avoir l'une des deux valeurs suivantes, à savoir basic
(par défaut) et detailed
. Pour un graphe RDF, la réponse de résumé de graphe en mode detailed
contient un champ subjectStructures
supplémentaire. Pour un graphe de propriétés, la réponse détaillée de résumé de graphe contient deux champs supplémentaires, à savoir nodeStructures
et edgeStructures
.
Pour demander une réponse de résumé de graphe sous forme detailed
, incluez le paramètre mode
comme suit :
curl -G "$GRAPH_SUMMARY_ENDPOINT?mode=detailed"
Si le paramètre mode
n'est pas présent, le mode basic
est utilisé par défaut. Il est donc possible de spécifier ?mode=basic
explicitement, mais cela n'est pas nécessaire.
Réponse de résumé pour un graphe de propriétés (PG)
Pour un graphe de propriétés vide, la réponse détaillée de résumé de graphe se présente comme suit :
{ "status" : "200 OK", "payload" : { "version" : "v1", "lastStatisticsComputationTime" : "2023-01-10T07:58:47.972Z", "graphSummary" : { "numNodes" : 0, "numEdges" : 0, "numNodeLabels" : 0, "numEdgeLabels" : 0, "nodeLabels" : [ ], "edgeLabels" : [ ], "numNodeProperties" : 0, "numEdgeProperties" : 0, "nodeProperties" : [ ], "edgeProperties" : [ ], "totalNodePropertyValues" : 0, "totalEdgePropertyValues" : 0, "nodeStructures" : [ ], "edgeStructures" : [ ] } } }
Une réponse de résumé de graphe de propriétés (PG) contient les champs suivants :
-
status
: code de retour HTTP de la demande. Si la demande aboutit, le code est 200.Pour obtenir une liste des erreurs courantes, consultez Erreurs courantes liées au résumé de graphe.
-
payload
version
: version de la réponse de résumé de graphe.lastStatisticsComputationTime
: horodatage, au format ISO 8601, indiquant l'heure à laquelle Neptune a calculé ses statistiques pour la dernière fois.-
graphSummary
numNodes
: nombre de nœuds dans le graphe.numEdges
: nombre d'arêtes dans le graphe.numNodeLabels
: nombre d'étiquettes de nœuds distinctes dans le graphe.numEdgeLabels
: nombre d'étiquettes d'arête distinctes dans le graphe.nodeLabels
: liste des étiquettes de nœuds distincts dans le graphe.edgeLabels
: liste des étiquettes d'arête distinctes dans le graphe.numNodeProperties
: nombre de propriétés de nœuds distinctes dans le graphe.numEdgeProperties
: nombre de propriétés d'arêtes distinctes dans le graphe.nodeProperties
: liste des propriétés de nœud distinctes dans le graphe et nombre de nœuds où chaque propriété est utilisée.edgeProperties
: liste des propriétés d'arêtes distinctes dans le graphe et nombre d'arêtes où chaque propriété est utilisée.totalNodePropertyValues
: nombre total d'utilisations de toutes les propriétés de nœud.totalEdgePropertyValues
: nombre total d'utilisations de toutes les propriétés d'arête.-
nodeStructures
: ce champ n'est présent que lorsquemode=detailed
est spécifié dans la demande. Contient une liste de structures de nœuds, chacune avec les champs suivants :count
: nombre de nœuds dotés de cette structure spécifique.nodeProperties
: liste des propriétés de nœud présentes dans cette structure spécifique.distinctOutgoingEdgeLabels
: liste des différentes étiquettes d'arête sortantes présentes dans cette structure spécifique.
-
edgeStructures
: ce champ n'est présent que lorsquemode=detailed
est spécifié dans la demande. Contient une liste de structures d'arêtes, chacune avec les champs suivants :count
: nombre d'arêtes dotées de cette structure spécifique.edgeProperties
: liste des propriétés d'arête présentes dans cette structure spécifique.
Réponse de résumé de graphe RDF
Pour un graphe RDF vide, la réponse détaillée de résumé de graphe se présente comme suit :
{ "status" : "200 OK", "payload" : { "version" : "v1", "lastStatisticsComputationTime" : "2023-01-10T07:58:47.972Z", "graphSummary" : { "numDistinctSubjects" : 0, "numDistinctPredicates" : 0, "numQuads" : 0, "numClasses" : 0, "classes" : [ ], "predicates" : [ ], "subjectStructures" : [ ] } } }
Une réponse de résumé de graphe RDF contient les champs suivants :
-
status
: code de retour HTTP de la demande. Si la demande aboutit, le code est 200.Pour obtenir une liste des erreurs courantes, consultez Erreurs courantes liées au résumé de graphe.
-
payload
version
: version de la réponse de résumé de graphe.lastStatisticsComputationTime
: horodatage, au format ISO 8601, indiquant l'heure à laquelle Neptune a calculé ses statistiques pour la dernière fois.-
graphSummary
numDistinctSubjects
: nombre de sujets distincts dans le graphe.numDistinctPredicates
: nombre de prédicats distincts dans le graphe.numQuads
: nombre de quadruplets dans le graphe.numClasses
: nombre de classes dans le graphe.classes
: liste des classes dans le graphe.predicates
: liste des prédicats dans le graphe et nombre de prédicats.-
subjectStructures
: ce champ n'est présent que lorsquemode=detailed
est spécifié dans la demande. Contient une liste de structures de sujets, chacune avec les champs suivants :count
: nombre d'occurrences de cette structure spécifique.predicates
: liste des prédicats présents dans cette structure spécifique.
Exemple de réponse de résumé de graphe de propriétés (PG)
Voici la réponse détaillée de résumé de graphe de propriétés contenant un exemple de jeu de données de routes aériennes impliquant un graphe de propriétés
{ "status" : "200 OK", "payload" : { "version" : "v1", "lastStatisticsComputationTime" : "2023-03-01T14:35:03.804Z", "graphSummary" : { "numNodes" : 3748, "numEdges" : 51300, "numNodeLabels" : 4, "numEdgeLabels" : 2, "nodeLabels" : [ "continent", "country", "version", "airport" ], "edgeLabels" : [ "contains", "route" ], "numNodeProperties" : 14, "numEdgeProperties" : 1, "nodeProperties" : [ { "desc" : 3748 }, { "code" : 3748 }, { "type" : 3748 }, { "country" : 3503 }, { "longest" : 3503 }, { "city" : 3503 }, { "lon" : 3503 }, { "elev" : 3503 }, { "icao" : 3503 }, { "region" : 3503 }, { "runways" : 3503 }, { "lat" : 3503 }, { "date" : 1 }, { "author" : 1 } ], "edgeProperties" : [ { "dist" : 50532 } ], "totalNodePropertyValues" : 42773, "totalEdgePropertyValues" : 50532, "nodeStructures" : [ { "count" : 3471, "nodeProperties" : [ "city", "code", "country", "desc", "elev", "icao", "lat", "lon", "longest", "region", "runways", "type" ], "distinctOutgoingEdgeLabels" : [ "route" ] }, { "count" : 161, "nodeProperties" : [ "code", "desc", "type" ], "distinctOutgoingEdgeLabels" : [ "contains" ] }, { "count" : 83, "nodeProperties" : [ "code", "desc", "type" ], "distinctOutgoingEdgeLabels" : [ ] }, { "count" : 32, "nodeProperties" : [ "city", "code", "country", "desc", "elev", "icao", "lat", "lon", "longest", "region", "runways", "type" ], "distinctOutgoingEdgeLabels" : [ ] }, { "count" : 1, "nodeProperties" : [ "author", "code", "date", "desc", "type" ], "distinctOutgoingEdgeLabels" : [ ] } ], "edgeStructures" : [ { "count" : 50532, "edgeProperties" : [ "dist" ] } ] } } }
Exemple de réponse de résumé de graphe RDF
Voici la réponse détaillée de résumé de graphe RDF contenant un exemple de jeu de données de routes aériennes impliquant un graphe RDF
{ "status" : "200 OK", "payload" : { "version" : "v1", "lastStatisticsComputationTime" : "2023-03-01T14:54:13.903Z", "graphSummary" : { "numDistinctSubjects" : 54403, "numDistinctPredicates" : 19, "numQuads" : 158571, "numClasses" : 4, "classes" : [ "http://kelvinlawrence.net/air-routes/class/Version", "http://kelvinlawrence.net/air-routes/class/Airport", "http://kelvinlawrence.net/air-routes/class/Continent", "http://kelvinlawrence.net/air-routes/class/Country" ], "predicates" : [ { "http://kelvinlawrence.net/air-routes/objectProperty/route" : 50656 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/dist" : 50656 }, { "http://kelvinlawrence.net/air-routes/objectProperty/contains" : 7004 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/code" : 3747 }, { "http://www.w3.org/2000/01/rdf-schema#label" : 3747 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/type" : 3747 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/desc" : 3747 }, { "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" : 3747 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/icao" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/lat" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/region" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/runways" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/longest" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/elev" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/lon" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/country" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/city" : 3502 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/author" : 1 }, { "http://kelvinlawrence.net/air-routes/datatypeProperty/date" : 1 } ], "subjectStructures" : [ { "count" : 50656, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/dist" ] }, { "count" : 3471, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/city", "http://kelvinlawrence.net/air-routes/datatypeProperty/code", "http://kelvinlawrence.net/air-routes/datatypeProperty/country", "http://kelvinlawrence.net/air-routes/datatypeProperty/desc", "http://kelvinlawrence.net/air-routes/datatypeProperty/elev", "http://kelvinlawrence.net/air-routes/datatypeProperty/icao", "http://kelvinlawrence.net/air-routes/datatypeProperty/lat", "http://kelvinlawrence.net/air-routes/datatypeProperty/lon", "http://kelvinlawrence.net/air-routes/datatypeProperty/longest", "http://kelvinlawrence.net/air-routes/datatypeProperty/region", "http://kelvinlawrence.net/air-routes/datatypeProperty/runways", "http://kelvinlawrence.net/air-routes/datatypeProperty/type", "http://kelvinlawrence.net/air-routes/objectProperty/route", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://www.w3.org/2000/01/rdf-schema#label" ] }, { "count" : 238, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/code", "http://kelvinlawrence.net/air-routes/datatypeProperty/desc", "http://kelvinlawrence.net/air-routes/datatypeProperty/type", "http://kelvinlawrence.net/air-routes/objectProperty/contains", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://www.w3.org/2000/01/rdf-schema#label" ] }, { "count" : 31, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/city", "http://kelvinlawrence.net/air-routes/datatypeProperty/code", "http://kelvinlawrence.net/air-routes/datatypeProperty/country", "http://kelvinlawrence.net/air-routes/datatypeProperty/desc", "http://kelvinlawrence.net/air-routes/datatypeProperty/elev", "http://kelvinlawrence.net/air-routes/datatypeProperty/icao", "http://kelvinlawrence.net/air-routes/datatypeProperty/lat", "http://kelvinlawrence.net/air-routes/datatypeProperty/lon", "http://kelvinlawrence.net/air-routes/datatypeProperty/longest", "http://kelvinlawrence.net/air-routes/datatypeProperty/region", "http://kelvinlawrence.net/air-routes/datatypeProperty/runways", "http://kelvinlawrence.net/air-routes/datatypeProperty/type", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://www.w3.org/2000/01/rdf-schema#label" ] }, { "count" : 6, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/code", "http://kelvinlawrence.net/air-routes/datatypeProperty/desc", "http://kelvinlawrence.net/air-routes/datatypeProperty/type", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://www.w3.org/2000/01/rdf-schema#label" ] }, { "count" : 1, "predicates" : [ "http://kelvinlawrence.net/air-routes/datatypeProperty/author", "http://kelvinlawrence.net/air-routes/datatypeProperty/code", "http://kelvinlawrence.net/air-routes/datatypeProperty/date", "http://kelvinlawrence.net/air-routes/datatypeProperty/desc", "http://kelvinlawrence.net/air-routes/datatypeProperty/type", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://www.w3.org/2000/01/rdf-schema#label" ] } ] } } }
Utilisation de l'authentification AWS Identity and Access Management (IAM) avec des points de terminaison de synthèse graphique
Vous pouvez accéder aux points de terminaison de résumé de graphe en toute sécurité grâce à l'authentification IAM à l'aide d'awscurl
awscurl "$GRAPH_SUMMARY_ENDPOINT" \ --region
(your region)
\ --service neptune-db
Important
L'identité ou le rôle IAM qui crée les informations d'identification temporaires doit être associé à une politique IAM autorisant l'action GetGraphSummaryIAM.
Consultez Erreurs d'authentification IAM pour obtenir la liste des erreurs IAM courantes que vous pouvez rencontrer.
Codes d'erreur courants pouvant être renvoyés par une demande de résumé de graphe
Code d'erreur du service Neptune | Statut HTTP | Message | Scénario d'erreur | Résolution |
---|---|---|---|---|
|
403 |
Jeton d'authentification manquant. |
Une demande non signée ou mal signée a été envoyée à la base de données Neptune où IAM est activé. |
Signez la demande avec SigV4 avant de l'envoyer (voir IAM et résumés de graphe). |
403 |
L'utilisateur : n' |
La politique IAM n'autorise pas l'action GetGraphSummarylorsque la demande de résumé du graphe a été envoyée à la base de données Neptune avec IAM activé. |
Assurez-vous que la politique IAM attachée à l'utilisateur ou au rôle à l'origine de la demande autorise l'action |
|
|
400 |
Les statistiques étant désactivées, le résumé de graphe est également désactivé. |
Essayer d'obtenir un résumé sur les types d'instances extensibles ( |
Utilisez un type d'instance dans lequel la génération de statistiques est activée (toutes les instances prises en charge sauf |
400 |
Mauvais itinéraire : |
Demande envoyée à un chemin non valide. |
Utilisez la route correcte pour le point de terminaison du résumé de graphe. |
|
|
400 |
La demande contient des paramètres inconnus : « |
Survient lorsqu'un paramètre non valide est spécifié dans la demande. |
N'utilisez que des paramètres valides (tels que |
|
400 |
La valeur « » du paramètre de requête URI « mode » n'est pas prise en charge |
Se produit lorsque le paramètre URL « mode » de la demande est suivi d'une valeur non valide. |
Utilisez des valeurs valides (telles que |
|
405 |
Méthode non autorisée |
Appel du point de terminaison de résumé avec une méthode HTTP autre que |
Utilisez la méthode HTTP |
|
400 |
Les statistiques ne sont pas encore calculées: Le résumé du graphe sera disponible une fois le calcul des statistiques terminé. |
Aucune statistique n'est disponible lorsque la demande est envoyée au point de terminaison de résumé. |
Attendez que la génération des statistiques soit terminée. Vous pouvez vérifier le statut de la génération des statistiques à l'aide de l'API de statut des statistiques. |
400 |
La limite de statistiques est atteinte. Le résumé du graphe n'est donc pas disponible. |
La génération de statistiques s'est arrêtée, car les limites de taille des statistiques ont été atteintes. |
Le résumé n'est pas disponible sur ce graphe. |
Par exemple, si vous soumettez une demande au point de terminaison de résumé de graphe dans une base de données Neptune sur laquelle l'authentification IAM est activée et que les autorisations nécessaires ne se trouvent pas dans la politique IAM du demandeur, vous obtiendrez une réponse comme celle-ci :
{ "detailedMessage": "User: arn:aws:iam::
(account ID)
:(user or user name)
is not authorized to perform: neptune-db:GetGraphSummary on resource: arn:aws:neptune-db:(region)
:(account ID)
:(cluster resource ID)
/*", "requestId": "7ac2b98e-b626-d239-1d05-74b4c88fce82", "code": "AccessDeniedException" }