Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
SPARQLföderierte Abfragen in Neptune mit der Erweiterung SERVICE
Amazon Neptune unterstützt die Erweiterung für SPARQL Verbundabfragen, die das Schlüsselwort verwendet, vollständig. SERVICE
(Weitere Informationen finden Sie unter SPARQL1.1 Federated
Anmerkung
Dieses Feature ist ab Release 1.0.1.0.200463.0 (15.10.2019) verfügbar.
Das SERVICE
Schlüsselwort weist die SPARQL Abfrage-Engine an, einen Teil der Abfrage an einem SPARQL Remote-Endpunkt auszuführen und das endgültige Abfrageergebnis zu erstellen. Es sind nur READ
-Operationen möglich. Die Operationen WRITE
und DELETE
werden nicht unterstützt. Neptune kann nur föderierte Abfragen an SPARQL Endpunkten ausführen, auf die innerhalb seiner Virtual Private Cloud () zugegriffen werden kann. VPC Sie können jedoch auch einen Reverse-Proxy verwenden, VPC um den Zugriff auf eine externe Datenquelle innerhalb von zu ermöglichen. VPC
Anmerkung
Wenn SPARQL SERVICE
es verwendet wird, um eine Abfrage mit zwei oder mehr Neptun-Clustern in demselben zu verbindenVPC, müssen die Sicherheitsgruppen so konfiguriert werden, dass all diese Neptun-Cluster miteinander kommunizieren können.
Wichtig
SPARQL1.1 Federation stellt in Ihrem Namen Serviceanfragen, wenn Abfragen und Parameter an externe Endpunkte weitergegeben werden. SPARQL Es liegt in Ihrer Verantwortung, zu überprüfen, ob die externen SPARQL Endgeräte die Datenverarbeitungs- und Sicherheitsanforderungen Ihrer Anwendung erfüllen.
Beispiel für eine Neptune-Verbundabfrage
Das folgende einfache Beispiel zeigt, wie SPARQL Verbundabfragen funktionieren.
Angenommen, ein Kunde sendet die folgende Abfrage an Neptune-1 unter http://neptune-1:8182/sparql
.
SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
Neptune-1 wertet das erste Abfragemuster (Q-1) aus, d. h.
?person rdf:type foaf:Person
, verwendet die Ergebnisse zum Auflösen von?person
in Q-2 (?person foaf:knows ?friend
) und übergibt das resultierende Muster an Neptune-2 unterhttp://neptune-2:8182/sparql
.Neptune-2 wertet Q-2 aus und sendet die Ergebnisse zurück an Neptune-1.
Neptune-1 verbindet die Lösungen für beide Muster und sendet die Ergebnisse an den Kunden zurück.
Dies wird im folgenden Diagramm illustriert:
Anmerkung
Standardmäßig legt der Optimierer den Punkt in der Abfrageausführung fest, an dem die Anweisung SERVICE
ausgeführt wird. Sie können diese Platzierung mittels des Abfragehinweises joinOrder überschreiben.
Zugriffskontrolle für Verbundabfragen in Neptune
Neptune verwendet AWS Identity and Access Management (IAM) zur Authentifizierung und Autorisierung. Die Zugriffskontrolle für eine Verbundabfrage kann mehr als eine Neptune-DB-Instance umfassen. Diese Instances haben möglicherweise unterschiedliche Anforderungen für die Zugriffskontrolle. Unter bestimmten Umständen kann dies Ihre Fähigkeit zum Erstellen einer Verbundabfrage einschränken.
Betrachten Sie das einfache Beispiel im vorherigen Abschnitt. Neptune-1 ruft Neptune-2 mit denselben Anmeldeinformationen auf, mit denen es aufgerufen wurde.
Wenn Neptun-1 IAM Authentifizierung und Autorisierung erfordert, Neptun-2 jedoch nicht, benötigen Sie lediglich die entsprechenden IAM Berechtigungen für Neptun-1, um die föderierte Abfrage durchzuführen.
Wenn sowohl Neptun-1 als auch Neptun-2 IAM Authentifizierung und Autorisierung erfordern, müssen Sie IAM Berechtigungen für beide Datenbanken anhängen, um die Verbundabfrage durchzuführen. Beide Cluster müssen sich außerdem im selben Konto und in derselben Region befinden. AWS Regions- und/oder kontenübergreifende Verbundabfragearchitekturen werden derzeit nicht unterstützt.
In dem Fall, dass Neptun-1 nicht IAM aktiviert ist, Neptun-2 jedoch, können Sie keine Verbundabfrage durchführen. Der Grund dafür ist, dass Neptun-1 Ihre IAM Anmeldeinformationen nicht abrufen und an Neptun-2 weitergeben kann, um den zweiten Teil der Abfrage zu autorisieren.