Propriedades do crawler - AWS Glue

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á.

Propriedades do crawler

Ao definir um crawler usando o console do AWS Glue ou a AWS Glue API, você especifica as seguintes informações:

Etapa 1: configurar propriedades do crawler

Nome

O nome pode conter letras (A a Z), números (0 a 9), hifens (-) ou sublinhados (_), e pode ter até 255 caracteres.

Descrição

A descrição pode ter até 2048 caracteres.

Tags

Use tags para organizar e identificar os recursos. Para ver mais informações, consulte:

Etapa 2: escolher as fontes de dados e os classificadores

Configuração da fonte de dados

Selecione a opção apropriada para Os dados já estão mapeados para as tabelas do AWS Glue?

O crawler pode acessar armazenamentos de dados diretamente como a fonte do crawl ou pode usar tabelas existentes no Data Catalog como a fonte. Se o crawler usa tabelas de catálogos existentes, ele rastreia os armazenamentos de dados que são especificados por essas tabelas do catálogo. Para ter mais informações, consulte Tipo de fonte do crawler.

  • Se ainda não estiverem: selecione uma ou mais fontes de dados a serem rastreadas. Um crawler pode rastrear vários armazenamentos de dados de tipos diferentes (Amazon S3, JDBC e outros).

    Você só pode configurar um armazenamento de dados por vez. Depois de fornecer as informações de conexão, incluir caminhos e excluir padrões, você terá a opção de adicionar outro armazenamento de dados.

    Para ter mais informações, consulte Tipo de fonte do crawler.

  • Sim: selecione tabelas existentes do AWS Glue Data Catalog. As tabelas do catálogo especificam os armazenamentos de dados a serem rastreados. O crawler pode rastrear somente tabelas do catálogo em uma única execução; ele não pode misturar outros tipos de origem.

Fontes de dados

Selecione ou adicione a lista de fontes de dados a serem varridas pelo crawler.

Incluir o caminho
Para um armazenamento de dados do Amazon S3

Escolha se deseja especificar um caminho na sua conta ou em uma conta diferente e depois procure e escolha um caminho do Amazon S3.

Para um armazenamento de dados do Delta Lake

Especifique um ou mais caminhos do Amazon S3 para tabelas do Delta, como s3://bucket/prefixo/objeto.

Para um armazenamento de dados do Iceberg ou do Hudi

Especifique um ou mais caminhos do Amazon S3 que contenham pastas com metadados da tabela do Iceberg ou do Hudi, como s3://bucket/prefixo.

Para um armazenamento de dados, a pasta do Hudi pode estar localizada em uma pasta secundária da pasta raiz. O crawler examinará todas as pastas abaixo de um caminho para uma pasta do Hudi.

Para um armazenamento de dados no JDBC

Insira <banco de dados>/<esquema>/<tabela> ou <banco de dados>/<tabela>, dependendo do produto do banco de dados. Oracle Database e MySQL não oferecem suporte a esquema no caminho. Você pode substituir o caractere percentual (%) por <esquema> ou <tabela>. Por exemplo, para um banco de dados Oracle com um identificador de sistema (SID) orcl, informe orcl/% para importar todas as tabelas às quais o usuário nomeado na conexão tem acesso.

Importante

Este campo diferencia letras maiúsculas de minúsculas.

Para um armazenamento de dados MongoDB, MangoDB Atlas ou Amazon DocumentDB

Digite database/collection (banco de dados/coleção).

Para ter mais informações, consulte Padrões de inclusão e exclusão.

Profundidade transversal máxima (somente para armazenamentos de dados do Iceberg ou do Hudi)

A profundidade máxima de caminhos do Amazon S3 que o crawler pode percorrer para descobrir a pasta de metadados do Iceberg ou do Hudi no caminho do Amazon S3. O objetivo desse parâmetro é limitar o run time do crawler. O valor padrão é 10 e o máximo é 20.

Padrões de exclusão

