Definir crawlers - AWS Glue

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

Definir crawlers

Você pode usar um crawler para preencher o Catálogo de dados do AWS Glue com tabelas. Este é o principal método usado pela maioria dos usuários do AWS Glue. Um crawler pode rastrear vários armazenamentos de dados em uma única execução. Após a conclusão, o crawler cria ou atualiza uma ou mais tabelas no Data Catalog. As tarefas de extração, transformação e carregamento (ETL) que você define no AWS Glue usam essas tabelas do Data Catalog como origens e destinos. A tarefa de ETL lê e grava os armazenamentos de dados que são especificados nas tabelas do Data Catalog de origem e de destino.

Para obter mais informações sobre como usar o console do AWS Glue para adicionar um crawler, consulte Trabalhar com crawlers no console do AWS Glue.

Quais armazenamentos de dados eu posso rastrear?

Os crawlers podem rastrear armazenamentos de dados baseados em arquivos e baseados em tabelas .

Os crawlers podem rastrear os seguintes armazenamentos de dados por meio das respectivas interfaces nativas:

  • Amazon Simple Storage Service (Amazon S3)

  • Amazon DynamoDB

Os crawlers podem rastrear os seguintes armazenamentos de dados por meio de uma conexão JDBC:

  • Amazon Redshift

  • Amazon Relational Database Service (Amazon RDS)

    • Amazon Aurora

    • Microsoft SQL Server

    • MySQL

    • Oracle

    • PostgreSQL

  • Bancos de dados acessíveis ao público

    • Aurora

    • Microsoft SQL Server

    • MySQL

    • Oracle

    • PostgreSQL

nota

Atualmente, o AWS Glue não é compatível com crawlers para streams de dados.

Para o Amazon S3 e o Amazon DynamoDB, os crawlers usam uma função do AWS Identity and Access Management (IAM) para conceder permissão de acesso aos armazenamentos de dados. A função que você transmite ao crawler precisa ter permissão para acessar caminhos do Amazon S3 e tabelas do Amazon DynamoDB que serão rastreadas. Para conexões JDBC, os crawlers usam as credenciais de nome de usuário e senha. Para obter mais informações, consulte Definir conexões no Data Catalog do AWS Glue.

Ao definir um armazenamento de dados do Amazon S3 a ser rastreado, você pode escolher se deseja rastrear um caminho na sua conta ou em outra conta. A saída do crawler consiste em uma ou mais tabelas de metadados definidas no Catálogo de dados do AWS Glue. Uma tabela é criada para um ou mais arquivos encontrados no seu armazenamento de dados. Se todos os arquivos do Amazon S3 em uma pasta tiverem o mesmo esquema, o crawler criará uma tabela. Além disso, se o objeto do Amazon S3 for particionado, apenas uma tabela de metadados será criada.

Se o armazenamento de dados que está sendo rastreado for um banco de dados relacional, a saída também será um conjunto das tabelas de metadados definidas no Catálogo de dados do AWS Glue. Ao rastrear um banco de dados relacional, você precisa fornecer credenciais de autorização para uma conexão para ler objetos no mecanismo de banco de dados. Dependendo do tipo de mecanismo de banco de dados, você pode escolher quais objetos são rastreados, como bancos de dados, esquemas e tabelas.

Se o armazenamento de dados que está sendo rastreado for uma ou mais tabelas do Amazon DynamoDB, a saída será uma ou mais tabelas de metadados no Catálogo de dados do AWS Glue. Ao definir um crawler usando o console do AWS Glue, você especifica uma tabela do DynamoDB. Se você estiver usando a API do AWS Glue, especifique uma lista de tabelas.

O que acontece quando um crawler é executado?

Quando um rastreador é executado, ele obtém as ações a seguir para interrogar um armazenamento de dados:

  • Classifica dados para determinar o formato, o esquema e as propriedades associadas de dados brutos – Você pode configurar os resultados de classificação criando um classificador personalizado.

  • Agrupa dados em tabelas ou partições – Os dados são agrupados com base na heurística do rastreador.

  • Grava metadados no Data Catalog – Você pode configurar como o rastreador adiciona, atualiza e exclui tabelas e partições.

