View a markdown version of this page

Formati di importazione Amazon S3 per DynamoDB - Amazon DynamoDB

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

Formati di importazione Amazon S3 per DynamoDB

DynamoDB può importare dati in tre formati: CSV, DynamoDB JSON e Amazon Ion.

CSV

Un file in formato CSV è costituito da più elementi delimitati da nuove righe. Per impostazione predefinita, DynamoDB interpreta la prima riga di un file di importazione come intestazione e prevede che le colonne siano delimitate da virgole. È inoltre possibile definire le intestazioni che verranno applicate, purché corrispondano al numero di colonne nel file. Se si definiscono le intestazioni in modo esplicito, la prima riga del file verrà importata come valori.

Nota

Durante l'importazione da file CSV, tutte le colonne diverse dall'intervallo hash e dalle chiavi della tabella di base e degli indici secondari vengono importate come stringhe DynamoDB.

Aggiunta di caratteri di escape alle virgolette doppie

Tutte le virgolette doppie presenti nel file CSV devono essere accompagnate da caratteri di escape. In caso contrario, come nell'esempio seguente, l'importazione avrà esito negativo:

id,value "123",Women's Full "Length" Dress

Questa stessa importazione avrà esito positivo se invece dei caratteri di escape vengono usati due set di virgolette doppie:

id,value """123""","Women's Full ""Length"" Dress"

Una volta che il testo è stato correttamente preceduto da un carattere di escape e importato, apparirà come appare nel file CSV originale:

id,value "123",Women's Full "Length" Dress

