Requêtes fédérées SPARQL dans Neptune à l'aide deSERVICEextension - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Requêtes fédérées SPARQL dans Neptune à l'aide deSERVICEextension

Amazon Neptune prend entièrement en charge l'extension de requête fédérée SPARQL qui utiliseSERVICEMot-clé. (Pour de plus amples informations, veuillez consulter Requête fédérée SPARQL 1.1.)

Note

Cette fonction est disponible à partir deVersion 1.0.1.0.200463.0 (2019-10-15).

Le mot-clé SERVICE indique au moteur de requête SPARQL qu'il doit exécuter une partie de la requête sur un point de terminaison SPARQL distant et composer le résultat de la requête finale. OnlyREADdes opérations sont possibles.WRITEetDELETEles opérations ne sont pas prises en charge Neptune ne peut exécuter des requêtes fédérées que sur des points de terminaison SPARQL accessibles au sein de son cloud privé virtuel (VPC). Toutefois, vous pouvez également utiliser un proxy inverse dans le VPC pour rendre une source de données externe accessible au sein du VPC.

Note

Lorsque SPARQLSERVICEest utilisé pour fédérer une requête vers deux clusters Neptune ou plus dans le même VPC. Les groupes de sécurité doivent être configurés pour permettre à tous ces clusters Neptune de communiquer entre eux.

Important

La fonction SPARQL 1.1 Federation effectue des demandes de service en votre nom lorsqu'elle transmet des requêtes et des paramètres à des points de terminaison SPARQL externes. Il vous incombe de vérifier que les points de terminaison SPARQL externes répondent aux exigences de sécurité et de gestion des données de votre application.

Exemple de requête fédérée Neptune

L'exemple simple suivant montre le fonctionnement des requêtes fédérées SPARQL.

Supposons qu'un client envoie la requête suivante àNeptuneàhttp://neptune-1:8182/sparql.

SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
  1. Neptuneévalue le premier modèle de requête (Q-1) qui est?person rdf:type foaf:Person, utilise les résultats pour résoudre?persondansQ-2(?person foaf:knows ?friend), et transmet le modèle obtenu àNeptuneàhttp://neptune-2:8182/sparql.

  2. NeptuneévalueQ-2et renvoie les résultats àNeptune.

  3. Neptunejoint les solutions pour les deux modèles et renvoie les résultats au client.

Ce flux est illustré dans le diagramme suivant.


        Diagramme de flux illustrant les modèles de requêtes fédérées SPARQL évalués et les réponses renvoyées au client.
Note

« Par défaut, l'optimiseur détermine à quel moment de l'exécution de la requête queSERVICEl'instruction est exécutée. Vous pouvez remplacer ce placement à l'aide dujoinOrderIndicateurs de requête.

Contrôle d'accès pour les requêtes fédérées dans Neptune

Neptune utiliseAWS Identity and Access Management(IAM) pour l'authentification et l'autorisation. Le contrôle d'accès pour une requête fédérée peut impliquer plusieurs instances de base de données Neptune. Ces instances peuvent avoir des exigences différentes pour le contrôle d'accès. Dans certaines circonstances, cela peut limiter votre capacité à effectuer une requête fédérée.

Prenons l'exemple simple présenté dans la section précédente. NeptuneappelsNeptuneavec les mêmes informations d'identification avec lesquelles il a été appelé.

  • SiNeptunenécessite une authentification et une autorisation IAM, maisNeptunene fonctionne pas, vous n'avez besoin que des autorisations IAM appropriées pourNeptunepour créer la requête fédérée.

  • SiNeptuneetNeptuneles deux nécessitent une authentification et une autorisation IAM, vous devez associer des autorisations IAM pour les deux bases de données afin de créer la requête fédérée.

  • Toutefois, dans le cas oùNeptunen'est pas compatible avec IAM maisNeptunec'est que vous ne pouvez pas créer de requête fédérée. La raison en est queNeptuneImpossible de récupérer vos informations d'identification IAM et de les transmettre àNeptunepour autoriser la deuxième partie de la requête.