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.
Exportieren von Gremlin-Abfrageergebnissen nach Amazon S3
Ab der Engine-Version 1.4.3.0 unterstützt Amazon Neptune den direkten Export von Gremlin-Abfrageergebnissen nach Amazon S3. Mit dieser Funktion können Sie große Abfrageergebnisse effizient verarbeiten, indem Sie sie in einen Amazon S3-Bucket exportieren, anstatt sie als Abfrageantwort zurückzugeben.
Um Abfrageergebnisse nach Amazon S3 zu exportieren, verwenden Sie den call() Schritt mit dem neptune.query.exportToS3 Servicenamen als letzten Schritt in Ihrer Gremlin-Abfrage. Der Terminalschritt in Tinkerpop-Treibern, die Bytecode call() Die Exportparameter müssen als Zeichenkettenwerte bereitgestellt werden.
Anmerkung
Die Abfrage mit dem ersten call() Schritt schlägt neptune.query.exportToS3 fehl, wenn sie nicht als letzter Schritt verwendet wird. Die Gremlin-Clients, die Bytecode verwenden, können Terminalschritte verwenden. Weitere Informationen finden Sie in den Best Practices von Gremlin in der Amazon Neptune-Dokumentation.
g.V() ... .call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'kmskeyArn': 'optional-kms-key-arn' ])
Parameters
-
destination: erforderlich — Die Amazon S3-URI, in die die Ergebnisse geschrieben werden. -
format: erforderlich — Das Ausgabeformat unterstützt derzeit nur 'GraphsOnV3'. -
keyArn: optional — Die ARN eines AWS KMS Schlüssels für die serverseitige Amazon S3-Verschlüsselung.
Beispiele
Beispiel für eine Abfrage
g.V(). hasLabel('Comment'). valueMap(). call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'keyArn': 'optional-kms-key-arn' ])
Beispiel für eine Abfrageantwort
{ "destination":"s3://your-bucket/path/result.json, "exportedResults": 100, "exportedBytes": 102400 }
Voraussetzungen
-
Ihre Neptune-DB-Instance muss über einen VPC-Endpunkt vom Typ Gateway Zugriff auf Amazon S3 haben.
-
Um eine benutzerdefinierte AWS KMS Verschlüsselung in der Abfrage zu verwenden, AWS KMS ist ein Interface-type VPC-Endpunkt für erforderlich, mit dem Neptune kommunizieren kann. AWS KMS
-
Sie müssen die IAM-Authentifizierung auf Neptune aktivieren und über die entsprechenden IAM-Berechtigungen verfügen, um in den Amazon S3-Ziel-Bucket zu schreiben. Wenn Sie dies nicht tun, wird der Fehler 400 Bad Requests angezeigt: „Auf dem Cluster muss die IAM-Authentifizierung für den S3-Export aktiviert sein“.
-
Der Amazon S3-Ziel-Bucket:
-
Der Amazon S3-Ziel-Bucket darf nicht öffentlich sein.
Block public accessmuss aktiviert sein. -
Das Amazon S3-Zielziel muss leer sein.
-
Für den Amazon S3-Ziel-Bucket muss eine Lebenszyklusregel
Delete expired object delete markers or incomplete multipart uploadsmit aktiviert seinDelete incomplete multipart uploads. Weitere Informationen finden Sie unter Amazon S3-Lifecycle-Management-Update — Unterstützung für mehrteilige Uploads und Löschmarkierungen.
-
Im Amazon S3-Ziel-Bucket muss die Lebenszyklusregel aktiviert sein und auf
Delete expired object delete markers or incomplete multipart uploadseinen WertDelete incomplete multipart uploadsgesetzt sein, der höher ist, als die Auswertung der Abfrage dauert (z. B. 7 Tage). Dies ist erforderlich, um unvollständige Uploads (die nicht direkt sichtbar sind, aber Kosten verursachen würden) zu löschen, falls sie von Neptune nicht abgeschlossen oder abgebrochen werden können (z. B. aufgrund von Fehlern). instance/engine Weitere Informationen finden Sie unter Amazon S3 Lifecycle Management-Update — Unterstützung für mehrteilige Uploads und Löschmarkierungen.
-
Wichtige Überlegungen
-
Der Exportschritt muss der letzte Schritt in Ihrer Gremlin-Abfrage sein.
-
Wenn am angegebenen Amazon S3-Standort bereits ein Objekt existiert, schlägt die Abfrage fehl.
-
Die maximale Abfrageausführungszeit für Exportabfragen ist auf 11 Stunden und 50 Minuten begrenzt. Diese Funktion verwendet Forward-Access-Sitzungen. Sie ist derzeit auf 11 Stunden und 50 Minuten begrenzt, um Probleme mit dem Ablauf von Tokens zu vermeiden.
Anmerkung
Die Exportabfrage berücksichtigt weiterhin den Abfrage-Timeout. Für große Exporte sollten Sie ein geeignetes Abfrage-Timeout verwenden.
-
Alle Uploads neuer Objekte auf Amazon S3 werden automatisch verschlüsselt.
-
Um Speicherkosten durch unvollständige mehrteilige Uploads im Falle von Fehlern oder Abstürzen zu vermeiden, empfehlen wir, eine Lebenszyklusregel für Ihren
Delete incomplete multipart uploadsAmazon S3-Bucket einzurichten.
Reaktionsformat
Anstatt die Abfrageergebnisse direkt zurückzugeben, gibt die Abfrage Metadaten über den Exportvorgang zurück, einschließlich Status und Exportdetails. Die Abfrageergebnisse in Amazon S3 werden im GraphsOnV3-Format vorliegen
{ "data": { "@type": "g:List", "@value": [ { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Safari" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 7 } ] }, "locationIP", { "@type": "g:List", "@value": [ "192.0.2.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348341961000 } ] }, "content", { "@type": "g:List", "@value": [ "no way!" ] } ] }, { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Firefox" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 2 } ] }, "locationIP", { "@type": "g:List", "@value": [ "203.0.113.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348352960000 } ] }, "content", { "@type": "g:List", "@value": [ "ok" ] } ] }, ... ] } }
Sicherheit
-
Alle an Amazon S3 übertragenen Daten werden bei der Übertragung mit SSL verschlüsselt.
-
Sie können einen AWS KMS Schlüssel für die serverseitige Verschlüsselung der exportierten Daten angeben. Amazon S3 verschlüsselt standardmäßig neue Daten. Wenn der Bucket für die Verwendung eines bestimmten AWS KMS Schlüssels konfiguriert ist, wird dieser Schlüssel verwendet.
-
Neptune überprüft, ob der Ziel-Bucket nicht öffentlich ist, bevor der Export gestartet wird.
-
Cross-account und regionsübergreifende Exporte werden nicht unterstützt.
Fehlerbehandlung
-
Der Amazon S3-Ziel-Bucket ist öffentlich.
-
Das angegebene Objekt ist bereits vorhanden.
-
Sie verfügen nicht über ausreichende Berechtigungen, um in den Amazon S3-Bucket zu schreiben.
-
Die Ausführung der Abfrage überschreitet das maximale Zeitlimit.
Bewährte Methoden
-
Verwenden Sie die Amazon S3-Bucket-Lebenszyklusregeln, um unvollständige mehrteilige Uploads zu bereinigen.
-
Überwachen Sie Ihre Exportvorgänge mithilfe von Neptune-Protokollen und -Metriken. Sie können den Gremlin-Status-Endpunkt überprüfen, um zu sehen, ob gerade eine Abfrage ausgeführt wird. Solange der Client keine Antwort erhalten hat, wird davon ausgegangen, dass die Abfrage läuft.