

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.

# Création d'un schéma
<a name="schema-registry-gs4"></a>

Vous pouvez créer un schéma à l'aide des API AWS Glue ou de la console AWS Glue. 

**AWS Glue API**  
Vous pouvez suivre cette procédure pour effectuer cette tâche à l'aide des API AWS Glue.

Pour ajouter un nouveau schéma, utilisez l'API [CreateSchema action (Python : créer\_schéma)](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-CreateSchema).

Spécifiez une structure `RegistryId` pour indiquer un registre pour le schéma. Ou, omettez la valeur `RegistryId` pour utiliser le registre par défaut.

Spécifiez une valeur `SchemaName` composée de lettres, de chiffres, de traits d'union et de traits de soulignement, ainsi qu'une valeur `DataFormat` comme **AVRO** ou **JSON**. Une fois la valeur `DataFormat` définie sur un schéma, elle n'est pas modifiable.

Spécifiez un mode `Compatibility` :
+ *Backward (Descendant) (recommandé)* — L'application consommateur peut lire à la fois la version actuelle et précédente.
+ *Backward all (Descendant tout)* — L'application consommateur peut lire les versions actuelles et toutes les versions précédentes.
+ *Forward (Ascendant)* — L'application consommateur peut lire à la fois la version actuelle et la version ultérieure.
+ *Forward all (Ascendant tout)* — L'application consommateur peut lire à la fois les versions actuelles et les versions ultérieures.
+ *Full (Complet)* — Combinaison de Forward (Ascendant) et de Backward (Descendant).
+ *Full all (Complet tout)* — Combinaison de Backward all (Descendant tout) et de Forward all (Ascendant tout).
+ *None (Aucun)* — Aucune vérification de compatibilité n'est effectuée.
+ *Disabled (Désactivé)* — Empêche toute gestion des versions pour ce schéma.

Le cas échéant, spécifiez `Tags` pour votre schéma. 

Spécifiez une valeur `SchemaDefinition` pour définir le schéma au format de données Avro, JSON ou Protobuf. Veuillez consulter les exemples.

Pour le format de données Avro :

```
aws glue create-schema --registry-id RegistryName="registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1" --schema-name testschema --compatibility NONE --data-format AVRO  --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
```

Pour le format de données JSON :

```
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
```

Pour le format de données Protobuf :

```
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
```

**AWS Glue console**  
Pour ajouter un nouveau schéma à l'aide de la console AWS Glue :

1. Connectez-vous à la console AWS de gestion et ouvrez-la à l'AWS Glueadresse [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue\).

1. Dans le panneau de navigation, sous **Data catalog (Catalogue de données)**, choisissez **Schemas (Schémas)**.

1. Choisissez **Add schema (Ajouter un schéma)**.

1. Saisissez un **nom de schéma**, composé de lettres, de chiffres, de traits d'union, de traits de soulignement, de symboles dollar ou de dièses. Ce nom ne peut pas être modifié.

1. Cliquez sur l'onglet **Registry (Registre)** où le schéma sera stocké à partir du menu déroulant. Le registre parent ne peut pas être modifié après la création.

1. Quitter le **format de données** en tant qu'*Apache Avro* ou *JSON*. Ce format s'applique à toutes les versions de ce schéma.

1. Choisissez un **mode de compatibilité**.
   + *Backward (Descendant) (recommandé)* — Le récepteur peut lire à la fois les versions actuelles et précédentes.
   + *Backward All (Descendant tout)* — Le récepteur peut lire les versions actuelles et toutes les versions précédentes.
   + *Forward (Ascendant)* — L'expéditeur peut écrire à la fois les versions actuelles et précédentes.
   + *Forward all (Ascendant tout)* — L'expéditeur peut écrire la version actuelle et toutes les versions précédentes.
   + *Full (Complet)* — Combinaison de Forward (Ascendant) et de Backward (Descendant).
   + *Full All (Complet tout)* — Combinaison de Backward All (Descendant tout) et de Forward All (Ascendant tout).
   + *None (Aucun)* — Aucune vérification de compatibilité n'est effectuée.
   + *Disabled (Désactivé)* — Empêche toute gestion des versions pour ce schéma.

1. Saisissez une **description** facultative pour le registre de 250 caractères maximum.  
![Exemple de création d'un schéma.](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/schema_reg_create_schema.png)

1. Si vous le souhaitez, appliquez une ou plusieurs balises à votre schéma. Choisissez **Add new tag (Ajouter une nouvelle balise)** et spécifiez une **clé de balise**, et éventuellement une **valeur de balise**.

1. Dans la case **First schema version (Première version de schéma)**, saisissez ou collez votre schéma initial.

   Pour le format Avro, voir [Utilisation du format de données Avro](#schema-registry-avro)

   Pour le format JSON, voir [Utilisation du format de données JSON](#schema-registry-json)

1. Choisissez éventuellement **Add metadata (Ajouter des métadonnées)** pour ajouter des métadonnées de version afin d'annoter ou de classer votre version de schéma.

1. Choisissez **Create schema and version (Créer un schéma et une version)**.

![Exemple de création d'un schéma.](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/schema_reg_create_schema2.png)


Le schéma est créé et apparaît dans la liste sous **Schemas (Schémas)**.

## Utilisation du format de données Avro
<a name="schema-registry-avro"></a>

Avro fournit des services de sérialisation et d'échange de données. Avro stocke la définition des données au format JSON, ce qui la rend facile à lire et à interpréter. Les données elles-mêmes sont stockées au format binaire.

Pour plus d'informations sur la définition d'un schéma Apache Avro, veuillez consulter la [spécification d'Apache Avro](http://avro.apache.org/docs/current/spec.html).

## Utilisation du format de données JSON
<a name="schema-registry-json"></a>

Les données peuvent être sérialisées au format JSON. Le [format de schéma JSON](https://json-schema.org/) définit la norme pour le format de schéma JSON.