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.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-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 de JSONlignes
{ "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
DynamoDB JSON
Une exportation de table au format JSON DynamoDB se compose de plusieurs objets. Item
Chaque objet individuel est au format JSON marshalled standard de DynamoDB.
Lors de la création d'analyseurs personnalisés pour les données d'exportation JSON DynamoDB, le format est celui des lignes. JSON
Dans l'exemple suivant, un seul élément issu d'une exportation JSON DynamoDB a été formaté sur plusieurs lignes pour des raisons 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
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
Le tableau suivant répertorie le mappage des types de données DynamoDB aux types de données ioniques :
Type de données DynamoDB | Représentation Ion |
---|---|
String (S) | string |
Booléen () 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.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-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 de JSONlignes
{ "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 | Touches + nouvelle image + ancienne image |
Suppression | Clés | Clés + ancienne image |
Insert + delete | Pas de sortie | Pas de sortie |
DynamoDB JSON
Une exportation de table au format JSON DynamoDB consiste en 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. Vous trouverez ci-dessous un exemple de sortie DynamoDB JSON utilisant le type de vue d'exportation sous forme de nouvelles et anciennes 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" }, "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
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
Le tableau suivant répertorie le mappage des types de données DynamoDB aux types de données ioniques :
Type de données DynamoDB | Représentation Ion |
---|---|
String (S) | string |
Booléen () 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" } } }