DynamoDB segue la convenzione di quotazione CSV standard (RFC 4180): una virgoletta doppia all'interno di un valore di campo viene evitata facendola precedere da un'altra virgoletta doppia (). "" Il backslash escaping (\"), comune nei linguaggi di programmazione e nell'output di molti strumenti di esportazione dei dati, non viene riconosciuto e un file che lo utilizza non verrà importato. Se i dati di origine utilizzano il backslash escape, converti ogni virgoletta con escape in una virgoletta doppia prima dell'importazione. Ad esempio, un valore esportato come:

"Women's \"Full Length\" Dress"

deve essere riformattato come segue prima di poter essere importato:

"Women's ""Full Length"" Dress"

Formattazione dei valori chiave

In DynamoDB, una chiave primaria è una chiave primaria semplice (una chiave di partizione) o una chiave primaria composita (una chiave di partizione e una chiave di ordinamento). Ogni attributo chiave contiene un singolo valore scalare. Se desideri un valore chiave che combini più campi, ad esempio unendo organizationId e barcode con un delimitatore asorganizationId#barcode, concateni tali campi in un'unica stringa e la memorizzi in un unico attributo chiave. Questa concatenazione è una convenzione applicativa; DynamoDB archivia e abbina l'attributo key come un unico valore.

Quando importate questi dati da CSV, inserite il valore completamente unito in una singola colonna la cui intestazione corrisponda al nome dell'attributo chiave. Non suddividete le parti in colonne separate: l'importazione associa ogni colonna a un attributo e non concatena le colonne in un valore chiave. Ad esempio, per una tabella il cui attributo chiave di partizione è denominato pk e l'attributo chiave di ordinamento è denominato: sk

pk,sk,barcode org123#ABC123,number#001,ABC123 org456#XYZ789,number#002,XYZ789

Se uno stesso valore chiave contiene il delimitatore di virgola, racchiudi l'intero valore tra virgolette doppie, ad esempio. "org123,east#ABC123"

Importazione di tipi di elementi eterogenei

Puoi utilizzare un singolo file CSV per importare diversi tipi di elementi in un'unica tabella. Definisci una riga di intestazione che includa tutti gli attributi dei tipi di articoli e lascia le colonne vuote per gli attributi che non si applicano a un determinato elemento. Le colonne vuote vengono omesse dall'elemento importato anziché archiviate come stringhe vuote.

PK,SK,EntityType,Name,Email,OrderDate,Amount,ProductName,Quantity USER#1,PROFILE,User,Alice,alice@example.com,,,, USER#1,ORDER#2024-01-15,Order,,,2024-01-15,99.99,, USER#1,ORDER#2024-02-10,Order,,,2024-02-10,149.50,, PRODUCT#101,METADATA,Product,,,,,Laptop,50 PRODUCT#102,METADATA,Product,,,,,Mouse,200 USER#2,PROFILE,User,Bob,bob@example.com,,,, USER#2,ORDER#2024-01-20,Order,,,2024-01-20,75.00,, PRODUCT#103,METADATA,Product,,,,,Keyboard,150 USER#3,PROFILE,User,Charlie,charlie@example.com,,,, PRODUCT#104,METADATA,Product,,,,,Monitor,30

In questo esempio, i profili utente, gli ordini e i prodotti condividono la stessa tabella. Ogni tipo di articolo utilizza solo le colonne pertinenti.

DynamoDB JSON

Un file in formato DynamoDB JSON può essere costituito da più oggetti elemento. Ogni singolo oggetto è nel formato JSON di marshalling standard di DynamoDB e le nuove righe vengono utilizzate come delimitatori di elementi. Questo è il formato JSON Lines (JSONL): un oggetto JSON per riga, senza array racchiuso e senza virgole tra gli elementi. Come caratteristica aggiuntiva, le esportazioni da point-in-time sono supportate come origine di importazione per impostazione predefinita.

Nota

Le nuove righe vengono utilizzate come delimitatori di elemento per un file in formato DynamoDB JSON e non devono essere utilizzate all’interno di un oggetto elemento.

{"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"}}} {"Item": {"Authors": {"SS": ["Author1", "Author2"]}, "Dimensions": {"S": "8.5 x 11.0 x 1.5"}, "ISBN": {"S": "444-444444444"}, "Id": {"N": "104"}, "InPublication": {"BOOL": false}, "PageCount": {"N": "600"}, "Price": {"N": "2000"}, "ProductCategory": {"S": "Book"}, "Title": {"S": "Book 104 Title"}}} {"Item": {"Authors": {"SS": ["Author1", "Author2"]}, "Dimensions": {"S": "8.5 x 11.0 x 1.5"}, "ISBN": {"S": "555-5555555555"}, "Id": {"N": "105"}, "InPublication": {"BOOL": false}, "PageCount": {"N": "600"}, "Price": {"N": "2000"}, "ProductCategory": {"S": "Book"}, "Title": {"S": "Book 105 Title"}}}

Amazon Ion

Amazon Ion è un formato gerarchico di serializzazione dei dati particolarmente tipizzato, autodescrittivo, creato per le esigenze di sviluppo rapido, disaccoppiamento ed efficienza quotidianamente associate alla progettazione di architetture orientate ai servizi su larga scala.

Quando si importano dati in formato Ion, i tipi di dati Ion vengono mappati ai tipi di dati DynamoDB nella nuova tabella DynamoDB.

N. S. Conversione dei tipi di dati da Ion a DynamoDB B

1

Ion Data Type

DynamoDB Representation

2

string

String (s)

3

bool

Boolean (BOOL)

4

decimal

Number (N)

5

blob

Binary (B)

6

list (with type annotation $dynamodb_SS, $dynamodb_NS, or $dynamodb_BS)

Set (SS, NS, BS)

7

list

List

8

struct

Map

Gli elementi in un file Ion sono delimitati da nuove righe. Ogni riga inizia con un evidenziatore della versione Ion, seguito da un elemento in formato Ion.

Nota

Nell'esempio seguente, abbiamo formattato gli elementi di un Ion-formatted file su più righe per migliorare la 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" } }, { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"444-4444444444", Id:104., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 104 Title" } }, { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"555-5555555555", Id:105., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 105 Title" } } ]