Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Formato di output di esportazione della tabella DynamoDB
Un'esportazione di tabelle DynamoDB, oltre ai file contenenti i dati della tabella, include file manifesto. Tutti questi file vengono salvati nel bucket Amazon S3 specificato nella richiesta di esportazione. Nelle sezioni seguenti sono descritti il formato e il contenuto di ciascun oggetto di output.
Argomenti
File manifesto
Per ogni richiesta di esportazione, oltre ai file checksum, DynamoDB crea file manifesto nel bucket S3 specificato.
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
Quando si richiede l'esportazione di una tabella viene scelto un parametro export-prefix
. Questo ti aiuta a mantenere organizzati i file nel bucket S3 di destinazione. L'ExportId
è un token univoco generato dal servizio per garantire che più esportazioni nello stesso bucket S3 e export-prefix
non si sovrascrivano l'un l'altro.
L'esportazione crea anche almeno 1 file per partizione. Per le partizioni vuote, la richiesta di esportazione creerà un file vuoto. Tutti gli elementi di ogni file provengono dal keyspace con hash di quella particolare partizione.
Nota
DynamoDB crea anche un file vuoto denominato _started
nella stessa directory dei file manifesto. Questo file verifica che il bucket di destinazione sia scrivibile e che l'esportazione sia iniziata. Può essere tranquillamente eliminato.
Il manifesto di riepilogo
Il file manifest-summary.json
contiene le informazioni di riepilogo del processo di esportazione. Ciò consente di sapere quali file di dati nella cartella di dati condivisa sono associati a questa esportazione. Il formato è il seguente:
{ "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" }
I file manifesto
Il file manifest-files.json
contiene informazioni sui file contenenti i dati della tabella esportati. Il file è in formato JSONrighe
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/01693685827463-2d8752fd/data/asdl123dasas.json.gz" }
File di dati
DynamoDB può esportare i dati delle tabelle in due formati: DynamoDB JSON e Amazon Ion. Indipendentemente dal formato scelto, i dati verranno scritti in più file compressi denominati dalle chiavi. Anche questi file sono elencati nel file manifest-files.json
.
La struttura di directory del bucket S3 dopo un'esportazione completa conterrà tutti i file manifesto e i file di dati nella cartella 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
Un'esportazione di tabelle in formato JSON DynamoDB è costituita da più oggetti. Item
Ogni singolo oggetto è nel formato marshalled standard di DynamoDB. JSON
Quando si creano parser personalizzati per i dati di esportazione di JSON DynamoDB, il formato è costituito da righe. JSON
Nell'esempio seguente, un singolo elemento di un'esportazione JSON DynamoDB è stato formattato su più righe per motivi di leggibilità.
{ "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
Quando si esporta una tabella in formato Ion, i tipi di dati DynamoDB utilizzati nella tabella vengono mappati ai tipi di dati Ion
La tabella seguente elenca la mappatura dei tipi di dati DynamoDB ai tipi di dati ionici:
Tipo di dati DynamoDB | Rappresentazione Ion |
---|---|
String (S) | string |
Booleano () BOOL | bool |
Number (N) | decimal |
Binary (B) | blob |
Set (SS, NS, BS) | list (con annotazione del tipo $dynamodb_SS, $dynamodb_NS o $dynamodb_BS) |
Elenco | list |
Map | struct |
Gli elementi in un'esportazione Ion sono delimitati da nuove righe. Ogni riga inizia con un evidenziatore della versione Ion, seguito da un elemento in formato Ion. Nell'esempio seguente, un singolo elemento da un'esportazione DynamoDB JSON è stato formattato su più righe per motivi di leggibilità.
$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" } }
File manifesto
Per ogni richiesta di esportazione, oltre ai file checksum, DynamoDB crea file manifesto nel bucket S3 specificato.
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
Quando si richiede l'esportazione di una tabella viene scelto un parametro export-prefix
. Questo ti aiuta a mantenere organizzati i file nel bucket S3 di destinazione. L'ExportId
è un token univoco generato dal servizio per garantire che più esportazioni nello stesso bucket S3 e export-prefix
non si sovrascrivano l'un l'altro.
L'esportazione crea anche almeno 1 file per partizione. Per le partizioni vuote, la richiesta di esportazione creerà un file vuoto. Tutti gli elementi di ogni file provengono dal keyspace con hash di quella particolare partizione.
Nota
DynamoDB crea anche un file vuoto denominato _started
nella stessa directory dei file manifesto. Questo file verifica che il bucket di destinazione sia scrivibile e che l'esportazione sia iniziata. Può essere tranquillamente eliminato.
Il manifesto di riepilogo
Il file manifest-summary.json
contiene le informazioni di riepilogo del processo di esportazione. Ciò consente di sapere quali file di dati nella cartella di dati condivisa sono associati a questa esportazione. Il formato è il seguente:
{ "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" }
I file manifesto
Il file manifest-files.json
contiene informazioni sui file contenenti i dati della tabella esportati. Il file è in formato JSONrighe
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/data/sgad6417s6vss4p7owp0471bcq.json.gz" }
File di dati
DynamoDB può esportare i dati delle tabelle in due formati: DynamoDB JSON e Amazon Ion. Indipendentemente dal formato scelto, i dati verranno scritti in più file compressi denominati dalle chiavi. Anche questi file sono elencati nel file manifest-files.json
.
I file di dati per le esportazioni incrementali sono tutti contenuti in una cartella di dati comune nel bucket S3. I file manifesto si trovano nella cartella Export ID.
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 │ ...
Nei file di esportazione, l'output di ogni elemento include un timestamp che indica quando quell'elemento è stato aggiornato nella tabella e una struttura di dati che indica se si è trattato di un'operazione insert
, update
o delete
. Il timestamp si basa su un orologio di sistema interno e può differire dall'orologio dell'applicazione. Per le esportazioni incrementali, puoi scegliere tra due tipi di visualizzazione di esportazione per la struttura di output: immagini nuove e vecchie o solo immagini nuove.
-
La nuova immagine fornisce lo stato più recente dell'elemento
-
La vecchia immagine mostra lo stato dell'elemento subito prima della data e dell'ora di inizio specificate
I tipi di visualizzazione possono essere utili se desideri vedere come è stato modificato l'elemento durante il periodo di esportazione. Possono anche essere utili per aggiornare in modo efficiente i sistemi downstream, specialmente se tali sistemi hanno una chiave di partizione diversa dalla chiave di partizione di DynamoDB.
È possibile dedurre se un elemento dell'output di esportazione incrementale era insert
, update
o delete
osservando la struttura dell'output. La struttura di esportazione incrementale e le operazioni corrispondenti sono riepilogate nella tabella seguente per entrambi i tipi di visualizzazione di esportazione.
Operazione | Solo nuove immagini | Immagini nuove e vecchie |
---|---|---|
Insert |
Chiavi + nuova immagine |
Chiavi + nuova immagine |
Aggiornamento |
Chiavi + nuova immagine | Chiavi + nuova immagine + vecchia immagine |
Eliminazione | Chiavi | Chiavi + vecchia immagine |
Insert + delete | Nessun output | Nessun output |
DynamoDB JSON
Un'esportazione di tabella in formato JSON DynamoDB è costituita da un timestamp dei metadati che indica il tempo di scrittura dell'elemento, seguito dalle chiavi dell'elemento e dai valori. Di seguito viene illustrato un esempio di output JSON DynamoDB che utilizza il tipo di visualizzazione di esportazione come immagini nuove e vecchie.
// 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
Quando si esporta una tabella in formato Ion, i tipi di dati DynamoDB utilizzati nella tabella vengono mappati ai tipi di dati Ion
La tabella seguente elenca la mappatura dei tipi di dati DynamoDB ai tipi di dati ionici:
Tipo di dati DynamoDB | Rappresentazione Ion |
---|---|
String (S) | string |
Booleano () BOOL | bool |
Number (N) | decimal |
Binary (B) | blob |
Set (SS, NS, BS) | list (con annotazione del tipo $dynamodb_SS, $dynamodb_NS o $dynamodb_BS) |
Elenco | list |
Map | struct |
Gli elementi in un'esportazione Ion sono delimitati da nuove righe. Ogni riga inizia con un evidenziatore della versione Ion, seguito da un elemento in formato Ion. Nell'esempio seguente, un singolo elemento da un'esportazione DynamoDB JSON è stato formattato su più righe per motivi di leggibilità.
$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" } } }