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
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 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.
Publication d'une nouvelle version de recette
Vous publiez de nouvelles versions d'une recette dans une session de DataBrew projet interactive.
Pour publier une nouvelle version de recette
-
Dans le volet des recettes, choisissez Publier.
-
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
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.
DansDémarrage avec AWS Glue DataBrew, 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.
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, pourchess-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 dewinner(blacketwhite). Chacun de ces groupes est ensuite décomposé davantage, triant les lignes en sous-groupes en fonction des valeurs devictory_status(mate,resignoutoftime, etdraw). 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 pardraw. -
REPLACE_TEXT— Pour modifier les valeurs devictory_status. Il existe trois occurrences de cette action, une pourmateresign, 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.
Utilisation de conditions
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 dechess-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, carwhite_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 lesLESS_THAN_EQUALparamètresGREATER_THAN_EQUALet. -
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.