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.
Export-Ausgabeformat für DynamoDB-Tabellen
Ein DynamoDB-Tabellenexport umfasst Manifestdateien, zusätzlich zu den Dateien, die Ihre Tabellendaten enthalten. Diese Dateien werden alle in dem Amazon S3-Bucket gespeichert, den Sie in Ihrer Exportanforderung spezifizieren. Die folgenden Abschnitte beschreiben das Format und den Inhalt der einzelnen Ausgabeobjekte.
Themen
Manifestdateien
DynamoDB erstellt Manifestdateien zusammen mit ihren Prüfsummendateien im angegebenen S3-Bucket für jede Exportanforderung.
export-prefix
/AWSDynamoDB/ExportId
/manifest-summary.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.checksum
Sie wählen ein export-prefix
, wenn Sie einen Tabellenexport anfordern. Auf diese Weise können Sie Dateien im Ziel-S3-Bucket organisieren. Die ExportId
ist ein eindeutiges vom Service generiertes Token, um sicherzustellen, dass mehrere Exporte in denselben S3-Bucket und export-prefix
sich nicht gegenseitig überschreiben.
Bei dem Export wird mindestens 1 Datei pro Partition erstellt. Für leere Partitionen erstellt Ihre Exportanforderung eine leere Datei. Alle Elemente in jeder Datei stammen aus dem Hash-Keyspace der betreffenden Partition.
Anmerkung
DynamoDB erstellt auch eine leere Datei namens _started
, die im selben Verzeichnis wie die Manifestdateien benannt ist. Diese Datei überprüft, ob der Ziel-Bucket beschreibbar ist und der Export begonnen hat. Es kann sicher gelöscht werden.
Das Übersichtsmanifest
Die manifest-summary.json
-Datei enthält zusammenfassende Informationen zum Exportauftrag. Auf diese Weise können Sie feststellen, welche Datendateien im gemeinsam genutzten Datenordner mit diesem Export verknüpft sind. Das Format lautet folgendermaßen:
{ "version": "2020-06-30", "exportArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4", "startTime": "2020-11-04T07:28:34.028Z", "endTime": "2020-11-04T07:33:43.897Z", "tableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog", "tableId": "12345a12-abcd-123a-ab12-1234abc12345", "exportTime": "2020-11-04T07:28:34.028Z", "s3Bucket": "ddb-productcatalog-export", "s3Prefix": "2020-Nov", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "AWSDynamoDB/01693685827463-2d8752fd/manifest-files.json", "billedSizeBytes": 0, "itemCount": 8, "outputFormat": "DYNAMODB_JSON", "exportType": "FULL_EXPORT" }
Die Manifestdateien
Die manifest-files.json
-Datei enthält Informationen zu den Dateien, die Ihre exportierten Tabellendaten enthalten. Die Datei hat das JSONZeilenformat
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/01693685827463-2d8752fd/data/asdl123dasas.json.gz" }
Datendateien
DynamoDB kann Ihre Tabellendaten in zwei Formaten exportieren: DynamoDB JSON und Amazon Ion. Unabhängig vom gewählten Format werden Ihre Daten in mehrere komprimierte Dateien geschrieben, die nach den Schlüsseln benannt sind. Diese Dateien sind auch in der manifest-files.json
-Datei aufgeführt.
Die Verzeichnisstruktur Ihres S3-Buckets enthält nach einem vollständigen Export alle Ihre Manifestdateien und Datendateien im Ordner „Export-ID“.
DestinationBucket/DestinationPrefix . └── AWSDynamoDB ├── 01693685827463-2d8752fd // the single full export │ ├── manifest-files.json // manifest points to files under 'data' subfolder │ ├── manifest-files.checksum │ ├── manifest-summary.json // stores metadata about request │ ├── manifest-summary.md5 │ ├── data // The data exported by full export │ │ ├── asdl123dasas.json.gz │ │ ... │ └── _started // empty file for permission check
DynamoDB JSON
Ein Tabellenexport im JSON DynamoDB-Format besteht aus mehreren Item
Objekten. Jedes einzelne Objekt hat das standardmäßige Marshalling-Format von DynamoDB. JSON
Beim Erstellen von benutzerdefinierten Parsern für JSON DynamoDB-Exportdaten ist das Format Zeilen. JSON
Im folgenden Beispiel wurde ein einzelnes Element aus einem JSON DynamoDB-Export aus Gründen der Lesbarkeit mehrzeilig formatiert.
{ "Item":{ "Authors":{ "SS":[ "Author1", "Author2" ] }, "Dimensions":{ "S":"8.5 x 11.0 x 1.5" }, "ISBN":{ "S":"333-3333333333" }, "Id":{ "N":"103" }, "InPublication":{ "BOOL":false }, "PageCount":{ "N":"600" }, "Price":{ "N":"2000" }, "ProductCategory":{ "S":"Book" }, "Title":{ "S":"Book 103 Title" } } }
Amazon Ion
Amazon Ion
Wenn Sie eine Tabelle in das Ion-Format exportieren, werden die in der Tabelle verwendeten DynamoDB-Datentypen Ion-Datentypen
In der folgenden Tabelle ist die Zuordnung von DynamoDB-Datentypen zu Ionen-Datentypen aufgeführt:
DynamoDB-Datentyp | Ion-Darstellung |
---|---|
String (S) | Zeichenfolge |
Boolean () BOOL | bool |
Nummer (N) | decimal |
Binary (B) | blob |
Satz (SS, NS, BS) | Liste (mit Typannotation $DynamoDB_SS, $DynamoDB_NS oder $DynamoDB_Bs) |
Liste | auflisten |
Map | struct |
Elemente in einem Ionen-Export werden durch Zeilenumbrüche getrennt. Jede Zeile beginnt mit einer Ion-Versionsmarkierung, gefolgt von einem Element im Ionen-Format. Im folgenden Beispiel wurde ein Element aus einem Ion-Export aus Gründen der Lesbarkeit in mehreren Zeilen formatiert.
$ion_1_0 { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"333-3333333333", Id:103., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 103 Title" } }
Manifestdateien
DynamoDB erstellt Manifestdateien zusammen mit ihren Prüfsummendateien im angegebenen S3-Bucket für jede Exportanforderung.
export-prefix
/AWSDynamoDB/ExportId
/manifest-summary.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.checksum
Sie wählen ein export-prefix
, wenn Sie einen Tabellenexport anfordern. Auf diese Weise können Sie Dateien im Ziel-S3-Bucket organisieren. Die ExportId
ist ein eindeutiges vom Service generiertes Token, um sicherzustellen, dass mehrere Exporte in denselben S3-Bucket und export-prefix
sich nicht gegenseitig überschreiben.
Bei dem Export wird mindestens 1 Datei pro Partition erstellt. Für leere Partitionen erstellt Ihre Exportanforderung eine leere Datei. Alle Elemente in jeder Datei stammen aus dem Hash-Keyspace der betreffenden Partition.
Anmerkung
DynamoDB erstellt auch eine leere Datei namens _started
, die im selben Verzeichnis wie die Manifestdateien benannt ist. Diese Datei überprüft, ob der Ziel-Bucket beschreibbar ist und der Export begonnen hat. Es kann sicher gelöscht werden.
Das Übersichtsmanifest
Die manifest-summary.json
-Datei enthält zusammenfassende Informationen zum Exportauftrag. Auf diese Weise können Sie feststellen, welche Datendateien im gemeinsam genutzten Datenordner mit diesem Export verknüpft sind. Das Format lautet folgendermaßen:
{ "version": "2023-08-01", "exportArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test/export/01695097218000-d6299cbd", "startTime": "2023-09-19T04:20:18.000Z", "endTime": "2023-09-19T04:40:24.780Z", "tableArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test", "tableId": "b116b490-6460-4d4a-9a6b-5d360abf4fb3", "exportFromTime": "2023-09-18T17:00:00.000Z", "exportToTime": "2023-09-19T04:00:00.000Z", "s3Bucket": "jason-exports", "s3Prefix": "20230919-prefix", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "20230919-prefix/AWSDynamoDB/01693685934212-ac809da5/manifest-files.json", "billedSizeBytes": 20901239349, "itemCount": 169928274, "outputFormat": "DYNAMODB_JSON", "outputView": "NEW_AND_OLD_IMAGES", "exportType": "INCREMENTAL_EXPORT" }
Die Manifestdateien
Die manifest-files.json
-Datei enthält Informationen zu den Dateien, die Ihre exportierten Tabellendaten enthalten. Die Datei hat das JSONZeilenformat
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/data/sgad6417s6vss4p7owp0471bcq.json.gz" }
Datendateien
DynamoDB kann Ihre Tabellendaten in zwei Formaten exportieren: DynamoDB JSON und Amazon Ion. Unabhängig vom gewählten Format werden Ihre Daten in mehrere komprimierte Dateien geschrieben, die nach den Schlüsseln benannt sind. Diese Dateien sind auch in der manifest-files.json
-Datei aufgeführt.
Die Datendateien für inkrementelle Exporte sind alle in einem gemeinsamen Datenordner in Ihrem S3-Bucket enthalten. Ihre Manifestdateien befinden sich in Ihrem Export-ID-Ordner.
DestinationBucket/DestinationPrefix . └── AWSDynamoDB ├── 01693685934212-ac809da5 // an incremental export ID │ ├── manifest-files.json // manifest points to files under 'data' folder │ ├── manifest-files.checksum │ ├── manifest-summary.json // stores metadata about request │ ├── manifest-summary.md5 │ └── _started // empty file for permission check ├── 01693686034521-ac809da5 │ ├── manifest-files.json │ ├── manifest-files.checksum │ ├── manifest-summary.json │ ├── manifest-summary.md5 │ └── _started ├── data // stores all the data files for incremental exports │ ├── sgad6417s6vss4p7owp0471bcq.json.gz │ ...
In Ihren Exportdateien enthält die Ausgabe jedes Elements einen Zeitstempel, der angibt, wann das Element in Ihrer Tabelle aktualisiert wurde, und eine Datenstruktur, die angibt, ob es sich um einen insert
-, update
- oder delete
-Vorgang handelt. Der Zeitstempel basiert auf einer internen Systemuhr und kann von der Uhr Ihrer Anwendung abweichen. Für inkrementelle Exporte können Sie zwischen zwei Exportansichtstypen für Ihre Ausgabestruktur wählen: neue und alte Bilder oder nur neue Bilder.
-
Neues Bild zeigt den aktuellen Status des Elements
-
Altes Bild zeigt den Status des Elements unmittelbar vor dem angegebenen Startdatum und der angegebenen Startzeit
Ansichtstypen können hilfreich sein, wenn Sie sehen möchten, wie das Element innerhalb des Exportzeitraums geändert wurde. Sie können auch nützlich sein, um Ihre Downstream-Systeme effizient zu aktualisieren, insbesondere wenn diese Downstream-Systeme einen Partitionsschlüssel haben, der nicht mit Ihrem DynamoDB-Partitionsschlüssel identisch ist.
Anhand der Struktur der Ausgabe können Sie ableiten, ob es sich bei einem Element in Ihrer inkrementellen Exportausgabe um ein insert
, update
oder delete
handelte. Die Struktur des inkrementellen Exports und die entsprechenden Operationen sind in der folgenden Tabelle für beide Exportansichtstypen zusammengefasst.
Operation | Nur neue Bilder | Neue und alte Bilder |
---|---|---|
Einfügen |
Schlüssel + neues Bild |
Schlüssel + neues Bild |
Aktualisierung |
Schlüssel + neues Bild | Tasten + neues Bild + altes Bild |
Löschen | Schlüssel | Schlüssel + altes Bild |
Einfügen + Löschen | Keine Ausgabe | Keine Ausgabe |
DynamoDB JSON
Ein Tabellenexport im JSON DynamoDB-Format besteht aus einem Metadaten-Zeitstempel, der die Schreibzeit des Elements angibt, gefolgt von den Schlüsseln des Elements und den Werten. Im Folgenden sehen Sie ein Beispiel für eine JSON DynamoDB-Ausgabe mit dem Exportansichtstyp als neue und alte Bilder.
// Ex 1: Insert // An insert means the item did not exist before the incremental export window // and was added during the incremental export window { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#100" } }, "NewImage": { "PK": { "S": "CUST#100" }, "FirstName": { "S": "John" }, "LastName": { "S": "Don" } } } // Ex 2: Update // An update means the item existed before the incremental export window // and was updated during the incremental export window. // The OldImage would not be present if choosing "New images only". { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#200" } }, "OldImage": { "PK": { "S": "CUST#200" }, "FirstName": { "S": "Mary" }, "LastName": { "S": "Grace" } }, "NewImage": { "PK": { "S": "CUST#200" }, "FirstName": { "S": "Mary" }, "LastName": { "S": "Smith" } } } // Ex 3: Delete // A delete means the item existed before the incremental export window // and was deleted during the incremental export window // The OldImage would not be present if choosing "New images only". { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#300" } }, "OldImage": { "PK": { "S": "CUST#300" }, "FirstName": { "S": "Jose" }, "LastName": { "S": "Hernandez" } } } // Ex 4: Insert + Delete // Nothing is exported if an item is inserted and deleted within the // incremental export window.
Amazon Ion
Amazon Ion
Wenn Sie eine Tabelle in das Ion-Format exportieren, werden die in der Tabelle verwendeten DynamoDB-Datentypen Ion-Datentypen
In der folgenden Tabelle ist die Zuordnung von DynamoDB-Datentypen zu Ionen-Datentypen aufgeführt:
DynamoDB-Datentyp | Ion-Darstellung |
---|---|
String (S) | Zeichenfolge |
Boolean () BOOL | bool |
Nummer (N) | decimal |
Binary (B) | blob |
Satz (SS, NS, BS) | Liste (mit Typannotation $DynamoDB_SS, $DynamoDB_NS oder $DynamoDB_Bs) |
Liste | auflisten |
Map | struct |
Elemente in einem Ionen-Export werden durch Zeilenumbrüche getrennt. Jede Zeile beginnt mit einer Ion-Versionsmarkierung, gefolgt von einem Element im Ionen-Format. Im folgenden Beispiel wurde ein Element aus einem Ion-Export aus Gründen der Lesbarkeit in mehreren Zeilen formatiert.
$ion_1_0 { Record:{ Keys:{ ISBN:"333-3333333333" }, Metadata:{ WriteTimestampMicros:1684374845117899. }, OldImage:{ Authors:$dynamodb_SS::["Author1","Author2"], ISBN:"333-3333333333", Id:103., InPublication:false, ProductCategory:"Book", Title:"Book 103 Title" }, NewImage:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"333-3333333333", Id:103., InPublication:true, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 103 Title" } } }