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.
Verwenden von SPARQL UPDATE UNLOAD zum Löschen von Daten aus Neptune
Neptune stellt auch eine benutzerdefinierte SPARQL-Operation (UNLOAD
) zum Entfernen von Daten bereit, die in einer Remote-Quelle angegeben sind. UNLOAD
kann als Gegenstück zur Operation LOAD
betrachtet werden. Die Syntax ist wie folgt:
Anmerkung
Dieses Feature ist ab Version 1.0.4.1 der Neptune-Engine verfügbar.
UNLOAD SILENT
(URL of the remote data to be unloaded)
FROM GRAPH(named graph from which to remove the data)
-
SILENT
– (Optional) Bewirkt, dass die Operation auch dann erfolgreich ist, wenn bei der Verarbeitung der Daten ein Fehler aufgetreten ist.Dies kann nützlich sein, wenn eine einzelne Transaktion mehrere Anweisungen enthält, z. B.
"LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;"
, und die Transaktion abgeschlossen werden soll, auch wenn einige der entfernten Daten nicht verarbeitet werden konnten. -
URL of the remote data to be unloaded
— (Erforderlich) Gibt eine entfernte Datendatei an, die Daten enthält, die aus einem Diagramm entladen werden sollen.Die Remote-Datei muss eine der folgenden Erweiterungen haben (dies sind dieselben Formate, die UPDATE-LOAD unterstützt):
.nt
für NTriples..nq
für NQuads..trig
für Trig..rdf
für RDF/XML..ttl
für Turtle..n3
für N3..jsonld
für JSON-LD.
Alle Daten, die diese Datei enthält, werden durch die Operation
UNLOAD
aus Ihrem DB-Cluster entfernt.Jede Amazon-S3-Authentifizierung muss in der URL enthalten sein, damit die Daten entladen werden können. Sie können eine Amazon-S3-Datei vorsignieren und dann über die resultierende URL sicher auf sie zugreifen. Zum Beispiel:
aws s3 presign --expires-in
(number of seconds)
s3://(bucket name)
/(path to file of data to unload)
Dann:
curl https://
(a Neptune endpoint URL)
:8182/sparql \ --data-urlencode 'update=unload(pre-signed URL of the remote Amazon S3 data to be unloaded)
\ from graph(named graph)
'Weitere Informationen finden Sie auf der Seite zum Thema Authentifizieren von Anforderungen: Verwenden von Abfrageparametern.
-
FROM GRAPH
(named graph from which to remove the data)
— (Optional) Gibt den benannten Graphen an, aus dem die entfernten Daten entladen werden sollen.Neptune ordnet jedem Triple ein benanntes Diagramm zu. Sie können das benannte Standarddiagramm mithilfe des Fallback-URI (
http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
) für das benannte Diagramm wie folgt angeben:FROM GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>
Auf die gleiche Weise, wie LOAD
INSERT DATA
{
entspricht, entspricht (inline data)
}UNLOAD
DELETE DATA {
. Wie (inline data)
}DELETE DATA
, funktioniert UNLOAD
nicht für Daten, die leere Knoten enthalten.
Wenn ein lokaler Webserver beispielsweise eine Datei mit dem Namen data.nt
bereitstellt, die die folgenden 2 Tripel enthält:
<http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> .
Der folgende Befehl UNLOAD
würde diese beiden Tripel aus dem benannten Diagramm (<http://example.org/graph1>
) löschen.
UNLOAD <http://localhost:80/data.nt> FROM GRAPH <http://example.org/graph1>
Dies hätte den gleichen Effekt wie die Verwendung des folgenden Befehls DELETE DATA
:
DELETE DATA { GRAPH <http://example.org/graph1> { <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> . } }
Ausnahmen, die durch den Befehl UNLOAD
ausgelöst werden
-
InvalidParameterException
– Die Daten enthielten leere Knoten. HTTP-Status: 400 – Ungültige Anforderung.Meldung:
Blank nodes are not allowed for UNLOAD
-
InvalidParameterException
– Die Daten enthielten eine fehlerhafte Syntax. HTTP-Status: 400 – Ungültige Anforderung.Meldung:
Invalid syntax in the specified file.
-
UnloadUrlAccessDeniedException
– Zugriff wurde abgelehnt. HTTP-Status: 400 – Ungültige Anforderung.Meldung:
Update failure: Endpoint
(Neptune endpoint)
reported access denied error. Please verify access. -
BadRequestException
– Die Remote-Daten können nicht abgerufen werden. HTTP-Status: 400 – Ungültige Anforderung.Meldung: (von der HTTP-Antwort abhängig).