Eles permitem que você exclua determinados arquivos ou tabelas do rastreamento. Para ter mais informações, consulte Padrões de inclusão e exclusão.

Parâmetros adicionais de fonte do crawler

Cada tipo de fonte requer um conjunto diferente de parâmetros adicionais. A seguir, uma lista incompleta:

Conexão

Selecione ou adicione uma conexão do AWS Glue. Para obter informações sobre conexões, consulte Conectar a dados.

Metadados adicionais - opcionais (para armazenamentos de dados JDBC)

Selecione propriedades de metadados adicionais para o crawler rastrear.

  • Comentários: rastreie os comentários associados no nível da tabela e no nível da coluna.

  • Tipos brutos: mantenha os tipos de dados brutos das colunas da tabela em metadados adicionais. Como comportamento padrão, o crawler traduz os tipos de dados brutos em tipos compatíveis com o Hive.

Nome da classe do driver JDBC: opcional (para armazenamentos de dados JDBC)

Digite um nome de classe de driver JDBC personalizado para que o crawler se conecte à fonte de dados:

  • Postgres: org.postgresql.Driver

  • MySQL: com.mysql.jdbc.Driver, com.mysql.cj.jdbc.Driver

  • Redshift: com.amazon.redshift.jdbc.Driver, com.amazon.redshift.jdbc42.Driver

  • Oracle: oracle.jdbc.driver. OracleDriver

  • Servidor SQL: com.microsoft.sqlserver.jdbc.sql ServerDriver

Caminho do S3 para o driver JDBC: opcional (para armazenamentos de dados JDBC)

Escolha um caminho existente do Amazon S3 para um arquivo .jar. É nesse local que o arquivo .jar será armazenado quando um driver JDBC personalizado for usado para o crawler se conectar à fonte de dados.

Habilitar a amostragem de dados (somente para o armazenamentos de dados Amazon DynamoDB, MongoDB e MongoDB Atlas e Amazon DocumentDB)

Selecione se deseja rastrear somente uma amostra de dados. Se essa opção não for selecionada, a tabela inteira será rastreada. A verificação de todos os registros pode levar muito tempo quando a tabela não é de throughput alto.

Criar tabelas para consultas (somente para armazenamentos de dados do Delta Lake)

Selecione como você deseja criar as tabelas do Delta Lake:

  • Create Native tables (Criar tabelas nativas): permite a integração com mecanismos de consulta compatíveis com consulta direta ao log de transações do Delta.

  • Create Symlink tables (Criar tabelas de link simbólico): Crie uma pasta manifesto de link simbólico com arquivos de manifesto particionados pelas chaves de partição, com base nos parâmetros de configuração especificados.

Scanning rate (Taxa de varredura): opcional (somente para armazenamentos de dados do DynamoDB)

Especifique a porcentagem das unidades de capacidade de leitura da tabela do DynamoDB a serem usadas pelo crawler. Unidades de capacidade de leitura é um termo definido pelo DynamoDB e é um valor numérico que atua como limitador de taxa para o número de leituras que podem ser executadas nessa tabela por segundo. Insira um valor entre 0,1 e 1,5. Se não for especificado, o padrão será de 0,5% para tabelas provisionadas e 1/4 da capacidade máxima configurada para tabelas sob demanda. Observe que somente o modo de capacidade provisionada deve ser usado com crawlers do AWS Glue.

nota

Para armazenamentos de dados do DynamoDB, defina o modo de capacidade provisionada para processar leituras e gravações em suas tabelas. O crawler do AWS Glue não deve ser usado com o modo de capacidade sob demanda.

Network connection (Conexão de rede): opcional (somente para armazenamentos de dados do Amazon S3)

Opcionalmente, inclua uma conexão de rede para usar com esse destino do Amazon S3. Observe que cada crawler é limitado a uma conexão de rede, portanto, qualquer outro destino do Amazon S3 também usará a mesma conexão (ou nenhuma, se deixada em branco).

