Génération d'un rapport récapitulatif rapide de votre graphe - Amazon Neptune

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

Le résumé du graphe Neptune permet de API récupérer les informations suivantes concernant votre graphe :

  • Pour les graphes de propriétés (PG), le résumé du graphique API 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 Resource Description Framework (RDF), le résumé du graphe API renvoie une liste en lecture seule de classes et de clés de prédicat, ainsi que le nombre de quads, de sujets et de prédicats.

Note

Le résumé du graphique API a été introduit dans la version 1.2.1.0 du moteur Neptune.

Grâce au résumé du graphiqueAPI, vous pouvez rapidement acquérir une connaissance approfondie de la taille et du contenu des données de votre graphique. Vous pouvez également l'utiliser de API manière interactive dans un bloc-notes Neptune grâce à la magie de %summaryNeptune Workbench. Dans une application graphique, le API peut être utilisé pour améliorer les résultats de recherche en fournissant des étiquettes de nœuds ou de bords découverts dans le cadre de la recherche.

Les données récapitulatives du graphique sont tirées des DFEstatistiques calculées par le DFEmoteur Neptune pendant l'exécution et sont disponibles chaque fois que des DFE statistiques 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 l'état des DFE statistiques à l'aide du statut des statistiques API. 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 du résumé du graphique API pour récupérer les informations du résumé du graphique

Pour un graphe de propriétés que vous interrogez à l'aide de Gremlin ouopenCypher, vous pouvez récupérer un résumé du graphique à partir du point de terminaison du graphe de propriétés. Il existe à la fois un long et un abrégé URI pour ce point final :

  • https://your-neptune-host:port/propertygraph/statistics/summary

  • https://your-neptune-host:port/pg/statistics/summary

Pour un RDF graphique que vous interrogez à l'aideSPARQL, vous pouvez récupérer un résumé du graphique à partir du point de terminaison du RDF résumé :

  • 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 en utilisant curl et 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" }

Le paramètre de mode URL requête pour le résumé du graphique API

Le résumé du graphe API accepte un paramètre de URL requête nommémode, qui peut prendre l'une des deux valeurs suivantes, à savoir basic (par défaut) etdetailed. Pour un RDF graphique, la réponse récapitulative du graphe en detailed mode contient un subjectStructures champ 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— le code de HTTP retour 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 — L'horodatage, au format ISO 8601, de 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 lorsque mode=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 lorsque mode=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 récapitulative du graphique pour un RDF graphique

Pour un RDF graphique vide, la réponse récapitulative détaillée du graphique 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 récapitulative sous forme de RDF graphique comporte les champs suivants :

  • status— le code de HTTP retour 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 — L'horodatage, au format ISO 8601, de 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 lorsque mode=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 récapitulative sous forme de RDF graphique

Voici la réponse récapitulative détaillée pour un RDF graphique contenant l'exemple de jeu de données sur les routes RDF aériennes :

{ "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 AWS Identity and Access Management (IAM) authentification avec les points de terminaison du résumé graphique

Vous pouvez accéder aux points de terminaison du résumé des graphes en toute sécurité grâce à l'IAMauthentification à l'aide d'awscurl ou de tout autre outil compatible avec et. HTTPS IAM Consultez Utilisation d'awscurlinformations d'identification temporaires pour se connecter en toute sécurité à un cluster de base de données avec IAM l'authentification activée pour découvrir comment configurer les informations d'identification appropriées. Une fois que y avez accès, vous pouvez effectuer des demandes comme celles-ci :

awscurl "$GRAPH_SUMMARY_ENDPOINT" \ --region (your region) \ --service neptune-db
Important

L'IAMidentité ou le rôle qui crée les informations d'identification temporaires doit être associé à une IAM politique autorisant l'GetGraphSummaryIAMaction.

Consultez Erreurs d'authentification IAM la liste des IAM erreurs 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 HTTPstatut Message Scénario d'erreur Résolution

AccessDeniedException

403

Jeton d'authentification manquant.

Une demande non signée ou mal signée a été envoyée à la base IAM de données Neptune avec cette option activée.

Signez la demande avec SigV4 avant de l'envoyer (voir IAMet résumés de graphiques).

403

Utilisateur : (user ARN) n'est pas autorisé à exécuter : neptune-db : on resource : GetGraphSummary (resource ARN).

IAMla politique 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 cette option activée.

Assurez-vous que la IAM politique attachée à l'utilisateur ou au rôle à l'origine de la demande autorise l'GetGraphSummaryaction.

BadRequestException

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 (t3 ou t4g) dont les statistiques sont désactivées.

Utilisez un type d'instance dans lequel la génération de statistiques est activée (toutes les instances prises en charge sauf t3 et t4g).

400

Mauvais itinéraire : /rdf/statistics/summarypathapi

Demande envoyée à un chemin non valide.

Utilisez la route correcte pour le point de terminaison du résumé de graphe.

InvalidParameterException

400

La demande contient des paramètres inconnus : '(unknown parameter or parameters)'.

Survient lorsqu'un paramètre non valide est spécifié dans la demande.

N'utilisez que des paramètres valides (tels que mode) dans la demande.

InvalidParameterException

400

URIle paramètre de requête 'mode' a une valeur non prise en charge '(invalid value)'.

Lorsque le URL paramètre « mode » de la demande est suivi d'une valeur non valide.

Utilisez des valeurs valides (telles que basic oudetailed) lorsque vous spécifiez le URL paramètre « mode ».

MethodNotAllowedException

405

Méthode non autorisée

Appel du point de terminaison récapitulatif avec une HTTP méthode autre que GET (telle que POST ouDELETE).

Utilisez la HTTP GET méthode lors de l'appel du point de terminaison récapitulatif.

StatisticsNotAvailableException

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 l'état de la génération des statistiques à l'aide du statut des statistiques API.

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 faites une demande pour représenter graphiquement le point de terminaison récapitulatif dans une base de données Neptune sur laquelle l'IAMauthentification est activée et que les autorisations nécessaires ne sont pas présentes dans la IAM politique 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" }