View a markdown version of this page

Amazon-S3-Importformate für DynamoDB - 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.

Amazon-S3-Importformate für DynamoDB

DynamoDB kann Daten in drei Formaten importieren: CSV, DynamoDB JSON und Amazon Ion.

CSV

Eine Datei im CSV-Format besteht aus mehreren Elementen, die durch Zeilenumbrüche getrennt sind. Standardmäßig interpretiert DynamoDB die erste Zeile einer Importdatei als Kopfzeile und erwartet, dass Spalten durch Kommata getrennt werden. Sie können auch Kopfzeilen definieren, die angewendet werden, sofern sie mit der Anzahl der Spalten in der Datei übereinstimmen. Wenn Sie Kopfzeilen explizit definieren, wird die erste Zeile der Datei als Werte importiert.

Anmerkung

Beim Import aus CSV-Dateien werden alle Spalten außer dem Hash-Bereich und den Schlüsseln Ihrer Basistabelle und sekundären Indizes als DynamoDB-Zeichenfolgen importiert.

Maskieren von doppelten Anführungszeichen mit Escape-Zeichen

Alle doppelten Anführungszeichen in der CSV-Datei müssen mit Escape-Zeichen maskiert werden. Wenn sie nicht maskiert werden, wie im folgenden Beispiel, schlägt der Importvorgang fehl:

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

Derselbe Importvorgang ist erfolgreich, wenn die Anführungszeichen mit zwei Sätzen doppelter Anführungszeichen maskiert werden:

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

Sobald der Text ordnungsgemäß maskiert und importiert wurde, wird er wie in der ursprünglichen CSV-Datei angezeigt:

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

DynamoDB folgt der standardmäßigen CSV-Anführungskonvention (RFC 4180): Ein doppeltes Anführungszeichen innerhalb eines Feldwerts wird maskiert, indem ihm ein weiteres doppeltes Anführungszeichen () vorangestellt wird. "" Backslash-Escaping (\"), das in Programmiersprachen und in der Ausgabe vieler Datenexport-Tools üblich ist, wird nicht erkannt, und eine Datei, die es verwendet, kann nicht importiert werden. Wenn Ihre Quelldaten Backslash-Escaping verwenden, konvertieren Sie vor dem Import jedes maskierte Anführungszeichen in ein doppeltes Anführungszeichen. Zum Beispiel ein Wert, der exportiert wurde als:

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

muss wie folgt neu formatiert werden, bevor er importiert werden kann:

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

Formatieren von Schlüsselwerten

In DynamoDB ist ein Primärschlüssel entweder ein einfacher Primärschlüssel (ein Partitionsschlüssel) oder ein zusammengesetzter Primärschlüssel (ein Partitionsschlüssel und ein Sortierschlüssel). Jedes Schlüsselattribut enthält einen einzelnen Skalarwert. Wenn Sie nach einem Schlüsselwert suchen, der mehrere Felder kombiniert (z. B. durch Zusammenfügen organizationId und barcode mit einem Trennzeichen als), organizationId#barcode verketten Sie diese Felder zu einer Zeichenfolge und speichern sie in einem einzigen Schlüsselattribut. Bei dieser Verkettung handelt es sich um eine Anwendungskonvention. DynamoDB speichert und ordnet das Schlüsselattribut als einen Wert zu.

Wenn Sie diese Daten aus CSV importieren, fügen Sie den vollständig verknüpften Wert in eine einzelne Spalte ein, deren Überschrift dem Namen des Schlüsselattributs entspricht. Teilen Sie die Teile nicht in separate Spalten auf: Beim Import wird jede Spalte einem Attribut zugeordnet und die Spalten werden nicht zu einem Schlüsselwert verkettet. Zum Beispiel für eine Tabelle, deren Partitionsschlüsselattribut benannt ist pk und deren Sortierschlüsselattribut benannt ist: sk

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

Wenn ein Schlüsselwert selbst das Kommatrennzeichen enthält, setzen Sie den gesamten Wert beispielsweise in doppelte Anführungszeichen. "org123,east#ABC123"

Heterogene Elementtypen importieren

Sie können eine einzelne CSV-Datei verwenden, um verschiedene Elementtypen in eine Tabelle zu importieren. Definieren Sie eine Kopfzeile, die alle Attribute Ihrer Artikeltypen enthält, und lassen Sie die Spalten leer für Attribute, die nicht für einen bestimmten Artikel gelten. Leere Spalten werden im importierten Element weggelassen und nicht als leere Zeichenketten gespeichert.

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 diesem Beispiel verwenden Benutzerprofile, Bestellungen und Produkte dieselbe Tabelle. Jeder Elementtyp verwendet nur die für ihn relevanten Spalten.

DynamoDB JSON

Ein Tabellenexport im DynamoDB-JSON-Format kann aus mehreren Elementobjekten bestehen. Jedes einzelne Objekt befindet sich im Standard-JSON-Format von DynamoDB, und Zeilenumbrüche werden als Elementtrennzeichen verwendet. Dies ist das Format JSON Lines (JSONL): ein JSON-Objekt pro Zeile, ohne einschließendes Array und ohne Kommas zwischen Elementen. Als zusätzliche Funktion werden zeitpunktbezogene Exporte standardmäßig als Importquelle unterstützt.

Anmerkung

Neue Zeilen werden als Elementtrennzeichen für eine Datei im DynamoDB-JSON-Format verwendet und sollten nicht innerhalb eines Elementobjekts verwendet werden.

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

Wenn Sie eine Tabelle im Ion-Format exportieren, werden die in der Tabelle verwendeten DynamoDB-Datentypen Ion-Datentypen zugeordnet.

S. Nein. Konvertierung des Datentyps von Ion zu 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

Elemente in einem Ion-Export werden durch Zeilenumbrüche getrennt. Jede Zeile beginnt mit einer Ion-Versionsmarkierung, gefolgt von einem Element im Ion-Format.

Anmerkung

Im folgenden Beispiel haben wir Elemente aus einer Ion-formatted Datei in mehreren Zeilen formatiert, um die Lesbarkeit zu verbessern.

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