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.
Modelo de piscina para RDF
El marco de descripción de recursos (RDF) tiene un concepto de gráficos con nombre, que proporciona una forma lógica de separar los datos. En Amazon Neptune, tiene un gráfico con nombre predeterminado y gráficos con nombre definidos por el usuario. Puede crear tantos gráficos con nombre como desee. En conjunto, se denominan conjunto de datos RDF. Todos los gráficos con nombre, predeterminados o definidos por el usuario, se definen mediante un identificador de recursos internacionalizado (IRI) dentro del conjunto de datos RDF. En Neptune, a menos que un usuario haya declarado un gráfico con nombre al escribir datos, todos los triples
Existen varios casos de uso para los gráficos con nombre asignado:
-
Particionamiento y aislamiento de datos
-
Procedencia de los datos
-
Control de versiones
-
Inferencia
Esta guía se centra en el caso de uso de la partición de datos. Recomendamos crear un gráfico con nombre definido por el usuario para cada inquilino.
Opciones de consulta de SPARQL mediante el protocolo HTTP Graph Store
Las consultas de ejemplo siguientes utilizan el protocolo SPARQL, el lenguaje de consulta RDF (SPARQL) y el protocolo HTTP Graph Store para consultar o crear un gráfico con nombre para un inquilino.
-
HTTP GET‒ Para recuperar un gráfico específico de un inquilino:curl --request GET 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1' -
HTTP PUT‒ Para crear o sustituir un gráfico con nombre específico por una carga útil especificada en la solicitud:curl --request PUT -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'En RDF, un objeto es un triple.
-
HTTP POST‒ Para crear una nueva gráfica con nombre si no existe ninguna, o para fusionarla con una gráfica existente:curl --request POST -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'
Aislamiento de inquilinos para RDF
Para el aislamiento lógico de los datos con las barandillas necesarias en la capa de aplicación, cree un mapeo entre el inquilino y los gráficos con nombre definidos por el usuario. Cuando diseñe la multitenencia para un conjunto de datos RDF, tenga en cuenta los siguientes aspectos de RDF y SPARQL:
-
En Neptune, cuando se consulta sin especificar un gráfico con nombre, se recuperan todos los triples que coinciden con el patrón en todos los gráficos con nombre asignado de la base de datos.
-
En RDF, no hay restricciones en cuanto a las conexiones entre los nodos de gráficos con distintos nombres. Por ejemplo, en el diagrama anterior, un nodo en se
:G1puede conectar a un nodo en: aG2través de un borde.
Por ejemplo, si un usuario final de un arrendatario concreto envía una consulta a la API, la API debe validar los siguientes requisitos antes de enviar la consulta a la base de datos de Neptune:
-
Cualquier consulta dirigida a un único inquilino debe especificar un gráfico con nombre. De lo contrario, corre el riesgo de filtrar datos entre los inquilinos.
-
Las consultas de actualización o eliminación siempre deben especificar un gráfico con nombre.
-
Los nodos situados a ambos lados de una arista o relación siempre deben pertenecer al gráfico con el nombre correcto.
Para obtener información adicional sobre las prácticas recomendadas, consulte la documentación de Neptune.