Creazione di un breve report di riepilogo sul grafo - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un breve report di riepilogo sul grafo

Il API riepilogo del grafico di Neptune recupera le seguenti informazioni sul grafico:

  • Per i grafici delle proprietà (PG), il riepilogo del grafico API restituisce un elenco di sola lettura di etichette di nodi e spigoli e chiavi di proprietà, insieme al conteggio di nodi, spigoli e proprietà.

  • Per i grafici di Resource Description Framework (RDF), il riepilogo del grafico API restituisce un elenco di classi e chiavi di predicato di sola lettura, insieme al conteggio di quad, soggetti e predicati.

Nota

Il riepilogo del grafico API è stato introdotto nella versione 1.2.1.0 del motore Neptune.

Con il riepilogo del graficoAPI, puoi acquisire rapidamente una comprensione di alto livello della dimensione e del contenuto dei dati del grafico. Puoi anche utilizzarli in API modo interattivo all'interno di un notebook Neptune usando la magia di Neptune Workbench. %summary In un'applicazione grafica, API possono essere utilizzati per migliorare i risultati della ricerca fornendo etichette relative ai nodi o ai bordi scoperti come parte della ricerca.

I dati di riepilogo del grafico sono tratti dalle DFEstatistiche calcolate dal motore DFENeptune durante il runtime e sono disponibili ogni volta che le statistiche sono disponibiliDFE. Le statistiche sono abilitate per impostazione predefinita quando si crea un nuovo cluster database Neptune.

Nota

La generazione di statistiche è disabilitata sui tipi di istanza t3 e t4 (ovvero sui tipi di istanza db.t3.medium e db.t4g.medium) per risparmiare memoria. Di conseguenza, i dati di riepilogo del grafo non sono disponibili nemmeno su questi tipi di istanza.

È possibile controllare lo stato delle DFE statistiche utilizzando lo stato delle statistiche. API Finché la generazione automatica delle statistiche non viene disabilitata, le statistiche vengono aggiornate automaticamente periodicamente.

Se si vuole essere sicuri che le statistiche siano il più aggiornate possibile quando si richiede un riepilogo del grafo, è possibile attivare manualmente un aggiornamento delle statistiche subito prima di recuperare il riepilogo. Se il grafo cambia durante il calcolo delle statistiche, queste subiranno necessariamente un leggero ritardo, ma non di molto.

Utilizzo del riepilogo del grafico API per recuperare le informazioni di riepilogo del grafico

Per un grafico delle proprietà su cui si esegue una query utilizzando Gremlin oppureopenCypher, è possibile recuperare un riepilogo del grafico dall'endpoint di riepilogo del grafico delle proprietà. Per questo endpoint esistono sia un lungo che uno breve: URI

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

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

Per un RDF grafico che utilizzi per eseguire una querySPARQL, puoi recuperare un riepilogo del grafico dall'endpoint di RDF riepilogo:

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

Questi endpoint sono di sola lettura e supportano solo un'operazione. HTTP GET Se $ GRAPH _ SUMMARY _ ENDPOINT è impostato sull'indirizzo dell'endpoint su cui si desidera eseguire la query, è possibile recuperare i dati di riepilogo utilizzando e come segue: curl HTTP GET

curl -G "$GRAPH_SUMMARY_ENDPOINT"

Se non sono disponibili statistiche quando si tenta di recuperare un riepilogo del grafo, la risposta è simile alla seguente:

{ "detailedMessage": "Statistics are not available. Summary can only be generated after statistics are available.", "requestId": "48c1f788-f80b-b69c-d728-3f6df579a5f6", "code": "StatisticsNotAvailableException" }

Il parametro di mode URL interrogazione per il riepilogo del grafico API

Il riepilogo del grafico API accetta un parametro di URL interrogazione denominatomode, che può assumere uno dei due valori seguenti, vale a dire basic (impostazione predefinita) edetailed. Per un RDF grafico, la detailed modalità graph summary response contiene un subjectStructures campo aggiuntivo. Per un grafo di proprietà, la risposta di riepilogo dettagliata del grafo contiene due campi aggiuntivi, vale a dire nodeStructures e edgeStructures.

Per richiedere una risposta di riepilogo del grafo detailed, includere il parametro modecome segue:

curl -G "$GRAPH_SUMMARY_ENDPOINT?mode=detailed"