Para obter informações sobre conexões, consulte Conectar a dados.

Amostra apenas um subconjunto de arquivos e tamanho da amostra (somente para armazenamentos de dados do Amazon S3)

Especifique o número de arquivos em cada pasta de folha a serem rastreados durante o crawling de arquivos de amostra em um conjunto de dados. Quando esse recurso é ativado, em vez de realizar o crawling em todos os arquivos neste conjunto de dados, o crawler seleciona aleatoriamente alguns arquivos em cada pasta de folha para rastrear.

O crawler de amostragem é mais adequado para clientes que têm conhecimento prévio sobre seus formatos de dados e sabem que os esquemas em suas pastas não são alterados. Ativar esse recurso reduzirá significativamente o runtime do crawler.

Um valor válido é um número inteiro entre 1 e 249. Se não for especificado, todos os arquivos serão rastreados.

Execuções subsequentes do crawler

Esse campo é um campo global que afeta todas as fontes de dados do Amazon S3.

  • Crawl all sub-folders (Rastrear todas as subpastas): rastrear todas as pastas novamente a cada rastreamento subsequente.

  • Crawl new sub-folders only (Rastrear somente novas subpastas): somente as pastas do Amazon S3 que foram adicionadas desde o último rastreamento serão rastreadas. Se os esquemas forem compatíveis, novas partições serão adicionadas às tabelas existentes. Para ter mais informações, consulte Crawls incrementais para adicionar novas partições em AWS Glue.

  • Crawl based on events (Rastreamento com base em eventos): depende dos eventos do Amazon S3 para controlar quais pastas rastrear. Para ter mais informações, consulte Acelerar crawls usando notificações de eventos do Amazon S3.

Custom classifiers (Classificadores personalizados) - opcionais

Defina classificadores personalizados antes de definir crawlers. Um classificador verifica se determinado arquivo está em um formato que pode ser processado pelo crawler. Se estiver, o classificador cria um esquema na forma de um objeto StructType que corresponde a esse formato de dados.

Para ter mais informações, consulte Adicionar classificadores a um crawler no AWS Glue.

Etapa 3: Defina as configurações de segurança

IAM role (Perfil do IAM)

O crawler assume essa função. Ele deve ter permissões para a política AWSGlueServiceRole gerenciada pela AWS. Para fontes do Amazon S3 e do DynamoDB, ele também deve ter permissões para acessar o armazenamento de dados. Se o crawler ler os dados do Amazon S3 criptografados pelo AWS Key Management Service (AWS KMS), a função do IAM deverá ter permissão de descriptografia na chave do AWS KMS.

Para um armazenamento de dados do Amazon S3, permissões adicionais anexadas à função seriam semelhantes às seguintes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket/object*" ] } ] }

Para um armazenamento de dados do Amazon DynamoDB, permissões adicionais anexadas à função seriam semelhantes às seguintes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:region:account-id:table/table-name*" ] } ] }

Para obter mais informações, consulte Gerenciamento de identidade e acesso do AWS Glue e Etapa 2: criar um perfil do IAM para o AWS Glue.

Lake Formation configuration (Configuração do Lake Formation) - opcional

Permita que o crawler use credenciais do Lake Formation para fazer crawling na fonte de dados.

Marcar Use Lake Formation credentials for crawling S3 data source (Usar credenciais do Lake Formation para rastrear a fonte de dados do S3) permitirá que o crawler use as credenciais do Lake Formation para rastrear a fonte de dados. Se a fonte de dados pertencer a outra conta, você deve fornecer a ID da conta registrada. Senão, o crawler rastreará somente as fontes de dados associadas à conta. Aplicável somente às fontes de dados do Amazon S3 e do Data Catalog.

Configuração de segurança - opcional

As configurações incluem configurações de segurança. Para ver mais informações, consulte:

nota

