SPARQLconsultas federadas no Neptune usando a extensão SERVICE - Amazon Neptune

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á.

SPARQLconsultas federadas no Neptune usando a extensão SERVICE

O Amazon Neptune oferece suporte total à extensão de consulta federada SPARQL que usa a palavra-chave. SERVICE (Para obter mais informações, consulte SPARQL1.1 Federated Query.)

nota

Esse atributo está disponível a partir da Versão 1.0.1.0.200463.0 (15/10/2019).

A SERVICE palavra-chave instrui o mecanismo de SPARQL consulta a executar uma parte da consulta em um SPARQL endpoint remoto e compor o resultado final da consulta. Somente operações READ são possíveis. As operações WRITE e DELETE não são compatíveis. O Neptune só pode executar SPARQL consultas federadas em endpoints acessíveis em sua nuvem privada virtual (). VPC No entanto, você também pode usar um proxy reverso no VPC para tornar uma fonte de dados externa acessível dentro doVPC.

nota

Quando SPARQL SERVICE é usado para federar uma consulta para dois ou mais clusters do Neptune no VPC mesmo, os grupos de segurança devem ser configurados para permitir que todos esses clusters do Neptune se comuniquem entre si.

Importante

SPARQL1.1 A federação faz solicitações de serviço em seu nome ao passar consultas e parâmetros para SPARQL endpoints externos. É sua responsabilidade verificar se os SPARQL endpoints externos atendem aos requisitos de segurança e manuseio de dados do seu aplicativo.

Exemplo de consulta federada do Neptune

O exemplo simples a seguir mostra como as consultas SPARQL federadas funcionam.

Suponha que um cliente envie a seguinte consulta ao Neptune-1 em http://neptune-1:8182/sparql.

SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
  1. O Neptune-1 avalia o primeiro padrão de consulta (Q-1) que é ?person rdf:type foaf:Person, usa os resultados para resolver ?person em Q-2 (?person foaf:knows ?friend) e encaminha o padrão resultante para o Neptune-2 em http://neptune-2:8182/sparql.

  2. O Neptune-2 avalia Q-2 e envia os resultados de volta ao Neptune-1.

  3. Neptune-1 une as soluções dos dois padrões e envia os resultados de volta ao cliente.

Esse fluxo é mostrado no diagrama a seguir.

Diagrama de fluxo mostrando padrões de consulta SPARQL federados sendo avaliados e respostas enviadas de volta ao cliente.
nota

“Por padrão, o otimizador determina em que ponto da execução da consulta a instrução SERVICE é executada. É possível substituir esse posicionamento usando a dica de consulta joinOrder.

Controle de acesso de consultas federadas no Neptune

Neptune AWS Identity and Access Management usa IAM () para autenticação e autorização. O controle de acesso de uma consulta federada pode envolver mais de uma instância de banco de dados do Neptune. Essas instâncias podem ter requisitos diferentes de controle de acesso. Em determinadas circunstâncias, isso pode limitar sua capacidade de fazer uma consulta federada.

Considere o exemplo simples apresentado na seção anterior. O Neptune-1 chama o Neptune-2 com as mesmas credenciais com as quais ele foi chamado.

  • Se o Neptune-1 exigir IAM autenticação e autorização, mas o Neptune-2 não, tudo o que você precisa é de IAM permissões apropriadas para o Neptune-1 fazer a consulta federada.

  • Se o Neptune-1 e o Neptune-2 exigirem IAM autenticação e autorização, você precisará anexar IAM permissões aos dois bancos de dados para fazer a consulta federada. Os dois clusters também devem estar na mesma AWS conta e na mesma região. Atualmente, não há suporte para arquiteturas de consulta federada entre regiões e/ou entre contas.

  • No entanto, no caso em que o Neptune-1 não está IAM habilitado, mas o Neptune-2 está, você não pode fazer uma consulta federada. O motivo é que o Neptune-1 não consegue recuperar suas IAM credenciais e passá-las para o Neptune-2 para autorizar a segunda parte da consulta.