Se il parametro mode non è presente, per impostazione predefinita viene utilizzata la modalità basic, quindi, sebbene sia possibile specificare ?mode=basic in modo esplicito, ciò non è necessario.

Risposta di riepilogo di un grafo di proprietà (PG)

Per un grafo di proprietà vuoto, la risposta di riepilogo dettagliata del grafo è la seguente:

{ "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" : [ ] } } }

Una risposta di riepilogo del grafo di proprietà (PG) contiene i seguenti campi:

  • status— il codice di HTTP ritorno della richiesta. Se la richiesta è riuscita, il codice è 200.

    Per visualizzare un elenco di errori comuni, consulta Errori comuni di riepilogo del grafo.

  • payload

    • version: versione della risposta di riepilogo del grafo.

    • lastStatisticsComputationTime — Il timestamp, in formato ISO 8601, dell'ora in cui Neptune ha calcolato le statistiche per l'ultima volta.

    • graphSummary

      • numNodes: numero di nodi nel grafo.

      • numEdges: numero di archi nel grafo.

      • numNodeLabels: numero di etichette di nodi distinte nel grafo.

      • numEdgeLabels: numero di etichette di archi distinte nel grafo.

      • nodeLabels: elenco di etichette di nodi distinte nel grafo.

      • edgeLabels: elenco di etichette di archi distinte nel grafo.

      • numNodeProperties: numero di proprietà di nodi distinte nel grafo.

      • numEdgeProperties: numero di proprietà di archi distinte nel grafo.

      • nodeProperties: elenco di proprietà di nodi distinte nel grafo, insieme al numero di nodi in cui viene utilizzata ciascuna proprietà.

      • edgeProperties: elenco di proprietà di archi distinte nel grafo, insieme al numero di archi in cui viene utilizzata ciascuna proprietà.

      • totalNodePropertyValues: numero totale di utilizzi di tutte le proprietà di nodi.

      • totalEdgePropertyValues: numero totale di utilizzi di tutte le proprietà di archi.

      • nodeStructures: questo campo è presente solo quando nella richiesta è specificato mode=detailed. Contiene un elenco di strutture di nodi, ognuna delle quali contiene i seguenti campi:

        • count: numero di nodi con questa struttura specifica.

        • nodeProperties: elenco delle proprietà dei nodi in questa struttura specifica.

        • distinctOutgoingEdgeLabels: elenco di etichette di archi in uscita distinte in questa struttura specifica.

      • edgeStructures: questo campo è presente solo quando nella richiesta è specificato mode=detailed. Contiene un elenco di strutture di archi, ognuna delle quali contiene i seguenti campi:

        • count: numero di archi con questa struttura specifica.

        • edgeProperties: elenco di proprietà di archi in questa struttura specifica.

Grafico (risposta riassuntiva per un grafico) RDF

Per un RDF grafico vuoto, la risposta riassuntiva dettagliata del grafico è la seguente:

{ "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" : [ ] } } }

Una risposta riassuntiva in un RDF grafico contiene i seguenti campi:

  • status— il codice di HTTP ritorno della richiesta. Se la richiesta è riuscita, il codice è 200.

    Per visualizzare un elenco di errori comuni, consulta Errori comuni di riepilogo del grafo.

  • payload

    • version: versione della risposta di riepilogo del grafo.

    • lastStatisticsComputationTime — Il timestamp, in formato ISO 8601, dell'ora in cui Neptune ha calcolato le statistiche per l'ultima volta.

    • graphSummary

      • numDistinctSubjects: numero di soggetti distinti nel grafo.

      • numDistinctPredicates: numero di predicati distinti nel grafo.

      • numQuads: numero di quadruple nel grafo.

      • numClasses: numero di classi nel grafo.

      • classes: elenco di classi nel grafo.

      • predicates: elenco di predicati nel grafo, insieme ai conteggi dei predicati.

      • subjectStructures: questo campo è presente solo quando nella richiesta è specificato mode=detailed. Contiene un elenco di strutture di soggetti, ognuna delle quali contiene i seguenti campi:

        • count: numero di occorrenze di questa struttura specifica.

        • predicates: elenco di predicati presenti in questa struttura specifica.

Risposta di riepilogo di un grafo di proprietà (PG) di esempio

Ecco la risposta di riepilogo dettagliata di un grafo di proprietà che contiene il set di dati delle rotte aeree di un grafo di proprietà di esempio:

