View a markdown version of this page

Pool-Modell für RDF - AWS Präskriptive Leitlinien

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.

Pool-Modell für RDF

Das Resource Description Framework (RDF) basiert auf einem Konzept benannter Graphen, das eine logische Methode zur Trennung von Daten bietet. In Amazon Neptune haben Sie standardmäßig ein benanntes Diagramm und benutzerdefinierte benannte Diagramme. Sie können so viele benannte Diagramme erstellen, wie Sie möchten. Zusammengenommen werden sie als RDF-Datensatz bezeichnet. Alle benannten Graphen, ob Standard- oder benutzerdefinierte, werden durch einen Internationalized Resource Identifier (IRI) innerhalb des RDF-Datensatzes definiert. In Neptune werden alle Tripel als Teil des standardmäßigen benannten Graphen betrachtet, es sei denn, ein Benutzer hat beim Schreiben von Daten ein benanntes Diagramm deklariert.

Es gibt mehrere Anwendungsfälle für benannte Graphen:

  • Datenpartitionierung und Datenisolierung

  • Herkunft der Daten

  • Versionsverwaltung

  • Inferenz

Dieser Leitfaden konzentriert sich auf den Anwendungsfall der Datenpartitionierung. Wir empfehlen, für jeden Mandanten ein benutzerdefiniertes benanntes Diagramm zu erstellen.

SPARQL-Abfrageoptionen unter Verwendung des Graph Store HTTP-Protokolls

Die folgenden Beispielabfragen verwenden das SPARQL-Protokoll und die RDF Query Language (SPARQL) sowie das Graph Store HTTP-Protokoll, um ein benanntes Diagramm für einen Mandanten abzufragen oder zu erstellen.

  • HTTP GET‒ So rufen Sie ein bestimmtes Diagramm eines Mandanten ab:

    curl --request GET 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'
  • HTTP PUT‒ Um ein bestimmtes benanntes Diagramm zu erstellen oder durch eine in der Anfrage angegebene Nutzlast zu ersetzen:

    curl --request PUT -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'

    In RDF ist ein Objekt ein Tripel.

  • HTTP POST‒ Um ein neues benanntes Diagramm zu erstellen, falls es noch keines gibt, oder um es mit einem vorhandenen Diagramm zusammenzuführen:

    curl --request POST -H "Content-Type: text/turtle" \ --data-raw "@prefix ex: http://example.com/ . ex:subject ex:predicate ex:object ." \ 'https://your-neptune-endpoint:port/sparql/gsp/?graph=http%3A//www.example.com/named/tenant1'

Mandantenisolierung für RDF

Für die logische Isolierung von Daten mit den erforderlichen Leitplanken auf der Anwendungsebene erstellen Sie eine Zuordnung zwischen dem Mandanten und benutzerdefinierten benannten Graphen. Wenn Sie die Mehrmandantenfähigkeit für einen RDF-Datensatz entwerfen, sollten Sie die folgenden Aspekte von RDF und SPARQL berücksichtigen:

  • Wenn Sie in Neptune eine Abfrage durchführen, ohne ein benanntes Diagramm anzugeben, werden alle Tripel abgerufen, die dem Muster in allen benannten Graphen in der Datenbank entsprechen.

  • In RDF gibt es keine Einschränkungen in Bezug auf Verbindungen zwischen Knoten verschiedener benannter Graphen. Im vorherigen Diagramm :G1 kann beispielsweise ein Knoten in mit einem Knoten in: G2 durch eine Kante verbunden werden.

Wenn beispielsweise ein Endbenutzer eines bestimmten Mandanten eine Anfrage an die API sendet, sollte die API die folgenden Anforderungen überprüfen, bevor sie die Anfrage an die Neptune-Datenbank sendet:

  • Jede Abfrage, die sich auf einen einzelnen Mandanten bezieht, muss ein benanntes Diagramm angeben. Andernfalls besteht die Gefahr, dass Daten zwischen Mandanten weitergegeben werden.

  • Bei Aktualisierungs- oder Löschabfragen sollte immer ein benanntes Diagramm angegeben werden.

  • Knoten auf beiden Seiten einer Kante oder Beziehung sollten immer zum richtigen benannten Diagramm gehören.

Weitere Informationen zu bewährten Methoden finden Sie in der Neptune-Dokumentation.