As tabelas de metadados que um rastreador cria ficam contidas em um banco de dados quando você define um rastreador. Se o seu crawler não definir um banco de dados, suas tabelas serão colocadas no banco de dados padrão. Além disso, cada tabela possui uma coluna de classificação preenchida pelo primeiro classificador que reconheceu com sucesso o armazenamento de dados.

Se o arquivo rastreado estiver compactado, o crawler precisará fazer download dele para processá-lo. Quando um rastreador é executado, ele interroga os arquivos para determinar seu formato e tipo de compactação e grava essas propriedades no Data Catalog. Alguns formatos de arquivo (por exemplo, Apache Parquet) permitem que você compacte partes do arquivo à medida que ele é gravado. Para esses arquivos, os dados compactados são um componente interno do arquivo e o AWS Glue não preenche a propriedade compressionType quando grava tabelas no Data Catalog. Por outro lado, se um arquivo inteiro for compactado por um algoritmo de compactação (por exemplo, gzip), a propriedade compressionType será preenchida quando as tabelas forem gravadas no Data Catalog.

O crawler gera os nomes das tabelas que ele cria. Os nomes das tabelas armazenadas no Catálogo de dados do AWS Glue obedecem a estas regras:

  • São permitidos somente caracteres alfanuméricos e sublinhados (_).

  • Prefixos personalizados não podem conter mais do que 64 caracteres.

  • O comprimento máximo do nome não pode ser superior a 128 caracteres. O crawler trunca nomes gerados para ajustá-los de acordo com o limite.

  • Se forem encontrados nomes de tabelas duplicados, o crawler adicionará um sufixo de string hash a esse nome.

Se seu crawler for executado mais de uma vez (talvez em uma programação), ele procurará arquivos ou tabelas novos ou alterados no seu armazenamento de dados. A saída do crawler inclui novas tabelas e partições encontradas desde a execução anterior.

Como um crawler determina quando criar partições?

Quando um crawler do AWS Glue examina o Amazon S3 e detecta várias pastas em um bucket, ele determina a raiz de uma tabela na estrutura de pastas e quais pastas são partições de uma tabela. O nome da tabela é baseado no prefixo do Amazon S3 ou no nome da pasta. Você fornece um Include path (caminho de inclusão) que indica o nível da pasta a ser rastreada. Quando a maioria dos esquemas em um nível de pasta é semelhante, o rastreador cria partições de uma tabela em vez de duas tabelas separadas. Para influenciar o rastreador a criar tabelas separadas, adicione a pasta raiz de cada tabela como um repositório de dados separado ao definir o rastreador.

Por exemplo, com a seguinte estrutura do Amazon S3:

s3://bucket01/folder1/table1/partition1/file.txt s3://bucket01/folder1/table1/partition2/file.txt s3://bucket01/folder1/table1/partition3/file.txt s3://bucket01/folder1/table2/partition4/file.txt s3://bucket01/folder1/table2/partition5/file.txt

Se os esquemas de table1 e table2 forem semelhantes e um único repositório de dados estiver definido no rastreador com Include path s3://bucket01/folder1/ (Caminho de inclusão), o rastreador cria uma única tabela com duas colunas de partição. Uma coluna de partição contém table1 e table2, e uma segunda coluna de partição contém partition1 a partition5. Para criar duas tabelas separadas, defina o rastreador com dois armazenamentos de dados. Neste exemplo, defina o primeiro Include path (Caminho de inclusão) como s3://bucket01/folder1/table1/, e o segundo como s3://bucket01/folder1/table2.

nota

No Amazon Athena, cada tabela corresponde a um prefixo do Amazon S3 com todos os objetos nele. Se os objetos têm diferentes esquemas, o Athena não reconhece os objetos diferentes no mesmo prefixo como tabelas separadas. Isso pode acontecer se um rastreador criar várias tabelas a partir do mesmo prefixo do Amazon S3. Isso pode levar a consultas no Athena que retornam zero resultados. Para que o Athena reconheça e consulte corretamente as tabelas, crie o crawler com um caminho de inclusão separado para cada esquema de tabela diferente na estrutura de pastas do Amazon S3. Para obter mais informações, consulte Práticas recomendadas ao usar o Athena com o AWS Glue e este artigo do Centro de conhecimento da AWS.