Format de sortie d'exportation de table DynamoDB - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Format de sortie d'exportation de table DynamoDB

Une exportation de table DynamoDB comprend des fichiers manifeste en plus des fichiers contenant les données de votre table. Ces fichiers sont enregistrés dans le compartiment Amazon S3 que vous spécifiez dans votre demande d'exportation. Les sections suivantes décrivent le format et le contenu de chaque objet en sortie.

Rubriques

    Fichiers manifestes

    DynamoDB crée des fichiers manifeste, ainsi que leurs fichiers de somme de contrôle, dans le compartiment S3 spécifié pour chaque demande d'exportation.

    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

    Vous choisissez un export-prefix lorsque vous demandez une exportation de table. Cela vous aide à organiser les fichiers dans le compartiment S3 de destination. L'ExportId est un jeton unique généré par le service qui vise à éviter que plusieurs exportations vers un même compartiment S3 et export-prefix ne se remplacent les unes les autres.

    L'exportation crée au moins un fichier par partition. Pour les partitions vides, votre demande d'exportation crée un fichier vide. Tous les éléments de chaque fichier proviennent de l'espace de clés haché de cette partition particulière.

    Note

    DynamoDB crée également un fichier vide nommé _started dans le même répertoire que les fichiers manifestes. Ce fichier vérifie que le compartiment de destination est accessible en écriture et que l'exportation a commencé. Il peut être supprimé en toute sécurité.

    Manifeste de récapitulatif

    Le fichier manifest-summary.json contient des informations récapitulatives sur la tâche d'exportation. Cela vous permet de savoir quels fichiers de données du dossier de données partagé sont associés à cette exportation. Son format est le suivant :

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

    Manifeste de fichiers

    Le fichier manifest-files.json contient des informations sur les fichiers contenant les données de votre table exportée. Le fichier étant au format JSON Lines, de nouvelles lignes sont utilisées comme délimiteurs d'éléments. Dans l'exemple suivant, les détails relatifs à un fichier de données extraits d'un manifeste de fichiers sont mis en forme sur plusieurs lignes par souci de lisibilité.

    { "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/01693685827463-2d8752fd/data/asdl123dasas.json.gz" }

    Fichiers de données

    DynamoDB peut exporter les données de votre table dans deux formats : DynamoDB JSON et Amazon Ion. Quel que soit le format que vous choisissez, vos données sont écrites dans plusieurs fichiers compressés nommés par les clés. Ces fichiers sont également répertoriés dans le fichier manifest-files.json.

    La structure du répertoire de votre compartiment S3 après une exportation complète contient l'ensemble de vos fichiers manifeste et fichiers de données (sous le dossier d'ID de l'exportation).

    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

    JSON DynamoDB

    Une exportation de table au format JSON DynamoDB comprend plusieurs objets Item. Chaque objet est au format JSON regroupé standard de DynamoDB.

    Lorsque des analyseurs personnalisés sont créés pour les données d'exportation JSON DynamoDB, le format est JSON Lines. Cela signifie que des sauts de ligne sont utilisés en tant que délimiteurs d'éléments. De nombreux AWS services, tels qu'Athena et AWS Glue, analyseront automatiquement ce format.

    Dans l'exemple suivant, un élément d'une exportation JSON DynamoDB a été mis en forme sur plusieurs lignes par souci de lisibilité.

    { "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 est un format de sérialisation de données hiérarchique riche, auto-descriptif et conçu pour répondre aux défis de développement rapide, de découplage et d'efficacité rencontrés lors de la conception d'architectures orientées service à grande échelle. DynamoDB prend en charge l'exportation de données de table au format texte d'Ion, qui est un sur-ensemble de JSON.

    Lorsque vous exportez une table au format Ion, les types de données DynamoDB utilisés dans la table sont mappés à des types de données Ion. Les ensembles DynamoDB utilisent des annotations de type Ion pour clarifier type de données utilisé dans la table source.

    Conversion de type de données DynamoDB en Ion
    Type de données DynamoDB Représentation Ion
    String (S) string
    Boolean (BOOL) bool
    Number (N) décimal
    Binary (B) blob
    Set (SS, NS, BS) list (avec annotation de type $DynamoDB_SS, $DynamoDB_ns ou $DynamoDB_bs)
    Liste list
    Map struct

    Les éléments dans une exportation Ion sont délimités par des sauts de ligne. Chaque ligne commence par un marqueur de version Ion, suivi d'un élément au format Ion. Dans l'exemple suivant, un élément d'une exportation Ion a été mis en forme sur plusieurs lignes par souci de lisibilité.

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

    Fichiers manifestes

    DynamoDB crée des fichiers manifeste, ainsi que leurs fichiers de somme de contrôle, dans le compartiment S3 spécifié pour chaque demande d'exportation.

    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

    Vous choisissez un export-prefix lorsque vous demandez une exportation de table. Cela vous aide à organiser les fichiers dans le compartiment S3 de destination. L'ExportId est un jeton unique généré par le service qui vise à éviter que plusieurs exportations vers un même compartiment S3 et export-prefix ne se remplacent les unes les autres.

    L'exportation crée au moins un fichier par partition. Pour les partitions vides, votre demande d'exportation crée un fichier vide. Tous les éléments de chaque fichier proviennent de l'espace de clés haché de cette partition particulière.

    Note

    DynamoDB crée également un fichier vide nommé _started dans le même répertoire que les fichiers manifestes. Ce fichier vérifie que le compartiment de destination est accessible en écriture et que l'exportation a commencé. Il peut être supprimé en toute sécurité.

    Manifeste de récapitulatif

    Le fichier manifest-summary.json contient des informations récapitulatives sur la tâche d'exportation. Cela vous permet de savoir quels fichiers de données du dossier de données partagé sont associés à cette exportation. Son format est le suivant :

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

    Manifeste de fichiers

    Le fichier manifest-files.json contient des informations sur les fichiers contenant les données de votre table exportée. Le fichier étant au format JSON Lines, de nouvelles lignes sont utilisées comme délimiteurs d'éléments. Dans l'exemple suivant, les détails relatifs à un fichier de données extraits d'un manifeste de fichiers sont mis en forme sur plusieurs lignes par souci de lisibilité.

    { "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/data/sgad6417s6vss4p7owp0471bcq.json.gz" }

    Fichiers de données

    DynamoDB peut exporter les données de votre table dans deux formats : DynamoDB JSON et Amazon Ion. Quel que soit le format que vous choisissez, vos données sont écrites dans plusieurs fichiers compressés nommés par les clés. Ces fichiers sont également répertoriés dans le fichier manifest-files.json.

    Les fichiers de données dans le cas des exportations incrémentielles sont tous contenus dans un dossier de données commun au sein de votre compartiment S3. Vos fichiers manifeste se trouvent sous le dossier d'ID de votre exportation.

    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 │ ...

    Dans les fichiers de votre exportation, la sortie de chaque élément comprend un horodatage qui représente le moment auquel cet élément a été mis à jour dans votre table et une structure de données qui indique s'il s'agissait d'une opération insert, update ou delete. L'horodatage est basé sur une horloge système interne et peut varier par rapport à l'horloge de votre application. Pour les exportations incrémentielles, vous pouvez choisir entre deux types de vue d'exportation pour votre structure de sortie : ancienne et nouvelle images ou nouvelles images uniquement.

    • Nouvelle image indique l'état le plus récent de l'élément

    • Ancienne image indique l'état de l'élément juste avant la date et l'heure de début spécifiées

    Les types de vue peuvent être utiles si vous souhaitez voir comment l'élément a changé durant la période d'exportation. Cela peut aussi s'avérer utile pour mettre à jour efficacement vos systèmes en aval, en particulier si leur clé de partition est différente de votre clé de partition DynamoDB.

    Vous pouvez déterminer si un élément de la sortie de votre exportation incrémentielle était une opération insert, update ou delete en examinant la structure de la sortie. La structure de l'exportation incrémentielle et ses opérations correspondantes sont résumées dans le tableau ci-dessous pour les deux types de vue d'exportation.

    Opération Nouvelles images uniquement Ancienne et nouvelle images

    Insert

    Clés + nouvelle image

    Clés + nouvelle image

    Mettre à jour

    Clés + nouvelle image Clé + nouvelle image + ancienne image
    Suppression Clés Clés + ancienne image
    Insert + delete Pas de sortie Pas de sortie

    JSON DynamoDB

    Une exportation de table au format JSON de DynamoDB comprend un horodatage des métadonnées qui indique l'heure d'écriture de l'élément, suivi des clés de l'élément et des valeurs. Voici un exemple de sortie JSON DynamoDB utilisant le type de vue d'exportation Ancienne et nouvelle images.

    // 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" }, "Key": { "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" }, "Key": { "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" }, "Key": { "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 est un format de sérialisation de données hiérarchique riche, auto-descriptif et conçu pour répondre aux défis de développement rapide, de découplage et d'efficacité rencontrés lors de la conception d'architectures orientées service à grande échelle. DynamoDB prend en charge l'exportation de données de table au format texte d'Ion, qui est un sur-ensemble de JSON.

    Lorsque vous exportez une table au format Ion, les types de données DynamoDB utilisés dans la table sont mappés à des types de données Ion. Les ensembles DynamoDB utilisent des annotations de type Ion pour clarifier type de données utilisé dans la table source.

    Conversion de type de données DynamoDB en Ion
    Type de données DynamoDB Représentation Ion
    String (S) string
    Boolean (BOOL) bool
    Number (N) décimal
    Binary (B) blob
    Set (SS, NS, BS) list (avec annotation de type $DynamoDB_SS, $DynamoDB_ns ou $DynamoDB_bs)
    Liste list
    Map struct

    Les éléments dans une exportation Ion sont délimités par des sauts de ligne. Chaque ligne commence par un marqueur de version Ion, suivi d'un élément au format Ion. Dans l'exemple suivant, un élément d'une exportation Ion a été mis en forme sur plusieurs lignes par souci de lisibilité.

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