

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
<a name="neptune-graph-summary"></a>

L'API di riepilogo del grafo di Neptune recupera le seguenti informazioni sul grafo:
+ Per i grafi di proprietà (PG), l'API di riepilogo del grafo restituisce un elenco di sola lettura di etichette di nodi ed archi, nonché di chiavi di proprietà, insieme al conteggio di nodi, archi e proprietà.
+ Per i grafi RDF (Resource Description Framework), l'API di riepilogo del grafo restituisce un elenco di sola lettura di classi e chiavi di predicato, insieme al conteggio di quadruple, soggetti e predicati.

**Nota**  
L'API di riepilogo del grafo è stata introdotta nel [rilascio 1.2.1.0 del motore](engine-releases-1.2.1.0.md) Neptune.

Con l'API di riepilogo del grafo, è possibile acquisire rapidamente una comprensione di alto livello della dimensione e del contenuto dei dati del grafo. È inoltre possibile utilizzare l'API in modo interattivo all'interno di un notebook Neptune utilizzando il comando magic [`%summary`](notebooks-magics.md#notebooks-line-magics-summary) di Neptune Workbench. In un'applicazione a grafo, l'API può essere utilizzata per migliorare i risultati della ricerca fornendo le etichette dei nodi o degli archi individuati come parte della ricerca.

I dati di riepilogo del grafo sono ricavati dalle [statistiche DFE](neptune-dfe-statistics.md) calcolate dal [motore DFE Neptune](neptune-dfe-engine.md) durante il runtime e sono disponibili ogni volta che sono disponibili le statistiche DFE. 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 statistiche DFE utilizzando l'[API di stato delle statistiche](neptune-dfe-statistics.md#neptune-dfe-statistics-status). Finché la generazione automatica delle statistiche non viene [disabilitata](neptune-dfe-statistics.md#neptune-dfe-statistics-auto-disable), 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](neptune-dfe-statistics.md#neptune-dfe-statistics-manual) 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 dell'API di riepilogo del grafo per recuperare le informazioni di riepilogo del grafo
<a name="neptune-graph-summary-retrieving"></a>

Per un grafo di proprietà su cui si esegue una query utilizzando Gremlin o openCypher, è possibile recuperare un riepilogo del grafo dall'endpoint di riepilogo del grafo di proprietà. Per questo endpoint esiste un URI lungo e uno breve:
+ `https://your-neptune-host:port/propertygraph/statistics/summary`
+ `https://your-neptune-host:port/pg/statistics/summary`

Per un grafo RDF su cui si esegue una query utilizzando SPARQL, è possibile recuperare un riepilogo del grafo dall'endpoint di riepilogo RDF:
+ `https://your-neptune-host:port/rdf/statistics/summary`

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

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

## Parametro di query dell'URL `mode` per l'API di riepilogo del grafo
<a name="neptune-graph-summary-mode"></a>

L'API di riepilogo del grafo accetta un parametro di query dell'URL denominato`mode`, che può assumere uno di due valori, vale a dire `basic` (impostazione predefinita) e `detailed`. Per un grafo RDF, la risposta di riepilogo del grafo in modalità `detailed` contiene un campo aggiuntivo `subjectStructures`. 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 `mode`come 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)
<a name="neptune-graph-summary-pg-response"></a>

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`**: codice HTTP restituito della richiesta. Se la richiesta è riuscita, il codice è 200.

  Per visualizzare un elenco di errori comuni, consulta [Errori comuni di riepilogo del grafo](#neptune-graph-summary-errors).
+ **`payload`**
  + **`version`**: versione della risposta di riepilogo del grafo.
  + **`lastStatisticsComputationTime `**: timestamp, in formato ISO 8601, dell'ora in cui Neptune ha calcolato le [statistiche](neptune-dfe-statistics.md) 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.

## Risposta di riepilogo di un grafo RDF
<a name="neptune-graph-summary-rdf-response"></a>

Per un grafo RDF vuoto, la risposta di riepilogo dettagliata del grafo è 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 di riepilogo del grafo RDF contiene i seguenti campi:
+ **`status`**: codice HTTP restituito della richiesta. Se la richiesta è riuscita, il codice è 200.

  Per visualizzare un elenco di errori comuni, consulta [Errori comuni di riepilogo del grafo](#neptune-graph-summary-errors).
+ **`payload`**
  + **`version`**: versione della risposta di riepilogo del grafo.
  + **`lastStatisticsComputationTime `**: timestamp, in formato ISO 8601, dell'ora in cui Neptune ha calcolato le [statistiche](neptune-dfe-statistics.md) 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
<a name="neptune-graph-summary-sample-pg-response"></a>

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](https://github.com/aws/graph-notebook/tree/main/src/graph_notebook/seed/queries/propertygraph/gremlin/airports):

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

## Risposta di riepilogo di un grafo RDF di esempio
<a name="neptune-graph-summary-sample-rdf-response"></a>

Ecco la risposta di riepilogo dettagliata di un grafo RDF che contiene il [set di dati delle rotte aeree di un grafo RDF di esempio](https://github.com/aws/graph-notebook/tree/main/src/graph_notebook/seed/queries/rdf/sparql/airports):

```
{
  "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
<a name="neptune-graph-summary-iam"></a>

È possibile accedere agli endpoint di riepilogo del grafo in modo sicuro con l'autenticazione IAM utilizzando [awscurl](https://github.com/okigan/awscurl) o qualsiasi altro strumento che funzioni con HTTPS e IAM. Per vedere come configurare le credenziali corrette, consulta [Utilizzo di `awscurl` con credenziali temporanee per connettersi in modo sicuro a un cluster database con autenticazione IAM abilitata](iam-auth-connect-command-line.md#iam-auth-connect-awscurl). Dopo aver eseguito questa operazione, è possibile effettuare richieste come questa:

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

**Importante**  
L'identità o il ruolo IAM che crea le credenziali temporanee deve avere una policy IAM allegata che consenta l'azione [GetGraphSummary](iam-dp-actions.md#getgraphsummary)IAM.

Per un elenco di errori IAM comuni che si possono riscontrare, consulta [Errori di autenticazione IAM](errors-engine-codes.md#errors-iam-auth).

## Codici di errore comuni che possono essere restituiti da una richiesta di riepilogo del grafo
<a name="neptune-graph-summary-errors"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/neptune/latest/userguide/neptune-graph-summary.html)

Ad esempio, se si effettua una richiesta all'endpoint di riepilogo del grafo in un database Neptune con l'autenticazione IAM abilitata e le autorizzazioni necessarie non sono presenti nella policy IAM del richiedente, si otterrà 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"
}
```