

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criando e usando AWS Glue DataBrew recipes
<a name="recipes"></a>

Em DataBrew, uma *receita* é um conjunto de etapas de transformação de dados. Você pode aplicar essas etapas a uma amostra dos seus dados ou aplicar a mesma receita a um conjunto de dados.

A maneira mais fácil de desenvolver uma receita é criar um DataBrew projeto, no qual você pode trabalhar interativamente com uma amostra dos seus dados. Para obter mais informações, consulte. [Criando e usando AWS Glue DataBrew projetos](projects.md) Como parte do fluxo de trabalho de criação do projeto, uma nova receita (vazia) é criada e anexada ao projeto. Em seguida, você pode começar a criar sua receita adicionando transformações de dados.

**nota**  
Você pode incluir até 100 transformações de dados em uma única DataBrew receita. 

Ao continuar desenvolvendo sua receita, você pode salvar seu trabalho *publicando* a receita. DataBrew mantém uma lista das versões publicadas da sua receita. Você pode usar qualquer versão publicada em um trabalho de receita para executar a receita (em um trabalho de receita) e transformar seu conjunto de dados. Você também pode baixar uma cópia das etapas da receita para poder reutilizá-la em outros projetos ou em outras transformações do conjunto de dados. 

Você também pode desenvolver DataBrew receitas programaticamente, usando o AWS Command Line Interface(AWS CLI) ou um dos SDKs.AWS Na DataBrew API, as transformações são conhecidas como *ações de receita*.

**nota**  
Em uma sessão de DataBrew projeto interativa, cada transformação de dados aplicada resulta em uma chamada para a DataBrew API. Essas chamadas de API ocorrem automaticamente, sem que você precise conhecer os detalhes dos bastidores.

Mesmo que você não seja programador, é útil entender a estrutura de uma receita e como DataBrew organiza as ações da receita.

