

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.

# Formats d’importation Amazon S3 pour DynamoDB
<a name="S3DataImport.Format"></a>

DynamoDB peut importer des données dans trois formats : CSV, JSON DynamoDB et Amazon Ion.

**Topics**
+ [CSV](#S3DataImport.Requesting.Formats.CSV)
+ [Json DynamoDB](#S3DataImport.Requesting.Formats.DDBJson)
+ [Amazon Ion](#S3DataImport.Requesting.Formats.Ion)

## CSV
<a name="S3DataImport.Requesting.Formats.CSV"></a>

Un fichier au format CSV se compose de plusieurs éléments délimités par des sauts de ligne. Par défaut, DynamoDB interprète la première ligne d’un fichier d’importation comme en-tête et s’attend à ce que les colonnes soient délimitées par des virgules. Vous pouvez également définir des en-têtes qui seront appliqués, à condition qu’ils correspondent au nombre de colonnes du fichier. Si vous définissez des en-têtes explicitement, la première ligne du fichier sera importée en tant que valeurs. 

**Note**  
Lors de l’importation à partir de fichiers CSV, toutes les colonnes autres que la plage de hachage et les clés de votre table de base et des index secondaires sont importées en tant que chaînes DynamoDB.

**Échapper les guillemets**

Tous les guillemets présents dans le fichier CSV doivent être échappés. S’ils ne sont pas échappés, comme dans l’exemple suivant, l’importation échoue : 

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

Cette même importation aboutit si les guillemets sont échappés par deux paires de guillemets :

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

Une fois que le texte a été correctement échappé et importé, il apparaît tel qu’il était dans le fichier CSV d’origine :

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

**Importation de types d'articles hétérogènes**

Vous pouvez utiliser un seul fichier CSV pour importer différents types d'articles dans un même tableau. Définissez une ligne d'en-tête qui inclut tous les attributs de vos types d'articles et laissez les colonnes vides pour les attributs qui ne s'appliquent pas à un article donné. Les colonnes vides sont omises de l'élément importé plutôt que stockées sous forme de chaînes vides.

```
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
```

Dans cet exemple, les profils utilisateur, les commandes et les produits partagent le même tableau. Chaque type d'élément utilise uniquement les colonnes qui le concernent.

## Json DynamoDB
<a name="S3DataImport.Requesting.Formats.DDBJson"></a>

Un ficher au format JSON DynamoDB peut comprendre plusieurs objets d’éléments. Chaque objet est au format JSON trié standard et des sauts de ligne sont utilisés en tant que délimiteurs d’éléments. En tant que fonction ajoutée, les exportations à partir d’un point dans le temps sont prises en charge en tant que source d’importation par défaut.

**Note**  
Les nouvelles lignes sont utilisées comme délimiteurs d’éléments pour un fichier au format DynamoDB JSON et ne doivent pas être utilisées dans un objet d’élément.

```
{"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
<a name="S3DataImport.Requesting.Formats.Ion"></a>

[Amazon Ion](https://amzn.github.io/ion-docs/) est un format de sérialisation de données hiérarchique riche, auto-descriptif et conçu pour répondre aux défis de développement rapide, de découplage et d'efficacité rencontrés lors de la conception d'architectures orientées service à grande échelle.

Lorsque vous importez des données au format Ion, les types de données Ion sont mappés à des types de données DynamoDB dans la nouvelle table DynamoDB.


| Nº de série | Conversion du type de données Ion en 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` | 

Les éléments d’un fichier 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.

**Note**  
Dans l’exemple suivant, un élément d’un fichier au format 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"
    }
  },
  {
    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"
    }
  }
]
```