As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Modelo de piscina para RDF
O Resource Description Framework (RDF) tem um conceito de gráficos nomeados, que fornece uma maneira lógica de separar dados. No Amazon Neptune, você tem um gráfico nomeado padrão e gráficos nomeados definidos pelo usuário. Você pode criar quantos gráficos nomeados quiser. Coletivamente, eles são chamados de conjunto de dados RDF. Todos os gráficos nomeados, padrão ou definidos pelo usuário, são definidos por um Identificador de Recursos Internacionalizado (IRI) dentro do conjunto de dados RDF. Em Neptune, a menos que um usuário tenha declarado um gráfico nomeado ao gravar dados, todos os
Há vários casos de uso para gráficos nomeados:
-
Particionamento e isolamento de dados
-
Proveniência dos dados
-
Versionamento
-
Inferência
Este guia se concentra no caso de uso do particionamento de dados. Recomendamos criar um gráfico nomeado definido pelo usuário para cada inquilino.
Opções de consulta SPARQL usando o protocolo HTTP do Graph Store
As consultas de exemplo a seguir usam o Protocolo SPARQL e a Linguagem de Consulta RDF (SPARQL) e o Protocolo HTTP do Graph Store para consultar ou criar um gráfico nomeado para um inquilino.
-
HTTP GET‒ Para recuperar um gráfico específico de um inquilino:curl --request GET 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1' -
HTTP PUT‒ Para criar ou substituir um gráfico nomeado específico por uma carga especificada na solicitação: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'Em RDF, um objeto é triplo.
-
HTTP POST‒ Para criar um novo gráfico nomeado, se não existir, ou mesclar com um gráfico 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'
Isolamento de inquilinos para RDF
Para o isolamento lógico dos dados com as proteções necessárias na camada do aplicativo, crie um mapeamento entre o locatário e os gráficos nomeados definidos pelo usuário. Ao projetar a multilocação para um conjunto de dados RDF, esteja ciente dos seguintes aspectos do RDF e do SPARQL:
-
Em Neptune, quando você consulta sem especificar um gráfico nomeado, ele recupera todas as triplas que correspondem ao padrão em todos os gráficos nomeados no banco de dados.
-
No RDF, não há restrições em relação às conexões entre nós de gráficos com nomes diferentes. Por exemplo, no diagrama anterior, um nó em
:G1pode ser conectado a um nó em:G2por meio de uma borda.
Por exemplo, se um usuário final de um determinado locatário enviar uma consulta à API, a API deverá validar os seguintes requisitos antes de enviar a consulta ao banco de dados Neptune:
-
Qualquer consulta com escopo em um único inquilino deve especificar um gráfico nomeado. Caso contrário, você corre o risco de vazar dados entre os inquilinos.
-
As consultas de atualização ou exclusão devem sempre especificar um gráfico nomeado.
-
Os nós em cada lado de uma borda ou relacionamento devem sempre pertencer ao gráfico nomeado correto.
Para obter informações adicionais sobre as melhores práticas, consulte a documentação do Neptune.