Depois que uma configuração de segurança for definida em um rastreador, você poderá alterá-la, mas não poderá removê-la. Para reduzir o nível de segurança em um rastreador, defina explicitamente o recurso de segurança DISABLED dentro da sua configuração ou crie um novo rastreador.

Etapa 4: configurar a saída e o agendamento

Configuração da saída

As opções incluem como o crawler deve lidar com alterações detectadas do esquema, com a exclusão de objetos no armazenamento de dados e muito mais. Para obter mais informações, consulte Definir opções de configuração do crawler.

Programação do crawler

Você pode executar o crawler sob demanda ou definir uma agenda baseada em hora para os crawlers e os trabalhos no AWS Glue. A definição dessas programações usa a sintaxe cron semelhante à do Unix. Para ter mais informações, consulte Programar um crawler do AWS Glue.

Etapa 5: analisar e criar

Revise as configurações do crawler que você definiu e crie o crawler.

Tipo de fonte do crawler

Um crawler pode acessar armazenamentos de dados diretamente como a origem do rastreamento ou usar tabelas de catálogo existentes como a origem. Se o crawler usa tabelas de catálogos existentes, ele rastreia os armazenamentos de dados especificados por essas tabelas de catálogo.

Um motivo comum para especificar uma tabela de catálogo como fonte é quando você cria a tabela manualmente (pois você já conhece a estrutura do armazenamento de dados) e deseja que um crawler a mantenha atualizada, incluindo a adição de novas partições. Para ver uma discussão de outros motivos, consulte Atualizar tabelas do Data Catalog criadas manualmente usando crawlers.

Quando você especifica tabelas existentes como o tipo de fonte do crawler, as seguintes condições se aplicam:

  • O nome do banco de dados é opcional.

  • Somente tabelas de catálogo que especificam armazenamentos de dados do Amazon S3 ou Amazon DynamoDB são permitidas.

  • Nenhuma tabela de catálogo nova é criada quando o crawler é executado. As tabelas existentes são atualizadas conforme necessário, incluindo a adição de novas partições.

  • Os objetos excluídos encontrados nos armazenamentos de dados são ignorados; nenhuma tabela de catálogo é excluída. Em vez disso, o crawler grava uma mensagem de log. (SchemaChangePolicy.DeleteBehavior=LOG)

  • A opção de configuração do crawler para criar um único esquema para cada caminho do Amazon S3 é habilitada por padrão e não pode ser desabilitada. (TableGroupingPolicy=CombineCompatibleSchemas) Para obter mais informações, consulte Como criar um esquema único para cada caminho de inclusão do Amazon S3.

  • Você não pode misturar as tabelas de catálogo como uma fonte com nenhum outro tipo de fonte (por exemplo, Amazon S3 ou Amazon DynamoDB).

Padrões de inclusão e exclusão

Ao avaliar o que incluir ou excluir em um crawling, o crawler começa pelo caminho de inclusão obrigatório. Para o Amazon S3, o MongoDB, o MongoDB Atlas, o Amazon DocumentDB (compatível com MongoDB) e armazenamentos de dados relacionais, você deve especificar um caminho de inclusão.

Para armazenamentos de dados do Amazon S3, a sintaxe de inclusão de caminho é bucket-name/folder-name/file-name.ext. Para rastrear todos os objetos em um bucket, você especifica apenas o nome do bucket no caminho de inclusão. O padrão de exclusão é relativo ao caminho de inclusão

Para o MongoDB, o MongoDB Atlas e o Amazon DocumentDB (compatível com MongoDB), a sintaxe é database/collection.

Para armazenamentos de dados JDBC, a sintaxe é database-name/schema-name/table-name ou database-name/table-name. A sintaxe depende de o mecanismo de banco de dados ser compatível com esquemas dentro de um banco de dados. Por exemplo, para mecanismos de banco de dados, como MySQL ou Oracle, não especifique um schema-name em seu caminho de inclusão. Você pode substituir o sinal de porcentagem (%) por um esquema ou tabela no caminho de inclusão para representar todos os esquemas ou todas as tabelas em um banco de dados. Não é possível substituir o sinal de porcentagem (%) do banco de dados no caminho de inclusão. O caminho de exclusão é relativo ao caminho de inclusão. Por exemplo, para excluir uma tabela no seu armazenamento de dados JDBC, digite o nome dela no caminho de exclusão.

