View a markdown version of this page

Consultas federadas SPARQL 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á.

Consultas federadas SPARQL no Neptune usando a extensão SERVICE

O Amazon Neptune é totalmente compatível com a extensão de consultas federadas do SPARQL que usa a palavra-chave SERVICE. (Para obter mais informações, consulte SPARQL 1.1 Federated Query.)

A palavra-chave SERVICE instrui o mecanismo de consulta do SPARQL a executar uma parte da consulta em um endpoint remoto do SPARQL e compor o resultado da consulta final. 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 consultas federadas em endpoints SPARQL acessíveis em sua nuvem privada virtual (VPC). No entanto, também é possível usar um proxy reverso na VPC para tornar uma fonte de dados externa acessível dentro da VPC.

nota

Quando o SERVICE do SPARQL é usado para federar uma consulta em dois ou mais clusters do Neptune na mesma VPC, os grupos de segurança devem ser configurados para permitir que todos esses clusters do Neptune se comuniquem uns com os outros.

Importante

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

Exemplo de consulta federada do Neptune

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

Suponha que um cliente envie a seguinte consulta para Neptune-1athttp://neptune-1:8182/sparql.

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

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

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

Esse fluxo é mostrado no diagrama a seguir.

Diagrama do fluxo que mostra os padrões de consulta federada do SPARQL sendo avaliados e as 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

O 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. Neptune-1chamadas Neptune-2com as mesmas credenciais com as quais foram chamadas.

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

  • Se Neptune-1e Neptune-2ambos exigirem autenticação e autorização do IAM, você precisará anexar permissões do IAM 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. Cross-region and/or Atualmente, não há suporte para arquiteturas de consulta federada entre contas.

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