

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 et utilisation AWS Glue DataBrew recipes
<a name="recipes"></a>

Dans DataBrew, une *recette* est un ensemble d'étapes de transformation de données. Vous pouvez appliquer ces étapes à un échantillon de vos données ou appliquer la même recette à un ensemble de données.

Le moyen le plus simple de développer une recette consiste à créer un DataBrew projet dans lequel vous pouvez travailler de manière interactive avec un échantillon de vos données. Pour plus d'informations, consultez. [Création et utilisation AWS Glue DataBrew projects](projects.md) Dans le cadre du processus de création de projet, une nouvelle recette (vide) est créée et jointe au projet. Vous pouvez ensuite commencer à élaborer votre recette en ajoutant des transformations de données.

**Note**  
Vous pouvez inclure jusqu'à 100 transformations de données dans une seule DataBrew recette. 

Au fur et à mesure que vous développez votre recette, vous pouvez enregistrer votre travail en *publiant* la recette. DataBrew tient à jour une liste des versions publiées de votre recette. Vous pouvez utiliser n'importe quelle version publiée dans une tâche de recette pour exécuter la recette (dans une tâche de recette) afin de transformer votre ensemble de données. Vous pouvez également télécharger une copie des étapes de la recette afin de pouvoir réutiliser la recette dans d'autres projets ou dans d'autres transformations de jeux de données. 

Vous pouvez également développer des DataBrew recettes par programmation, en utilisant le AWS Command Line Interface(AWS CLI) ou l'un des AWS SDK. Dans l' DataBrew API, les transformations sont appelées *actions de recette*.

**Note**  
Dans une session de DataBrew projet interactive, chaque transformation de données que vous appliquez entraîne un appel à l' DataBrew API. Ces appels d'API se produisent automatiquement, sans que vous ayez à connaître les détails des coulisses.

Même si vous n'êtes pas programmeur, il est utile de comprendre la structure d'une recette et la façon dont les actions DataBrew de la recette sont organisées.