Um crawler se conecta a um armazenamento de dados JDBC usando uma conexão do AWS Glue que contém uma string de conexão de URI do JDBC. O crawler só tem acesso a objetos no mecanismo de banco de dados usando o nome de usuário e a senha do JDBC na conexão do AWS Glue. O crawler só pode criar tabelas que ele pode acessar por meio da conexão JDBC. Depois que o crawler acessa o mecanismo de banco de dados com o URI do JDBC, o caminho de inclusão é usado para determinar quais tabelas no mecanismo de banco de dados são criadas no Data Catalog. Por exemplo, com o MySQL, se você especificar um caminho de inclusão de MyDatabase/%, todas as tabelas em MyDatabase serão criadas no Data Catalog. Ao acessar o Amazon RedShift, se você especificar um caminho de inclusão de MyDatabase/%, todas as tabelas dentro de todos os esquemas para o banco de dados MyDatabase serão criadas no Data Catalog. Se você especificar um caminho de inclusão de MyDatabase/MySchema/%, todas as tabelas no banco de dados MyDatabase e o esquema MySchema serão criados.

Depois de especificar um caminho de inclusão, você pode excluir objetos do rastreamento que o seu caminho de inclusão incluiria especificando um ou mais padrões de exclusão glob no estilo Unix. Esses padrões são aplicados ao seu caminho de inclusão para determinar quais objetos serão excluídos. Esses padrões também são armazenados como uma propriedade de tabelas criadas pelo crawler. AWS Glue PySpark extensõescreate_dynamic_frame.from_catalog, como ler as propriedades da tabela e excluir objetos definidos pelo padrão de exclusão.

O AWS Glue oferece suporte aos seguintes tipos de padrão glob no padrão de exclusão.

