Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
La API de resumen de gráficos de Neptune recupera la siguiente información sobre su gráfico:
En el caso de los gráficos de propiedades (PG), la API de resumen de gráficos devuelve una lista de solo lectura de etiquetas de nodos y bordes y claves de propiedades, junto con el recuento de nodos, bordes y propiedades.
En el caso de los gráficos del marco de descripción de recursos (RDF), la API de resumen de gráficos devuelve una lista de clases y claves de predicados de solo lectura, junto con el recuento de cuádruples, sujetos y predicados.
nota
La API de resumen de gráficos se introdujo en la versión 1.2.1.0 del motor de Neptune.
Con la API de resumen de gráficos, puede obtener rápidamente una comprensión de alto nivel del tamaño y el contenido de los datos de sus gráficos. También puede utilizar la API de forma interactiva en un cuaderno de Neptune mediante el comando mágico %summary de Neptune Workbench. En una aplicación de gráficos, la API se puede utilizar para mejorar los resultados de la búsqueda al proporcionar etiquetas de nodos o bordes descubiertos como parte de la búsqueda.
Los datos resumidos de los gráficos se extraen de las estadísticas del DFE que ha calculado el motor DFE de Neptune durante el tiempo de ejecución y están disponibles siempre que lo estén las estadísticas del DFE. Las estadísticas se habilitan de forma predeterminada cuando crea un nuevo clúster de base de datos de Neptune.
nota
La generación de estadísticas está deshabilitada en los tipos de instancias t3
y t4
(es decir, en los tipos de instancias db.t3.medium
y db.t4g.medium
) para ahorrar memoria. Como resultado, los datos resumidos de los gráficos tampoco están disponibles en esos tipos de instancias.
Puede comprobar el estado de las estadísticas del DFE mediante la API de estado de estadísticas. Mientras no se haya deshabilitado la generación automática de estadísticas, las estadísticas se actualizarán automáticamente de forma periódica.
Si quiere asegurarse de que las estadísticas estén lo más actualizadas posible cuando solicite un resumen de gráficos, puede activar manualmente una actualización de las estadísticas justo antes de recuperar el resumen. Si el gráfico está cambiando mientras se calculan las estadísticas, estas se retrasarán necesariamente un poco, pero no mucho.
Uso de la API de resumen de gráficos para recuperar información de resumen de gráficos
En el caso de un gráfico de propiedades que consulte con Gremlin u openCypher, puede recuperar un resumen de gráficos desde el punto de conexión del resumen del gráfico de propiedades. Hay un URI largo y uno corto para este punto de conexión:
https://
your-neptune-host
:port
/propertygraph/statistics/summaryhttps://
your-neptune-host
:port
/pg/statistics/summary
En el caso de un gráfico RDF que consulte mediante SPARQL, puede recuperar un resumen de gráficos desde el punto de conexión del resumen de RDF:
https://
your-neptune-host
:port
/rdf/statistics/summary
Estos puntos de conexión son de solo lectura y solo admiten una operación GET
HTTP. Si $GRAPH_SUMMARY_ENDPOINT se establece en la dirección del punto de conexión que desee consultar, puede recuperar los datos del resumen mediante curl
y GET
HTTP de la siguiente manera:
curl -G "$GRAPH_SUMMARY_ENDPOINT"
Si no hay estadísticas disponibles al intentar recuperar un resumen de gráficos, la respuesta tendrá el siguiente aspecto:
{
"detailedMessage": "Statistics are not available. Summary can only be generated after statistics are available.",
"requestId": "48c1f788-f80b-b69c-d728-3f6df579a5f6",
"code": "StatisticsNotAvailableException"
}
El parámetro de consulta de URL mode
para la API de resumen de gráficos
La API de resumen de gráficos acepta un parámetro de consulta de URL denominado mode
, que puede tomar uno de dos valores: basic
(el predeterminado) y detailed
. En el caso de un gráfico RDF, la respuesta del resumen de gráficos del modo detailed
contiene un campo subjectStructures
adicional. En el caso de un gráfico de propiedades, la respuesta de resumen de gráficos detallada contiene dos campos adicionales: nodeStructures
y edgeStructures
.
Para solicitar una respuesta resumida en el gráfico detailed
, incluya el parámetro mode
de la siguiente manera:
curl -G "$GRAPH_SUMMARY_ENDPOINT?mode=detailed"
Si el parámetro mode
no está presente, se utiliza el modo basic
de forma predeterminada, por lo que, aunque es posible especificar ?mode=basic
de forma explícita, no es necesario.
Respuesta del resumen de gráficos para un gráfico de propiedades (PG)
En el caso de un gráfico de propiedades vacío, la respuesta del resumen de gráficos detallado tiene el siguiente aspecto:
{
"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 respuesta de resumen de gráficos de propiedades (PG) tiene los siguientes campos:
-
status
: el código de retorno HTTP de la solicitud. Si la solicitud se ha realizado correctamente, el código es 200.Consulte Errores comunes del resumen de gráficos para obtener una lista de los errores comunes.
-
payload
version
: la versión de esta respuesta del resumen de gráficos.lastStatisticsComputationTime
: la marca temporal, en formato ISO 8601, de la hora en que Neptune calculó las estadísticas por última vez.-
graphSummary
numNodes
: número de nodos del gráfico.numEdges
: número de bordes del gráfico.numNodeLabels
: número de etiquetas de nodos distintas del gráfico.numEdgeLabels
: número de etiquetas de bordes distintas del gráfico.nodeLabels
: lista de etiquetas de nodos distintas del gráfico.edgeLabels
: lista de etiquetas de bordes distintas del gráfico.numNodeProperties
: número de propiedades de nodos distintas del gráfico.numEdgeProperties
: número de propiedades de bordes distintas del gráfico.nodeProperties
: lista de las propiedades de nodos distintas del gráfico, junto con el recuento de nodos en los que se utiliza cada propiedad.edgeProperties
: lista de las propiedades de bordes distintas del gráfico, junto con el recuento de bordes en los que se utiliza cada propiedad.totalNodePropertyValues
: número total de usos de todas las propiedades de los nodos.totalEdgePropertyValues
: número total de usos de todas las propiedades de los bordes.-
nodeStructures
: este campo solo está presente cuandomode=detailed
se especifica en la solicitud. Contiene una lista de estructuras de nodos, cada una de las cuales contiene los siguientes campos:count
: número de nodos que tienen esta estructura específica.nodeProperties
: lista de propiedades de los nodos presentes en esta estructura específica.distinctOutgoingEdgeLabels
: lista de las etiquetas de borde salientes distintas presentes en esta estructura específica.
-
edgeStructures
: este campo solo está presente cuandomode=detailed
se especifica en la solicitud. Contiene una lista de estructuras de borde, cada una de las cuales contiene los siguientes campos:count
: número de bordes que tienen esta estructura específica.edgeProperties
: lista de propiedades de los bordes presentes en esta estructura específica.
Respuesta de resumen de gráficos para un gráfico RDF
En el caso de un gráfico RDF vacío, la respuesta del resumen de gráficos detallado tiene el siguiente aspecto:
{
"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 respuesta de resumen de gráficos RDF tiene los siguientes campos:
-
status
: el código de retorno HTTP de la solicitud. Si la solicitud se ha realizado correctamente, el código es 200.Consulte Errores comunes del resumen de gráficos para obtener una lista de los errores comunes.
-
payload
version
: la versión de esta respuesta del resumen de gráficos.lastStatisticsComputationTime
: la marca temporal, en formato ISO 8601, de la hora en que Neptune calculó las estadísticas por última vez.-
graphSummary
numDistinctSubjects
: el número de sujetos distintos del gráfico.numDistinctPredicates
: el número de predicados distintos del gráfico.numQuads
: el número de cuádruples del gráfico.numClasses
: el número de clases del gráfico.classes
: lista de clases del gráfico.predicates
: lista de predicados del gráfico, junto con los recuentos de predicados.-
subjectStructures
: este campo solo está presente cuandomode=detailed
se especifica en la solicitud. Contiene una lista de estructuras de sujetos, cada una de las cuales contiene los siguientes campos:count
: número de apariciones de esta estructura específica.predicates
: lista de predicados presentes en esta estructura específica.
Ejemplo de respuesta del resumen de gráficos de propiedades (PG)
Esta es la respuesta de resumen detallada para un gráfico de propiedades que contiene el conjunto de datos de rutas aéreas de un gráfico de propiedades de ejemplo
{
"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"
]
}
]
}
}
}
Ejemplo de respuesta de resumen de un gráfico RDF
Este es el resumen detallado de la respuesta de un gráfico RDF que contiene el conjunto de datos de rutas aéreas RDF de ejemplo
{
"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"
]
}
]
}
}
}
Uso de la autenticación AWS Identity and Access Management (IAM) con puntos finales resumidos en gráficos
Puede acceder a los puntos de conexión de resúmenes de gráficos de forma segura con la autenticación de IAM mediante awscurl
awscurl "$GRAPH_SUMMARY_ENDPOINT" \ --region
(your region)
\ --service neptune-db
importante
La identidad o el rol de IAM que crea las credenciales temporales debe tener una política de IAM adjunta que permita la acción de IAM. GetGraphSummary
Consulte Errores de autenticación de IAM para ver una lista de los errores de IAM más comunes que puede encontrar.
Códigos de error comunes que puede devolver una solicitud de resumen de gráficos
Código de error de servicio de Neptune | Estado HTTP | Mensaje | Escenario de error | Mitigación |
---|---|---|---|---|
|
403 |
Falta token de autenticación |
Se envió una solicitud sin firmar o firmada incorrectamente a la base de datos de Neptune con la IAM habilitada. |
Firme la solicitud con SigV4 antes de enviarla (consulte IAM y resúmenes de gráficos). |
403 |
Usuario: no |
La política de IAM no permite la acción GetGraphSummarycuando la solicitud de resumen del gráfico se envió a la base de datos de Neptune con IAM habilitado. |
Asegúrese de que la política de IAM asociada al usuario o rol que realiza la solicitud permita la acción |
|
|
400 |
Las estadísticas están deshabilitadas, por lo que el resumen de gráficos también está deshabilitado. |
Intento de obtener un resumen de los tipos de instancias ampliables ( |
Use un tipo de instancia en el que la generación de estadísticas esté habilitada (todas las instancias compatibles excepto |
400 |
Ruta incorrecta: |
Solicitud enviada a una ruta no válida. |
Utilice la ruta correcta para el punto de conexión del resumen de gráficos. |
|
|
400 |
La solicitud contiene parámetros desconocidos: ' |
Cuando se especifica un parámetro no válido en la solicitud. |
Utilice únicamente parámetros válidos (por ejemplo, |
|
400 |
El parámetro de consulta URI 'mode' tiene un valor no admitido ' |
Cuando el parámetro de URL 'mode' de la solicitud va seguido de un valor no válido. |
Utilice valores válidos (como |
|
405 |
Método no permitido |
Llamada al punto de conexión del resumen con cualquier método HTTP que no sea |
Utilice el método HTTP |
|
400 |
Las estadísticas aún no se han calculado, el resumen gráfico estará disponible una vez que se realice este cálculo. |
No hay estadísticas disponibles cuando la solicitud se envía al punto de conexión del resumen. |
Espere hasta que se generen las estadísticas. Puede comprobar el estado de la generación de las estadísticas mediante la API de estado de estadísticas. |
400 |
Se ha alcanzado el límite de estadísticas, por lo que el resumen gráfico no está disponible. |
La generación de estadísticas se detuvo porque se alcanzaron los límites de tamaño de las estadísticas. |
El resumen de gráficos no está disponible en este gráfico. |
Por ejemplo, si realiza una solicitud para representar gráficamente el punto de conexión del resumen en una base de datos de Neptune que tiene habilitada la autenticación de IAM y los permisos necesarios no están presentes en la política de IAM del solicitante, obtendrá una respuesta como la siguiente:
{
"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"
}