**Topics**
+ [Publication d'une nouvelle version de recette](#recipes.publishing)
+ [Définition de la structure d'une recette](#recipes.structure)

## Publication d'une nouvelle version de recette
<a name="recipes.publishing"></a>

Vous publiez de nouvelles versions d'une recette dans une session de DataBrew projet interactive. 

**Pour publier une nouvelle version de recette**

1. Dans le volet des recettes, choisissez **Publier**.

1. Entrez une description pour cette version de la recette, puis choisissez **Publier**.

Vous pouvez consulter toutes vos recettes publiées, ainsi que leurs versions, en choisissant **PROJETS** dans le volet de navigation.

## Définition de la structure d'une recette
<a name="recipes.structure"></a>

Lorsque vous créez un projet pour la première fois à l'aide de la DataBrew console, vous définissez une recette à associer à ce projet. Si vous n'avez pas de recette existante, la console en crée une pour vous.

Lorsque vous travaillez sur votre projet dans la console, vous utilisez la barre d'outils de transformation pour appliquer des actions aux exemples de données de votre ensemble de données. La console affiche les étapes de la recette, ainsi que l'ordre de ces étapes, au fur et à mesure que vous poursuivez la création de la recette. Vous pouvez répéter et affiner la recette jusqu'à ce que vous soyez satisfait des étapes. 

Dans[Démarrage avec AWS Glue DataBrew](getting-started.md), vous créez une recette pour transformer un ensemble de données de jeux d'échecs célèbres. Vous pouvez télécharger une copie des étapes de la recette en choisissant **Télécharger au format JSON ou Télécharger** **au format YAML**, comme indiqué dans la capture d'écran ci-dessous.

![Plus de menu développé avec les options Importer la recette, Télécharger au format YAML et Télécharger au format JSON.](http://docs.aws.amazon.com/fr_fr/databrew/latest/dg/images/project-view-download-json.png)


Le fichier JSON téléchargé contient les actions de recette correspondant aux transformations que vous avez ajoutées à votre recette. 

Une nouvelle recette ne comporte aucune étape. Vous pouvez représenter une nouvelle recette sous la forme d'une liste JSON vide, comme indiqué ci-dessous.

```
[ ]
```

Voici un exemple d'un tel fichier, pour`chess-project-recipe`. La liste JSON contient plusieurs objets qui décrivent les étapes de la recette. Chaque objet de la liste JSON est entouré d'accolades ()`{ }`. Les lignes JSON sont délimitées par des virgules. 

```
[
    {
        "Action": {
            "Operation": "REMOVE_VALUES",
            "Parameters": {
                "sourceColumn": "black_rating"
            }
        },
        "ConditionExpressions": [
            {
                "Condition": "LESS_THAN",
                "Value": "1800",
                "TargetColumn": "black_rating"
            }
        ]
    },
    {
        "Action": {
            "Operation": "REMOVE_VALUES",
            "Parameters": {
                "sourceColumn": "white_rating"
            }
        },
        "ConditionExpressions": [
            {
                "Condition": "LESS_THAN",
                "Value": "1800",
                "TargetColumn": "white_rating"
            }
        ]
    },
    {
        "Action": {
            "Operation": "GROUP_BY",
            "Parameters": {
                "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]",
                "sourceColumns": "[\"winner\",\"victory_status\"]",
                "useNewDataFrame": "true"
            }
        }
    },
    {
        "Action": {
            "Operation": "REMOVE_VALUES",
            "Parameters": {
                "sourceColumn": "winner"
            }
        },
        "ConditionExpressions": [
            {
                "Condition": "IS",
                "Value": "[\"draw\"]",
                "TargetColumn": "winner"
            }
        ]
    },
    {
        "Action": {
            "Operation": "REPLACE_TEXT",
            "Parameters": {
                "pattern": "mate",
                "sourceColumn": "victory_status",
                "value": "checkmate"
            }
        }
    },
    {
        "Action": {
            "Operation": "REPLACE_TEXT",
            "Parameters": {
                "pattern": "resign",
                "sourceColumn": "victory_status",
                "value": "other player resigned"
            }
        }
    },
    {
        "Action": {
            "Operation": "REPLACE_TEXT",
            "Parameters": {
                "pattern": "outoftime",
                "sourceColumn": "victory_status",
                "value": "ran out of time"
            }
        }
    }
]
```

Il est plus facile de voir que chaque action est une ligne individuelle si nous ajoutons uniquement de nouvelles lignes pour les nouvelles actions, comme indiqué ci-dessous.

```
[
 { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] },
 { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] },
 { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } },
 { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] },
 { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } },
 { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } },
 { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } }
]
```

Les actions sont effectuées de manière séquentielle, dans le même ordre que dans le fichier :
+ `REMOVE_VALUES`— Pour filtrer toutes les parties dont la note d'un joueur est inférieure à 1 800, la note minimale requise pour être un joueur d'échecs de classe A. Cette action se produit à deux reprises : l'une pour éliminer les joueurs du côté noir qui ne sont pas au moins des joueurs de classe A, et l'autre pour supprimer les joueurs du côté blanc qui n'ont pas atteint ce niveau.
+ `GROUP_BY`— Pour résumer les données. Dans ce cas, GROUP\_BY trie les lignes en groupes en fonction des valeurs de `winner` (`black`et`white`). Chacun de ces groupes est ensuite décomposé davantage, triant les lignes en sous-groupes en fonction des valeurs de `victory_status` (`mate`, `resign``outoftime`, et`draw`). Enfin, le nombre d'occurrences pour chaque sous-groupe est compté. Le résumé obtenu remplace ensuite l'échantillon de données d'origine.
+ `REMOVE_VALUES`— Pour supprimer les résultats des parties terminées par`draw`.
+ `REPLACE_TEXT`— Pour modifier les valeurs de`victory_status`. Il existe trois occurrences de cette action, une pour `mate``resign`, et une pour chacune. `oufoftime`

Dans une session de DataBrew projet interactive, chacune `RecipeAction` correspond à une transformation de données que vous appliquez à un échantillon de données.

DataBrew fournit plus de 200 actions de recette. Pour de plus amples informations, veuillez consulter [Étape de recette et référence des fonctions](recipe-actions-reference.md).

### Utilisation de conditions
<a name="recipe-actions.conditions"></a>

Vous pouvez utiliser *des conditions* pour réduire la portée d'une action de recette. Les conditions sont utilisées dans les transformations qui filtrent les données, par exemple pour supprimer les lignes indésirables en fonction d'une valeur de colonne particulière.

Examinons de plus près les actions d'une recette à partir de`chess-project-recipe`.

```
  {
    "Action": {
      "Operation": "REMOVE_VALUES",
      "Parameters": {
        "sourceColumn": "black_rating"
      }
    },
    "ConditionExpressions": [
      {
        "Condition": "LESS_THAN",
        "Value": "1800",
        "TargetColumn": "black_rating"
      }
    ]
  }
```

Cette transformation lit les valeurs de la `black_rating` colonne. La `ConditionExpressions` liste détermine les critères de filtrage : toute ligne dont `black_rating` la valeur est inférieure à 1 800 est supprimée du jeu de données.

Une transformation ultérieure de la recette fait la même chose, car`white_rating`. De cette façon, les données sont limitées aux jeux où chaque joueur (noir ou blanc) est classé dans la classe A ou plus.

Voici un autre exemple de condition appliquée à une colonne de données de caractères.

```
  {
    "Action": {
      "Operation": "REMOVE_VALUES",
      "Parameters": {
        "sourceColumn": "winner"
      }
    },
    "ConditionExpressions": [
      {
        "Condition": "IS",
        "Value": "[\"draw\"]",
        "TargetColumn": "winner"
      }
    ]
  }
```

Cette transformation lit les valeurs de la `winner` colonne, recherche la valeur `draw` et supprime ces lignes. De cette façon, les données sont limitées aux seuls jeux où il y a eu un gagnant clair.

DataBrew prend en charge les conditions suivantes :
+ `IS`— La valeur de la colonne est identique à la valeur fournie dans la condition.
+ `IS_NOT`— La valeur de la colonne n'est pas la même que celle fournie dans la condition.
+ `IS_BETWEEN`— La valeur de la colonne se situe entre les `LESS_THAN_EQUAL` paramètres `GREATER_THAN_EQUAL` et.
+ `CONTAINS`— La valeur de chaîne de la colonne contient la valeur fournie dans la condition.
+ `NOT_CONTAINS`— La valeur de la colonne ne contient pas la chaîne de caractères fournie dans la condition.
+ `STARTS_WITH`— La valeur de la colonne commence par la chaîne de caractères fournie dans la condition.
+ `NOT_STARTS_WITH`— La valeur de la colonne ne commence pas par la chaîne de caractères fournie dans la condition.
+ `ENDS_WITH`— La valeur de la colonne se termine par la chaîne de caractères fournie dans la condition.
+ `NOT_ENDS_WITH`— La valeur de la colonne ne se termine pas par la chaîne de caractères fournie dans la condition.
+ `LESS_THAN`— La valeur de la colonne est inférieure à la valeur spécifiée dans la condition.
+ `LESS_THAN_EQUAL`— La valeur de la colonne est inférieure ou égale à la valeur fournie dans la condition.
+ `GREATER_THAN`— La valeur de la colonne est supérieure à la valeur fournie dans la condition.
+ `GREATER_THAN_EQUAL`— La valeur de la colonne est supérieure ou égale à la valeur fournie dans la condition.
+ `IS_INVALID`— Le type de données de la valeur de la colonne est incorrect.
+ `IS_MISSING`— Il n'y a aucune valeur dans la colonne.