

# Usar um crawler para adicionar uma tabela
<a name="schema-crawlers"></a>

Os crawlers do AWS Glue ajudam a descobrir o esquema para conjuntos de dados e registrá-los no catálogo de dados do AWS Glue. Os crawlers passam pelos dados e determinam o esquema. Além disso, o crawler pode detectar e registrar partições. Para obter mais informações, consulte [Definir crawlers](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) no *Guia do desenvolvedor do AWS Glue*. Tabelas de dados que foram rastreadas com sucesso podem ser consultadas no Athena.

**nota**  
O Athena não reconhece os [padrões de exclusão](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude) que você especifica para um crawler do AWS Glue. Por exemplo, se você tem um bucket do Amazon S3 com os arquivos `.csv` e `.json` e exclui os arquivos `.json` do crawler, o Athena consulta os dois grupos de arquivos. Para evitar isso, coloque os arquivos que você deseja excluir em um local diferente. 

## Criar um crawler do AWS Glue
<a name="data-sources-glue-crawler-setup"></a>

É possível criar um crawler começando no console do Athena e usando o console do AWS Glue de forma integrada. Ao criar o crawler, você especifica um local de dados no Amazon S3 para crawling.

**Para criar um crawler no AWS Glue começando do console do Athena**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. No editor de consultas, ao lado de **Tabelas e visualizações**, escolha **Criar** e, em seguida, selecione **Crawler do AWS Glue**. 

1. No console do **AWS Glue**, na página **Add crawler (Adicionar crawler)**, siga as etapas para criar um crawler. Para obter mais informações, consulte [Usar crawlers do AWS Glue](#schema-crawlers) neste guia e [Como preencher o AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-catalog-methods.html) no *Guia do desenvolvedor do AWS Glue*.

**nota**  
O Athena não reconhece os [padrões de exclusão](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude) que você especifica para um crawler do AWS Glue. Por exemplo, se você tem um bucket do Amazon S3 com os arquivos `.csv` e `.json` e exclui os arquivos `.json` do crawler, o Athena consulta os dois grupos de arquivos. Para evitar isso, coloque os arquivos que você deseja excluir em um local diferente.

Depois de um rastreamento, o crawler do AWS Glue atribui automaticamente determinados metadados para ajudar a torná-los compatíveis com outras tecnologias externas, como Apache Hive, Presto e Spark. Às vezes, o crawler pode atribuir incorretamente propriedades de metadados. Corrija manualmente as propriedades no AWS Glue antes de consultar a tabela usando o Athena. Para obter mais informações, consulte [Exibir e editar detalhes da tabela](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details) no *Guia do desenvolvedor do AWS Glue*.

O AWS Glue pode atribuir indevidamente metadados quando um arquivo CSV tem aspas em torno de cada campo de dados, processando a propriedade `serializationLib` incorretamente. Para obter mais informações, consulte [Lidar com dados CSV entre aspas](schema-csv.md#schema-csv-quotes).

# Usar várias fontes de dados com crawlers
<a name="schema-crawlers-data-sources"></a>

Quando um crawler do AWS Glue verifica o Amazon S3 e detecta vários diretórios, ele usa uma heurística para determinar onde a raiz de uma tabela está na estrutura do diretório e quais diretórios são partições da tabela. Em alguns casos, quando o esquema detectado em dois ou mais diretórios é semelhante, o crawler pode tratá-lo como partições, em vez de tabelas à parte. Uma maneira de ajudar o crawler a descobrir tabelas individuais é adicionar o diretório raiz de cada tabela como um armazenamento de dados para o crawler.

As seguintes partições no Amazon S3 são um exemplo:

```
s3://amzn-s3-demo-bucket/folder1/table1/partition1/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition2/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition3/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition4/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition5/file.txt
```

Se o esquema de `table1` e `table2` for semelhante, e uma única origem dos dados for definida como `s3://amzn-s3-demo-bucket/folder1/` no AWS Glue, o crawler poderá criar uma única tabela com duas colunas de partição: uma com `table1` e `table2` e outra com `partition1` a `partition5`.

Para fazer com que o crawler do AWS Glue crie duas tabelas separadas, defina o crawler para ter duas fontes de dados, `s3://amzn-s3-demo-bucket/folder1/table1/` e `s3://amzn-s3-demo-bucket/folder1/table2`, conforme mostrado no procedimento a seguir.

**Para adicionar um armazenamento de dados do S3 a um crawler existente no AWS Glue**

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. No painel de navegação, escolha **Rastreadores**.

1. Escolha o link para o seu crawler e, em seguida, escolha **Edit** (Editar). 

1. Em **Step 2: Choose data sources and classifiers** (Etapa 2: Escolher fontes de dados e classificadores), escolha **Edit**(Editar). 

1. Em **Fontes de dados e catálogos**, escolha **Adicionar uma fonte de dados**.

1. Na caixa de diálogo **Add data source** (Adicionar fonte de dados), em **S3 path** (Caminho do S3), escolha **Browse** (Procurar). 

1. Escolha o bucket que deseja usar e, em seguida, escolha **Choose** (Escolher).

   A fonte de dados que você adicionou aparece na lista **Data sources** (Fontes de dados).

1. Escolha **Próximo**.

1. Na página **Configure security settings** (Definir configurações de segurança), crie ou escolha um perfil do IAM para o crawler e, em seguida, escolha **Next** (Próximo).

1. Certifique-se de que o caminho do S3 termine em uma barra à direita e, em seguida, escolha **Add an S3 data source** (Adicionar uma fonte de dados do S3).

1. Na página **Set output and scheduling** (Definir saída e programação), em **Output configuration** (Configuração da saída), escolha o banco de dados de destino.

1. Escolha **Avançar**.

1. Na página **Review and update** (Revisar e atualizar), revise as escolhas feitas. Para editar uma etapa, escolha **Edit** (Editar).

1.  Selecione **Atualizar**.

# Agendar um crawler para manter a sincronização entre o AWS Glue Data Catalog e o Amazon S3
<a name="schema-crawlers-schedule"></a>

AWS GlueOs crawlers do podem ser configurados para serem executados em uma programação ou sob demanda. Para obter mais informações, consulte [Programações baseadas em hora para trabalhos e crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html) no *Guia do desenvolvedor do AWS Glue*.

Se você tiver dados que chegam a uma tabela particionada em um horário fixo, poderá configurar um crawler do AWS Glue para ser executado de acordo com a programação para detectar e atualizar as partições da tabela. Isso pode eliminar a necessidade de executar um comando `MSCK REPAIR` possivelmente longo e caro ou executar manualmente um comando `ALTER TABLE ADD PARTITION`. Para obter mais informações, consulte [Partições de tabela](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html#tables-partition) no *Guia do desenvolvedor do AWS Glue*.