DynamoDB は、CSV、DynamoDB JSON、および Amazon Ion の 3 つの形式でデータをインポートできます。
CSV
CSV 形式のファイルは、改行で区切られた複数の項目で構成されます。デフォルトでは、DynamoDB はインポートファイルの最初の行をヘッダーとして解釈し、列がカンマで区切られることを想定しています。ファイル内の列数と一致する限り、適用されるヘッダーを定義することもできます。ヘッダーを明示的に定義すると、ファイルの最初の行が値としてインポートされます。
注記
CSV ファイルからインポートする場合、ベーステーブルとセカンダリインデックスのハッシュ範囲とキー以外のすべての列が DynamoDB 文字列としてインポートされます。
二重引用符のエスケープ
CSV ファイルに存在する二重引用符文字はすべてエスケープする必要があります。エスケープしないと、次の例に示すように、インポートは失敗します。
id,value
"123",Women's Full Lenth Dress
引用符を 2 組の二重引用符でエスケープすると、この同じインポートが成功します。
id,value
"""123""",Women's Full Lenth Dress
テキストを適切にエスケープしてインポートすると、元の CSV ファイルと同じように表示されます。
id,value
"123",Women's Full Lenth Dress
DynamoDB Json
DynamoDB JSON 形式のファイルは、複数の Item オブジェクトで構成できます。個々のオブジェクトは DynamoDB のスタンダードマーシャリングされた JSON 形式で、改行が項目区切り文字として使用されます。追加機能として、特定の時点からのエクスポートは、デフォルトでインポートソースとしてサポートされています。
注記
新しい行は DynamoDB JSON 形式のファイルの項目区切り文字として使用されるため、項目オブジェクト内では使用しないでください。
[{
"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"
}
}
}]
注記
新しい行は DynamoDB JSON 形式のファイルの項目区切り文字として使用されるため、項目オブジェクト内では使用しないでください。
[{
"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
データを Ion 形式でインポートすると、Ion データ型は新しい DynamoDB テーブルの DynamoDB データ型にマップされます。
S 番号 | Ion から DynamoDB へのデータ型変換 | B |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ion ファイル内の項目は、改行で区切られます。各行は Ion バージョンマーカーで始まり、Ion 形式の項目が続きます。
注記
次の例では、可読性を高めるため、Ion 形式ファイルの項目を複数の行にフォーマットしています。
$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"
}
}
]