Padrão de exclusão Descrição
*.csv Corresponde a um caminho do Amazon S3 que representa um nome de objeto na pasta atual que termina em .csv
*.* Corresponde a todos os nomes de objetos que contêm um ponto
*.{csv,avro} Corresponde aos nomes de objetos que terminam em .csv ou .avro
foo.? Corresponde aos nomes de objetos que começam com foo. seguidos por uma extensão de caractere único
myfolder/* Corresponde a objetos em um nível de subpasta de myfolder, como /myfolder/mysource
myfolder/*/* Corresponde a objetos em dois níveis de subpastas de myfolder, como /myfolder/mysource/data
myfolder/** Corresponde a objetos em todas as subpastas myfolder, por exemplo, /myfolder/mysource/mydata e /myfolder/mysource/data
myfolder** Corresponde a subpasta myfolder bem como aos arquivos abaixo de myfolder, por exemplo, /myfolder e /myfolder/mydata.txt
Market* Corresponde a tabelas em um banco de dados JDBC com nomes que começam com Market, como Market_us e Market_fr

O AWS Glue interpreta os padrões de exclusão glob da seguinte forma:

  • O caractere de barra (/) é o delimitador que separa as chaves do Amazon S3 em uma hierarquia de pastas.

  • O caractere de asterisco (*) corresponde a zero ou mais caracteres de um componente de nome sem cruzar limites da pasta.

  • Um asterisco duplo (**) corresponde a zero ou mais caracteres cruzando limites de pasta ou esquema.

  • O caractere de ponto de interrogação (?) corresponde a exatamente um caractere de um componente de nome.

  • O caractere de barra invertida (\) é usado para realizar o escape de caracteres que não podem ser interpretados como caracteres especiais. A expressão \\ corresponde a uma única barra invertida, e \{ corresponde a uma chave esquerda.

  • Os colchetes [ ] criam uma expressão que corresponde a um único caractere de um componente de nome fora de um conjunto de caracteres. Por exemplo, [abc] corresponde a a, b ou c. O hífen (-) pode ser usado para especificar um intervalo, portanto, [a-z] especifica um intervalo correspondente de a a z (de inclusão). Esses formatos podem ser combinados, portanto, [abce-g] corresponde a a, b, c, e, f ou g. Se o caractere depois do colchete ([) for um ponto de exclamação (!), a expressão de colchetes será negada. Por exemplo, [!a-c] corresponde a qualquer caractere, exceto a, b ou c.

    Em uma expressão de colchetes, os caracteres *, ? e \ se correspondentes entre si. O caractere de hífen (-) corresponde a si mesmo se for o primeiro caractere dentro de colchetes ou o primeiro caractere após ! quando você estiver fazendo uma negação.

  • As chaves ({ }) englobam um grupo de subpadrões, e o grupo será correspondente se houver correspondência com qualquer subpadrão no grupo. Um caractere de vírgula (,) é usado para separar os subpadrões. Grupos não podem ser aninhados.

  • Os caracteres de ponto inicial ou final em nomes de arquivos são tratados como caracteres normais nas operações de correspondência. Por exemplo, o padrão de exclusão * corresponde ao nome do arquivo .hidden.

exemplo Padrões de exclusão do Amazon S3

Cada padrão de exclusão é avaliado em comparação com o caminho de inclusão. Por exemplo, digamos que você tenha a seguinte estrutura de diretórios do Amazon S3:

/mybucket/myfolder/ departments/ finance.json market-us.json market-emea.json market-ap.json employees/ hr.json john.csv jane.csv juan.txt

Dado o caminho de inclusão s3://mybucket/myfolder/, estes são alguns resultados de amostra para padrões de exclusão:

Padrão de exclusão Resultados
departments/** Exclui todos os arquivos e pastas abaixo de departments e inclui a pasta employees e seus respectivos arquivos
departments/market* Exclui market-us.json, market-emea.json e market-ap.json
**.csv Exclui todos os objetos abaixo de myfolder com nomes que terminam em .csv
employees/*.csv Exclui todos os arquivos .csv na pasta employees
exemplo Excluir um subconjunto de partições do Amazon S3

Suponha que seus dados sejam particionados por dia, de modo que cada dia em um ano esteja em uma partição diferente do Amazon S3. Para janeiro de 2015, há 31 partições. Agora, para rastrear dados apenas na primeira semana de janeiro, é necessário excluir todas as partições, exceto os dias 1 a 7:

2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**

Analise as partes deste padrão glob. A primeira parte, 2015/01/{[!0],0[8-9]}**, exclui todos os dias que não começam com um "0", além dos dias 08 e 09 do mês 01 no ano 2015. Observe que "**" é usado como o sufixo para o padrão de número do dia e ultrapassa os limites de pasta para as pastas de nível inferior. Se "*" for usado, os níveis mais baixos da pasta não serão excluídos.

A segunda parte, 2015/0[2-9]/**, exclui os dias do mês 02 ao mês 09, no ano 2015.

A terceira parte, 2015/1[0-2]/**, exclui os dias do mês 10, 11 e 12, no ano 2015.

exemplo Padrões de exclusão do JDBC

Suponha que você esteja realizando crawling de um banco de dados JDBC com a seguinte estrutura de esquema:

MyDatabase/MySchema/ HR_us HR_fr Employees_Table Finance Market_US_Table Market_EMEA_Table Market_AP_Table

Dado o caminho de inclusão MyDatabase/MySchema/%, estes são alguns resultados de amostra para padrões de exclusão:

Padrão de exclusão Resultados
HR* Exclui as tabelas com nomes que começam com HR
Market_* Exclui as tabelas com nomes que começam com Market_
**_Table Exclui todas as tabelas com nomes que terminam em _Table