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.
Nativer Export für RDF-Daten
Mit der Neptune-Export-API können Sie Daten aus Ihrer Neptune-Datenbank nach Amazon S3 exportieren. Sie können RDF-Daten in unser Format exportieren. N-Triples N-Quads
Wie funktioniert der native Export
Der native Export wird auf der Writer-Instance Ihres Neptune-Clusters ausgeführt und schreibt exportierte Daten mithilfe mehrteiliger Uploads in Amazon S3. Da der Export die Rechenressourcen der Writer-Instance nutzt, empfehlen wir dringend, Exporte für einen geklonten Cluster auszuführen, um die Produktionsworkloads nicht zu beeinträchtigen. Weitere Informationen finden Sie unter Empfehlungen.
Durchsatz exportieren
Der Exportdurchsatz skaliert ungefähr linear mit der Instanzgröße von bis zur7i.16xlarge. Als konservative Planungsschätzung gehen Sie von etwa 50.000 Anweisungen pro Sekunde und vCPU aus.
Verwenden Sie diese Formel, um die Exportdauer abzuschätzen:
export_seconds = total_statements / (vCPUs × 50,000)
Der tatsächliche Durchsatz hängt von den Datensatzmerkmalen ab, einschließlich der Kardinalität der Prädikate, der Komplexität der Anweisungen und der Clustergröße.
Voraussetzungen
Bevor Sie die Export-API verwenden, müssen Sie:
Haben Sie einen Neptune-Datenbank-Cluster, auf dem Version 1.4.6.0 oder höher ausgeführt wird (Version 1.4.8.0 oder höher für den Support)
exportFilterErstellen Sie eine IAM-Rolle mit Berechtigungen für den Zugriff auf Ihren S3-Bucket
Konfigurieren Sie einen S3-VPC-Endpunkt in der VPC Ihres Neptune-Clusters
Empfehlungen
Für ein optimales Preis-Leistungs-Verhältnis empfehlen wir, 16xlarge Instances für Exportvorgänge zu verwenden. Dieser Instanztyp bietet:
Ausreichend Arbeitsspeicher, um große Datensätze ohne Leistungseinbußen zu verarbeiten
Optimale CPU-Ressourcen für die gleichzeitige Exportverarbeitung
Beste Kosteneffizienz für Export-Workloads
IAM-Berechtigungen
Die Exportfunktion umfasst zwei separate IAM-Rollen:
IAM-Rolle des Anrufers — Der IAM-Prinzipal (Benutzer oder Rolle), der Anfragen an den Export-API-Endpunkt sendet. Für diese Rolle sind Neptune-Datenzugriffsberechtigungen erforderlich.
S3-Zugriffs-IAM-Rolle — Die Rolle, die Neptune übernimmt, um exportierte Daten in Amazon S3 zu schreiben. Sie übergeben den ARN dieser Rolle im
iamRoleArnParameter der Exportanforderung, und er muss Ihrem Neptune-Cluster zugeordnet sein.
Anruferberechtigungen (Neptune-Datenzugriffsaktionen)
Die IAM-Richtlinie des IAM-Prinzipals, der die Export-API aufruft, muss die folgenden Neptune-Datenzugriffsaktionen enthalten:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowNeptuneExportActions", "Effect": "Allow", "Action": [ "neptune-db:StartExportJob", "neptune-db:GetExportJobStatus", "neptune-db:ListExportJobs", "neptune-db:CancelExportJob" ], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-resource-id/*" } ] }
Weitere Informationen finden Sie unter Verwenden von IAM-Richtlinienanweisungen für den Datenzugriff.
Berechtigungen für S3-Zugriffsrollen
Die im iamRoleArn Anforderungsparameter übergebene IAM-Rolle muss Ihrem Neptune-Cluster zugeordnet sein und Neptune die Berechtigung gewähren, in den Ziel-S3-Bucket zu schreiben. Schritte zum Erstellen einer IAM-Rolle und zum Zuordnen dieser Rolle zu Ihrem Cluster finden Sie unter Erstellen Sie eine IAM-Rolle, um Neptune den Zugriff auf Amazon S3 zu ermöglichen.
Anmerkung
Die Export-API benötigt Schreibberechtigungen für S3, im Gegensatz zum Bulkloader, der nur Lesezugriff benötigt. Verwenden Sie die folgende Berechtigungsrichtlinie anstelle der auf dieser Seite beschriebenen AmazonS3ReadOnlyAccess verwalteten Richtlinie.
Hängen Sie die folgende Berechtigungsrichtlinie an die S3-Zugriffsrolle an:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3WriteForNeptuneExport", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:GetBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
Optionale KMS-Berechtigungen
Wenn Sie kmsKeyIdentifier in der Exportanforderung eine angeben, fügen Sie der S3-Zugriffsrolle die folgenden Berechtigungen hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSForNeptuneExport", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id" } ] }
Endpunkt exportieren
Um Daten zu exportieren, senden Sie HTTP-Anfragen an den https://your-neptune-endpoint:port/export Endpunkt.
Syntax der Exportanfrage
POST https://your-neptune-endpoint:port/export
Anfordern von Headern
Content-Type: application/json
Anforderungstext
{ "destination": "string", "format": "string", "iamRoleArn": "string", "region": "string", "compression": "string", "kmsKeyIdentifier": "string", "exportFilter": { "namedGraphUris": ["string"] } }
Anforderungsparameter
- Ziel (Zeichenfolge)
Erforderlich Die S3-URI, in der die exportierten Daten gespeichert werden. Muss im Format
s3://bucket-name/optional-prefix/angegeben werden.- format (Zeichenfolge)
-
Erforderlich Das Format für die exportierten Daten. Zulässige Werte:
ntriples— Daten im N-Triples Format exportierennquads— Daten im N-Quads Format exportieren
- iam RoleArn (Zeichenfolge)
Erforderlich Der Amazon-Ressourcenname (ARN) der IAM-Rolle, die Neptune für den Zugriff auf den S3-Bucket annimmt.
- Region (Zeichenfolge)
Erforderlich Der AWS-Region des S3-Buckets. Muss dieselbe Region wie Ihr Neptun-Cluster sein.
- Komprimierung (Zeichenfolge)
-
Optional. Format der Komprimierung für exportierte Dateien. Zulässige Werte:
gz- Dateien im.gz-Format komprimieren
- kms KeyIdentifier (Zeichenfolge)
Optional. Der ARN des AWS KMS Schlüssels, der zum Verschlüsseln der exportierten Daten verwendet werden soll.
- ExportFilter (Objekt)
Optional. Filter, um selektiv eine Teilmenge von RDF-Daten zu exportieren. Verfügbar in der Engine-Version 1.4.8.0 und höher.
- benannt GraphUris (Reihe von Zeichenketten)
Benannte Graph-URIs, die exportiert werden sollen (maximal 100). Nur Daten in den angegebenen Grafiken werden exportiert. Wenn ein angegebenes Diagramm leer ist, wird der Export mit einem leeren Ergebnis erfolgreich abgeschlossen. Ungültige URIs schlagen fehl mit.
InvalidParameterException
Antwortsyntax
{ "status": "string", "payload": { "exportId": "string" } }
- status (Zeichenfolge)
Der HTTP-Status der Anforderung.
- ExportID (Zeichenfolge)
Ein eindeutiger Bezeichner für die Exportaufgabe.
Endpunkt für den Exportstatus
Um den Status einer Exportaufgabe zu überprüfen, senden Sie eine HTTP GET-Anfrage mit der Export-ID an den Export-Endpunkt.
GET https://your-neptune-endpoint:port/export?exportId=export-id
Anforderungsparameter
- ExportID (Zeichenfolge)
Erforderlich Der eindeutige Bezeichner der Exportaufgabe.
Antwortsyntax
{ "status": "string", "payload": { "exportId": "string", "destination": "string", "status": "string", "statusReason": "string", "format": "string", "iamRoleArn": "string", "kmsKeyIdentifier": "string", "exportFilter": { "namedGraphUris": ["string"] }, "exportTaskDetails": { "timeElapsedSeconds": number, "startTime": number, "numRecordsWritten": number, "progressPercentage": number } } }
- ExportID (Zeichenfolge)
Der eindeutige Bezeichner der Exportaufgabe.
- Ziel (Zeichenfolge)
Die S3-URI, in die die Daten exportiert werden.
- status (Zeichenfolge)
-
Der aktuelle Status der Exportaufgabe. Zulässige Werte:
EXPORT_NOT_STARTED— Der Export wurde in die Warteschlange gestellt, aber nicht gestartetEXPORT_IN_PROGRESS— Der Export läuft geradeEXPORT_COMPLETED— Der Export wurde erfolgreich abgeschlossenEXPORT_CANCELLING— Der Export wird storniertEXPORT_CANCELLED_BY_USER— Der Export wurde vom Benutzer storniertEXPORT_S3_ERROR— Der Export ist aufgrund eines S3-Zugriffsfehlers fehlgeschlagenEXPORT_FAILED— Der Export ist aufgrund eines anderen Fehlers fehlgeschlagen
- statusReason (Zeichenfolge)
Zusätzliche Informationen zum Exportstatus.
- format (Zeichenfolge)
Das Format der exportierten Daten.
- iam RoleArn (Zeichenfolge)
Der ARN der IAM-Rolle, die für den S3-Zugriff verwendet wird.
- kms KeyIdentifier (Zeichenfolge)
Der ARN des KMS-Schlüssels, der für die Verschlüsselung verwendet wird, falls angegeben.
- ExportFilter (Objekt)
Der Exportfilter, der angewendet wurde, falls einer in der Anfrage angegeben wurde.
named GraphUris (Array von Zeichenketten) — Die benannten Graph-URIs, die zum Filtern des Exports verwendet werden.
- export TaskDetails (Objekt)
-
Details zum Fortschritt der Exportaufgabe:
Zeit ElapsedSeconds (Zahl) — Zeit, die seit Beginn des Exports vergangen ist
startTime (number) — Epochenzeit, zu der der Export gestartet wurde
num RecordsWritten (number) — Anzahl der in S3 geschriebenen Datensätze
progressPercentage (Zahl) — Prozentsatz des abgeschlossenen Exports
Endpunkt der Exporte auflisten
Um alle Exportaufgaben aufzulisten, senden Sie eine HTTP GET-Anfrage an den Export-Endpunkt.
GET https://your-neptune-endpoint:port/export
Antwortsyntax
{ "status": "string", "payload": [ "string" ] }
- Nutzlast (Array)
Ein Array von Export-IDs für alle Exportaufgaben.
Export-Endpunkt abbrechen
Um eine Exportaufgabe abzubrechen, senden Sie eine HTTP DELETE-Anfrage mit der Export-ID an den Export-Endpunkt.
DELETE https://your-neptune-endpoint:port/export?exportId=export-id
Anforderungsparameter
- ExportID (Zeichenfolge)
Erforderlich Der eindeutige Bezeichner der Exportaufgabe, die abgebrochen werden soll.
Antwortsyntax
{ "status": "string", "payload": { "message": "string" } }
Ausgabeformat exportieren
S3-Verzeichnisstruktur
Exportierte Daten sind in Ihrem S3-Bucket wie folgt organisiert:
s3://your-bucket/export-id/ ├── data/ │ ├── part-00000.nt │ ├── part-00001.nt │ └── ... └── export_status.json
- Daten/Verzeichnis
Enthält die exportierten Grafikdatendateien im angegebenen Format.
- Datei export_status.json
Enthält Metadaten über den Exportvorgang.
Fehlermeldungen
Allgemeine Fehlercodes
- BadRequestException
Die Anfrage enthält ungültige Parameter oder ein Export ist bereits im Gange.
- AccessDeniedException
Der IAM-Rolle fehlen die erforderlichen Berechtigungen für den S3- oder KMS-Zugriff.
Beispiel für eine Fehlerantwort
{ "code": "BadRequestException", "requestId": "request-id", "message": "Export already in progress with ID 'existing-id'. Please wait or cancel it first.", "detailedMessage": "Detailed error description" }
Beispiele
Starte einen Export
curl -X POST https://your-cluster-endpoint:8182/export \ -H "Content-Type: application/json" \ -d '{ "destination": "s3://my-bucket/exports/", "format": "ntriples", "iamRoleArn": "arn:aws:iam::123456789012:role/neptune-export-role", "region": "us-west-2" }'
Startet einen gefilterten Export (benannte Grafiken)
curl -X POST https://your-cluster-endpoint:8182/export \ -H "Content-Type: application/json" \ -d '{ "destination": "s3://my-bucket/exports/", "format": "nquads", "iamRoleArn": "arn:aws:iam::123456789012:role/neptune-export-role", "region": "us-west-2", "exportFilter": { "namedGraphUris": [ "http://example.com/graph1", "http://example.com/graph2" ] } }'
Überprüfen Sie den Exportstatus
curl -X GET "https://your-cluster-endpoint:8182/export?exportId=<id>"
Einen Export abbrechen
curl -X DELETE "https://your-cluster-endpoint:8182/export?exportId=<id>"
Einschränkungen
Für den systemeigenen Export gelten die folgenden Einschränkungen:
Instanzunterstützung — Der native Export wird auf Neptune Serverless-Instances oder Read Replicas nicht unterstützt. Der Export wird immer auf der Writer-Instanz eines bereitgestellten Clusters ausgeführt.
Ein Export pro Cluster — Auf einem Cluster kann jeweils nur ein Export aktiv sein. Wenn Sie eine neue Exportanforderung einreichen, während ein anderer Export läuft, schlägt die Anfrage fehl.
Keine automatische Wiederaufnahme — Wenn die Engine während eines Exports neu gestartet wird, schlägt der Export fehl und muss von Anfang an neu gestartet werden. Der Exportfortschritt bleibt bei Engine-Neustarts nicht erhalten.
Statusverfügbarkeit nach Engine-Ereignissen — Wenn die Engine abstürzt, können Sie den Exportstatus nicht über die Status-API abrufen.
Konsistenz bei Schreibvorgängen — Wenn Ihr Cluster während eines Exports Schreibdatenverkehr verarbeitet, können die exportierten Daten eine teilweise oder inkonsistente Ansicht des Diagramms wiedergeben. Um einen konsistenten Export zu gewährleisten, führen Sie den Export für einen geklonten Cluster aus.