View a markdown version of this page

SPARQL-Verbundabfragen in Neptune mit der SERVICE-Erweiterung - Amazon Neptune

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.

SPARQL-Verbundabfragen in Neptune mit der SERVICE-Erweiterung

Amazon Neptune unterstützt die SPARQL-Verbundabfrageerweiterung vollständig, die das Schlüsselwort SERVICE verwendet. (Weitere Informationen finden Sie unter SPARQL 1.1-Verbundabfrage.)

Das SERVICE-Schlüsselwort weist die SPARQL-Abfrage-Engine an, einen Teil der Abfrage für einen Remote-SPARQL-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 Verbundabfragen nur für SPARQL-Endpunkte ausführen, auf die in dessen Virtual Private Cloud (VPC) zugegriffen werden kann. Sie können jedoch auch einen Reverse-Proxy in der VPC verwenden, damit auf eine externe Datenquelle innerhalb der VPC zugegriffen werden kann.

Anmerkung

Wenn SPARQL SERVICE für die Verbindung einer Abfrage mit zwei oder mehr Neptune-Clustern in derselben VPC verwendet wird, müssen die Sicherheitsgruppen so konfiguriert werden, dass alle diese Neptune-Cluster miteinander kommunizieren können.

Wichtig

SPARQL 1.1 Federation sendet Serviceanfragen in Ihrem Namen, wenn Abfragen und Parameter an externe SPARQL-Endpunkte übergeben werden. Es liegt in Ihrer Verantwortung, zu überprüfen, ob die externen SPARQL-Endpunkte 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 Anfrage an: Neptune-1http://neptune-1:8182/sparql

SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
  1. Neptune-1wertet das erste Abfragemuster (Q-1) aus?person rdf:type foaf:Person, verwendet die Ergebnisse zur Auflösung von ?person in Q-2(?person foaf:knows ?friend) und leitet das resultierende Muster an Neptune-2at weiter. http://neptune-2:8182/sparql

  2. Neptune-2wertet die Ergebnisse aus Q-2und sendet sie zurück an. Neptune-1

  3. Neptune-1verbindet die Lösungen für beide Muster und sendet die Ergebnisse an den Kunden zurück.

Dies wird im folgenden Diagramm illustriert:

Flussdiagramm mit ausgewerteten SPARQL-Verbundabfragemustern und zurückgesendeten Antworten an den Client.
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) für die 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 aus dem vorherigen Abschnitt. Neptune-1ruft Neptune-2mit denselben Anmeldeinformationen auf, mit denen sie aufgerufen wurden.

  • Wenn Neptune-1eine IAM-Authentifizierung und -Autorisierung erforderlich ist, Neptune-2dies aber nicht der Fall ist, benötigen Sie lediglich die entsprechenden IAM-Berechtigungen, Neptune-1um die Verbundabfrage durchzuführen.

  • Wenn Neptune-2beide eine IAM-Authentifizierung Neptune-1und -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 AWS Konto und in derselben Region befinden. Cross-region and/or Kontenübergreifende Verbundabfragearchitekturen werden derzeit nicht unterstützt.

  • In dem Fall, wo Neptune-1es nicht ist, IAM-enabled aber Neptune-2ist, können Sie jedoch keine Verbundabfrage stellen. Der Grund dafür ist, dass Neptune-1Sie Ihre IAM-Anmeldeinformationen nicht abrufen und an die Autorisierung des zweiten Teils der Abfrage weitergeben können. Neptune-2