Export-Ausgabeformat für DynamoDB-Tabellen - Amazon-DynamoDB

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.json export-prefix/AWSDynamoDB/ExportId/manifest-summary.checksum export-prefix/AWSDynamoDB/ExportId/manifest-files.json export-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, sodass Zeilenumbrüche als Elementtrennzeichen verwendet werden. Im folgenden Beispiel werden die Details einer Datendatei aus einem Dateimanifest aus Gründen der Lesbarkeit in mehreren Zeilen formatiert.

    { "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 Dies bedeutet, dass Zeilenumbrüche als Elementtrennzeichen verwendet werden. Viele AWS Dienste, wie Athena und AWS Glue, analysieren dieses Format automatisch.

    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 ist ein reich typisiertes, selbstbeschreibendes, hierarchisches Datenserialisierungsformat, das entwickelt wurde, um schnelle Entwicklungs-, Entkopplungs- und Effizienzprobleme zu bewältigen, denen sich täglich gegenübersehen, während umfangreiche, serviceorientierte Architekturen entwickelt werden. DynamoDB unterstützt den Export von Tabellendaten im Textformat von Ion, das eine Obermenge von ist. JSON

    Wenn Sie eine Tabelle in das Ion-Format exportieren, werden die in der Tabelle verwendeten DynamoDB-Datentypen Ion-Datentypen abgebildet. DynamoDB-Sets verwenden Ion-Typ-Anmerkungen, um den in der Quelltabelle verwendeten Datentyp zu verdeutlichen.

    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.json export-prefix/AWSDynamoDB/ExportId/manifest-summary.checksum export-prefix/AWSDynamoDB/ExportId/manifest-files.json export-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, sodass Zeilenumbrüche als Elementtrennzeichen verwendet werden. Im folgenden Beispiel werden die Details einer Datendatei aus einem Dateimanifest aus Gründen der Lesbarkeit in mehreren Zeilen formatiert.

    { "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 ist ein reich typisiertes, selbstbeschreibendes, hierarchisches Datenserialisierungsformat, das entwickelt wurde, um schnelle Entwicklungs-, Entkopplungs- und Effizienzprobleme zu bewältigen, denen sich täglich gegenübersehen, während umfangreiche, serviceorientierte Architekturen entwickelt werden. DynamoDB unterstützt den Export von Tabellendaten im Textformat von Ion, das eine Obermenge von ist. JSON

    Wenn Sie eine Tabelle in das Ion-Format exportieren, werden die in der Tabelle verwendeten DynamoDB-Datentypen Ion-Datentypen abgebildet. DynamoDB-Sets verwenden Ion-Typ-Anmerkungen, um den in der Quelltabelle verwendeten Datentyp zu verdeutlichen.

    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" } } }