Etapa 2: escolher as fontes de dados e os classificadores - AWS Glue

Etapa 2: escolher as fontes de dados e os classificadores

Em seguida, configure as fontes de dados e os classificadores do crawler.

Para obter mais informações sobre as fontes de dados compatíveis, consulte Fontes de dados compatíveis para crawling.

Configuração da fonte de dados

Selecione a opção apropriada para Seus dados já estão mapeados para AWS Glue mesas? escolha “Ainda não” ou “Sim”. A opção "Ainda não" está selecionada por padrão.

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.

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

    Você só pode configurar um datastore 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 datastore.

  • Sim: Selecione tabelas existentes do seu AWS Glue Catálogo de dados. 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.

    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 datastore) 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, do Amazon DynamoDB ou do Delta Lake 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 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).

Para usar tabelas Delta, primeiro crie uma tabela Delta usando Athena DDL ou o. AWS Glue API

Usando o Athena, defina a localização da sua pasta Amazon S3 e o tipo de tabela como ''. DELTA

CREATE EXTERNAL TABLE database_name.table_name LOCATION 's3://bucket/folder/' TBLPROPERTIES ('table_type' = 'DELTA')

Usando o AWS Glue API, especifique o tipo de tabela no mapa de parâmetros da tabela. Os parâmetros da tabela precisam incluir o par chave/valor a seguir. Para obter mais informações sobre como criar uma tabela, consulte a documentação do Boto3 para create_table.

{ "table_type":"delta" }
Fontes de dados

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

(Opcional) Se você escolher JDBC como fonte de dados, poderá usar seus próprios JDBC drivers ao especificar o acesso à conexão em que as informações do driver são armazenadas.

Incluir o caminho

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 um datastore 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 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 um datastore do Delta Lake

Especifique um ou mais caminhos do Amazon S3 para tabelas Delta como s3://bucket/prefix/object.

Para um datastore do Iceberg ou do Hudi

Especifique um ou mais caminhos do Amazon S3 que contêm pastas com metadados da tabela Iceberg ou Hudi como s3://bucket/prefix.

Para armazenamentos de dados Iceberg e Hudi, a pasta Iceberg/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 JDBC de dados

Digite <database>/<schema>/<table> ou <database>/<table>, dependendo do produto do banco de dados. O Oracle Database e o My SQL não oferecem suporte ao esquema no caminho. Você pode substituir o caractere de porcentagem (%) por <schema> ou <table>. Por exemplo, para um banco de dados Oracle com um identificador de sistema (SID) deorcl, insira 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.

nota

Se você optar por trazer suas próprias versões de JDBC driver, AWS Glue os rastreadores consumirão recursos em AWS Glue trabalhos e buckets do Amazon S3 para garantir que o driver fornecido seja executado em seu ambiente. O uso adicional de recursos será refletido em sua conta. Os motoristas estão limitados às propriedades descritas em Adicionar um AWS Glue conexão.

Para um datastore MongoDB, MangoDB Atlas ou Amazon DocumentDB

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

Para armazenamentos de JDBC dados, a sintaxe é database-name/schema-name/table-name oudatabase-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 My SQL 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.

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. O caminho de exclusão é relativo ao caminho de inclusão. Por exemplo, para excluir uma tabela em seu armazenamento de JDBC dados, digite o nome da tabela no caminho de exclusão.

Um rastreador se conecta a um armazenamento de JDBC dados usando um AWS Glue conexão que contém uma string de JDBC URI conexão. O rastreador só tem acesso aos objetos no mecanismo de banco de dados usando o nome de JDBC usuário e a senha no AWS Glue conexão. O rastreador só pode criar tabelas que ele possa acessar por meio da JDBC conexão. Depois que o rastreador acessa o mecanismo de banco de dados com o JDBCURI, o caminho de inclusão é usado para determinar quais tabelas no mecanismo de banco de dados são criadas no Catálogo de Dados. Por exemplo, com MySQL, se você especificar um caminho de inclusão deMyDatabase/%, todas as tabelas MyDatabase contidas nele serão criadas no Catálogo de Dados. 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.

AWS Glue suporta os seguintes glob padrões 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* Combina tabelas em um JDBC banco de dados com nomes que começam comMarket, como Market_us e Market_fr

AWS Glue interpreta padrões de glob exclusão 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 JDBCexcluir padrões

Suponha que você esteja rastreando um JDBC banco de dados 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
Parâmetros adicionais de fonte do crawler

Cada tipo de fonte requer um conjunto diferente de parâmetros adicionais.

Conexão

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

Metadados adicionais - opcionais (para armazenamentos JDBC de dados)

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.

JDBCNome da classe do driver - opcional (para armazenamentos JDBC de dados)

Digite um nome de classe de JDBC driver personalizado para o rastreador se conectar à fonte de dados:

  • Postgres: org.postgresql.Driver

  • MeuSQL: 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

  • SQLServidor: com.microsoft.sqlserver.jdbc. SQLServerDriver

JDBCCaminho do driver S3 - opcional (para armazenamentos JDBC de dados)

Escolha um caminho existente do Amazon S3 para um arquivo .jar. É aqui que o .jar arquivo será armazenado ao usar um JDBC driver personalizado para o rastreador 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 AWS Glue rastreadores.

nota

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

Conexão de rede - opcional (para armazenamentos de dados de destino Amazon S3, Delta, Iceberg, Hudi e Catalog)

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 obter mais informações, consulte Programar crawls incrementais para adicionar novas partições.

  • Crawl based on events (Rastreamento com base em eventos): depende dos eventos do Amazon S3 para controlar quais pastas rastrear. Para obter 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 obter mais informações, consulte Definir e gerenciar classificadores.