

# Criar um esquema único para cada caminho de inclusão do Amazon S3
<a name="crawler-grouping-policy"></a>

Por padrão, quando um crawler define tabelas para dados armazenados no Amazon S3, ele considera a compatibilidade dos dados e a similaridade do esquema. Os fatores de compatibilidade de dados que ele considera incluem: se os dados são do mesmo formato (por exemplo, JSON), do mesmo tipo de compactação (por exemplo, GZIP), a estrutura do caminho do Amazon S3 e outros atributos de dados. Similaridade de esquema é uma medida de até que ponto os esquemas de objetos do Amazon S3 separados são semelhantes.

Para ajudar a ilustrar essa opção, suponha que você defina um crawler com um caminho de inclusão `s3://amzn-s3-demo-bucket/table1/`. Quando o crawler é executado, ele localiza dois arquivos JSON com as seguintes características:
+ **Arquivo 1** – `S3://amzn-s3-demo-bucket/table1/year=2017/data1.json`
+ *Conteúdo do arquivo* – `{“A”: 1, “B”: 2}`
+ *Esquema* – `A:int, B:int`
+ **Arquivo 2** – `S3://amzn-s3-demo-bucket/table1/year=2018/data2.json`
+ *Conteúdo do arquivo* – `{“C”: 3, “D”: 4}`
+ *Esquema* – `C: int, D: int`

Por padrão, o crawler cria duas tabelas, chamadas `year_2017` e `year_2018`, porque os esquemas não são suficientemente semelhantes. No entanto, se a opção **Create a single schema for each S3 path (Criar um único esquema para cada caminho do S3)** for selecionada, e se os dados forem compatíveis, o crawler criará uma tabela. A tabela tem o esquema `A:int,B:int,C:int,D:int` e `partitionKey` `year:string`.

------
#### [ Console de gerenciamento da AWS ]

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Escolha **Crawlers** no **Catálogo de dados**.

1. Ao configurar um novo crawler, em **Saída e programação**, selecione a opção **Criar um único esquema para cada caminho do S3** em Opções avançadas. 

------
#### [ AWS CLI ]

Você pode configurar um crawler para `CombineCompatibleSchemas` em uma definição de tabela comum quando possível. Com essa opção, o crawler ainda considera a compatibilidade dos dados, mas ignora a semelhança dos esquemas específicos ao avaliar objetos do Amazon S3 no caminho de inclusão especificado.

Quando você configurar o crawler usando a AWS CLI, defina a seguinte opção de configuração:

```
aws glue update-crawler \
   --name myCrawler \
   --configuration '{"Version": 1.0, "Grouping": {"TableGroupingPolicy": "CombineCompatibleSchemas" }}'
```

------
#### [ API ]

Quando você configurar o crawler usando a API, defina a seguinte opção de configuração:

 Defina o campo `Configuration` com uma representação de string do objeto JSON a seguir na API do crawler, por exemplo: 

```
{
   "Version": 1.0,
   "Grouping": {
      "TableGroupingPolicy": "CombineCompatibleSchemas" }
}
```

------