{ "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" ] } ] } } }

Esempio di risposta riassuntiva grafica RDF

Ecco la risposta riassuntiva dettagliata per un RDF grafico che contiene il set di dati di esempio sulle rotte RDF aeree:

{ "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" ] } ] } } }

Utilizzo dell'autenticazione AWS Identity and Access Management (IAM) con endpoint di riepilogo grafico

Puoi accedere agli endpoint di riepilogo dei grafici in modo sicuro con IAM l'autenticazione utilizzando awscurl o qualsiasi altro strumento che funzioni con and. HTTPS IAM Per vedere come configurare le credenziali corrette, consulta Utilizzo awscurl con credenziali temporanee per connettersi in modo sicuro a un cluster DB con autenticazione abilitata IAM. Dopo aver eseguito questa operazione, è possibile effettuare richieste come questa:

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

L'IAMidentità o il ruolo che crea le credenziali temporanee deve avere una IAM politica allegata che consenta l'azione. GetGraphSummaryIAM

Consulta Errori di autenticazione IAM l'elenco degli IAM errori più comuni che potresti riscontrare.

Codici di errore comuni che possono essere restituiti da una richiesta di riepilogo del grafo

Codice di errore del servizio Neptune HTTPstato Messaggio Scenario di errore Mitigazione

AccessDeniedException

403

Token di autenticazione mancante.

La richiesta non firmata o firmata in modo errato è stata inviata al database Neptune con l'opzione abilitata. IAM

Firmare la richiesta con SigV4 prima dell'invio (vedi IAMe riepiloghi grafici).

403

Utente: (user ARN) non è autorizzato a eseguire: neptune-db: on resource: GetGraphSummary (resource ARN).

IAMla policy non consente l'azione GetGraphSummaryquando la richiesta di riepilogo del grafico è stata inviata al database Neptune con l'opzione abilitata. IAM

Assicurati che la IAM policy allegata all'utente o al ruolo che effettua la richiesta consenta l'azioneGetGraphSummary.

BadRequestException

400

Le statistiche sono disabilitate, quindi anche il riepilogo del grafo è disabilitato.

Tentativo di recuperare il riepilogo sui tipi di istanze espandibili (t3 o t4g) in cui le statistiche sono disabilitate.

Utilizzare un tipo di istanza in cui è abilitata la generazione delle statistiche (tutte le istanze supportate tranne t3 e t4g).

400

Percorso errato: /rdf/statistics/summarypathapi

Richiesta inviata a un percorso non valido.

Usare il percorso corretto per l'endpoint di riepilogo del grafo.

InvalidParameterException

400

La richiesta contiene parametri sconosciuti: '(unknown parameter or parameters)'.

Quando nella richiesta viene specificato un parametro non valido.

Utilizzare solo parametri validi (ad esempio, mode) nella richiesta.

InvalidParameterException

400

URIil parametro di query 'mode' ha un valore non supportato '(invalid value)'.

Quando il URL parametro 'mode' nella richiesta è seguito da un valore non valido.

Usa valori validi (come basic odetailed) quando specifichi il URL parametro 'mode'.

MethodNotAllowedException

405

Metodo non consentito.

Chiamare summary endpoint con qualsiasi HTTP metodo diverso da GET (come or). POST DELETE

Usa il HTTP GET metodo quando chiami summary endpoint.

StatisticsNotAvailableException

400

Le statistiche non sono ancora state calcolate, il riepilogo del grafo sarà disponibile dopo il completamento del calcolo delle statistiche.

Non ci sono statistiche disponibili quando la richiesta viene inviata all'endpoint di riepilogo.

Attendere il completamento della generazione delle statistiche. È possibile controllare lo stato della generazione delle statistiche utilizzando lo stato API delle statistiche.

400

È stato raggiunto il limite delle statistiche, quindi il riepilogo del grafo non è disponibile.

La generazione delle statistiche è stata interrotta perché ha raggiunto i limiti di dimensione delle statistiche.

Il riepilogo del grafo non è disponibile per questo grafo.

Ad esempio, se richiedi di rappresentare graficamente un endpoint di riepilogo in un database Neptune con l'IAMautenticazione abilitata e le autorizzazioni necessarie non sono presenti nella politica IAM del richiedente, otterrai una risposta simile alla seguente:

{ "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" }