**Topics**
+ [Publicando uma nova versão da receita](#recipes.publishing)
+ [Definindo uma estrutura de receita](#recipes.structure)

## Publicando uma nova versão da receita
<a name="recipes.publishing"></a>

Você publica novas versões de uma receita em uma sessão interativa DataBrew do projeto. 

**Para publicar uma nova versão da receita**

1. No painel de receitas, escolha **Publicar**.

1. Insira uma descrição para essa versão da receita e escolha **Publicar**.

Você pode ver todas as suas receitas publicadas e suas versões escolhendo **PROJETOS** no painel de navegação.

## Definindo uma estrutura de receita
<a name="recipes.structure"></a>

Ao criar um projeto pela primeira vez usando o DataBrew console, você define uma receita a ser associada a esse projeto. Se você não tiver uma receita existente, o console cria uma para você.

Ao trabalhar com seu projeto no console, você usa a barra de ferramentas de transformação para aplicar ações aos dados de amostra do seu conjunto de dados. O console mostra as etapas da receita e a ordem dessas etapas à medida que você continua criando a receita. Você pode iterar e refinar a receita até ficar satisfeito com as etapas. 

Em[Conceitos básicos de AWS Glue DataBrew](getting-started.md), você cria uma receita para transformar um conjunto de dados de jogos de xadrez famosos. Você pode baixar uma cópia das etapas da receita escolhendo **Baixar como JSON ou Baixar como** **YAML, conforme** mostrado na captura de tela a seguir.

![Mais menu expandido mostrando as opções Importar receita, Baixar como YAML e Baixar como JSON.](http://docs.aws.amazon.com/pt_br/databrew/latest/dg/images/project-view-download-json.png)


O arquivo JSON baixado contém ações de receita correspondentes às transformações que você adicionou à sua receita. 

Uma nova receita não tem etapas. Você pode representar uma nova receita como uma lista JSON vazia, conforme mostrado a seguir.

```
[ ]
```

A seguir está um exemplo desse arquivo, para`chess-project-recipe`. A lista JSON contém vários objetos que descrevem as etapas da receita. Cada objeto na lista JSON está entre colchetes (). `{ }` As linhas JSON são delimitadas por vírgulas. 

```
[
    {
        "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"
            }
        }
    }
]
```

É mais fácil ver que cada ação é uma linha individual se adicionarmos apenas novas linhas para novas ações, conforme mostrado a seguir.

```
[
 { "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" } } }
]
```

As ações são executadas sequencialmente, na mesma ordem do arquivo:
+ `REMOVE_VALUES`— Para filtrar todos os jogos em que a classificação de um jogador é inferior a 1.800, a classificação mínima é necessária para ser um jogador de xadrez Classe A. Há duas ocorrências dessa ação: uma para remover jogadores do lado preto que não sejam pelo menos jogadores da Classe A e outra para remover jogadores do lado branco que não estejam nesse nível.
+ `GROUP_BY`— Para resumir os dados. Nesse caso, GROUP\_BY classifica as linhas em grupos com base nos valores de `winner` (`black`e). `white` Cada um desses grupos é então dividido ainda mais, classificando as linhas em subgrupos com base nos valores de `victory_status` (`mate`, `resign``outoftime`, e`draw`). Finalmente, o número de ocorrências para cada subgrupo é contado. O resumo resultante então substitui a amostra de dados original.
+ `REMOVE_VALUES`— Para excluir os resultados dos jogos que terminaram com`draw`.
+ `REPLACE_TEXT`— Para modificar os valores de`victory_status`. Há três ocorrências dessa ação — uma para cada`mate`, e. `resign` `oufoftime`

Em uma sessão de DataBrew projeto interativa, cada uma `RecipeAction` corresponde a uma transformação de dados que você aplica a uma amostra de dados.

DataBrew fornece mais de 200 ações de receitas. Para obter mais informações, consulte [Etapa da receita e referência da função](recipe-actions-reference.md).

### Usar condições
<a name="recipe-actions.conditions"></a>

Você pode usar *condições* para restringir o escopo de uma ação de receita. As condições são usadas em transformações que filtram os dados, por exemplo, removendo linhas indesejadas com base em um valor de coluna específico.

Vamos dar uma olhada mais de perto nas ações de uma receita`chess-project-recipe`.

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

Essa transformação lê os valores na `black_rating` coluna. A `ConditionExpressions` lista determina os critérios de filtragem: qualquer linha com um `black_rating` valor inferior a 1.800 é removida do conjunto de dados.

Uma transformação subsequente na receita faz a mesma coisa, pois`white_rating`. Dessa forma, os dados são limitados aos jogos em que cada jogador (preto ou branco) é classificado na Classe A ou superior.

Aqui está outro exemplo de uma condição, aplicada a uma coluna de dados de caracteres.

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

Essa transformação lê os valores na `winner` coluna, procurando o valor `draw` e removendo essas linhas. Dessa forma, os dados são limitados apenas aos jogos em que houve um vencedor claro.

DataBrew suporta as seguintes condições:
+ `IS`— O valor na coluna é igual ao valor fornecido na condição.
+ `IS_NOT`— O valor na coluna não é o mesmo que o valor fornecido na condição.
+ `IS_BETWEEN`— O valor na coluna está entre os `LESS_THAN_EQUAL` parâmetros `GREATER_THAN_EQUAL` e.
+ `CONTAINS`— O valor da string na coluna contém o valor que foi fornecido na condição.
+ `NOT_CONTAINS`— O valor na coluna não contém a cadeia de caracteres fornecida na condição.
+ `STARTS_WITH`— O valor na coluna começa com a cadeia de caracteres fornecida na condição.
+ `NOT_STARTS_WITH`— O valor na coluna não começa com a cadeia de caracteres fornecida na condição.
+ `ENDS_WITH`— O valor na coluna termina com a cadeia de caracteres fornecida na condição.
+ `NOT_ENDS_WITH`— O valor na coluna não termina com a cadeia de caracteres fornecida na condição.
+ `LESS_THAN`— O valor na coluna é menor que o valor fornecido na condição.
+ `LESS_THAN_EQUAL`— O valor na coluna é menor ou igual ao valor fornecido na condição.
+ `GREATER_THAN`— O valor na coluna é maior do que o valor fornecido na condição.
+ `GREATER_THAN_EQUAL`— O valor na coluna é maior ou igual ao valor fornecido na condição.
+ `IS_INVALID`— O valor na coluna tem um tipo de dados incorreto.
+ `IS_MISSING`— Não há valor na coluna.