Definindo e gerenciando classificadores - AWS União

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

Definindo e gerenciando classificadores

Um classificador lê os dados em uma armazenamento de dados. Se reconhecer o formato dos dados, ele gerará um esquema. O classificador também retornará um número de certeza para indicar o nível de certeza referente ao reconhecimento do formato.

O AWS Glue fornece um conjunto de classificadores integrados, mas você também pode criar classificadores personalizados. O AWS Glue invoca classificadores personalizados primeiro, na ordem especificada na definição do crawler. Dependendo dos resultados retornados dos classificadores personalizados, o AWS Glue também poderá invocar classificadores integrados. Se um classificador retornar certainty=1.0 durante o processamento, ele indicará que está 100% certo sobre a criação do esquema correto. Em seguida, o AWS Glue usa a saída desse classificador.

Se nenhum classificador retornar certainty=1.0, o AWS Glue usará a saída do classificador que tiver a maior certeza. Se nenhum classificador retornar uma certeza maior que 0.0, o AWS Glue retornará a string de classificação padrão UNKNOWN.

Quando devo usar um classificador?

Você deve usar classificadores ao fazer crawling em um armazenamento de dados para definir tabelas de metadados no AWS Glue Data Catalog. Você pode configurar seu crawler com um conjunto de classificadores ordenados. Quando o crawler invoca um classificador, o classificador determina se os dados são reconhecidos. Se o classificador não puder reconhecer os dados ou não estiver 100% certo, o crawler chamará o próximo classificador na lista para tentar reconhecer os dados.

Para obter mais informações sobre como criar um classificador usando o console do AWS Glue, consulte Criação de classificadores usando o console AWS Glue.

Classificadores personalizados

A saída de um classificador inclui uma string que indica a classificação ou o formato do arquivo (por exemplo, json) e o esquema dele. Para classificadores personalizados, você define a lógica de criação do esquema com base no tipo de classificador. Os tipos de classificadores incluem a definição de esquemas com base nos padrões, XML tags e caminhos do grok. JSON

Se você alterar uma definição de classificador, os dados que foram rastreados anteriormente usando o classificador não serão reclassificados. Um crawler monitora os dados rastreados anteriormente. Novos dados são classificados com o classificador atualizado, o que pode resultar em um esquema atualizado. Se o esquema de seus dados evoluiu, atualize o classificador para considerar quaisquer alterações de esquema quando o crawler for executado. Para reclassificar dados para corrigir um classificador incorreto, crie um novo crawler com o classificador atualizado.

Para obter mais informações sobre como criar classificadores personalizados no AWS Glue, consulte Escrevendo classificadores personalizados para diversos formatos de dados.

nota

Se seu formato de dados for reconhecido por um dos classificadores integrados, você não precisará criar um classificador personalizado.

Classificadores integrados

AWS Gluefornece classificadores integrados para vários formatos JSONCSV, incluindo registros da web e muitos sistemas de banco de dados.

Se o AWS Glue não encontrar um classificador personalizado adequado para o formato de dados de entrada com 100% de certeza, ele invocará os classificadores integrados na ordem exibida na tabela a seguir. Os classificadores integrados retornam um resultado para indicar se o formato é correspondente (certainty=1.0) ou não (certainty=0.0). O primeiro classificador que tiver certainty=1.0 fornecerá a string de classificação e o esquema para uma tabela de metadados no Data Catalog.

Tipo de classificador String de classificação Observações
Apache Avro avro Lê o esquema no início do arquivo para determinar o formato.
Apache ORC orc Lê os metadados do arquivo para determinar o formato.
Apache Parquet parquet Lê o esquema no final do arquivo para determinar o formato.
JSON json Lê o início do arquivo para determinar o formato.
Binário JSON bson Lê o início do arquivo para determinar o formato.
XML xml Lê o início do arquivo para determinar o formato. AWS Gluedetermina o esquema da tabela com base nas XML tags no documento.

Para obter informações sobre como criar um XML classificador personalizado para especificar linhas no documento, consulteEscrevendo classificadores XML personalizados.

Amazon Ion ion Lê o início do arquivo para determinar o formato.
Log do Apache combinado combined_apache Determina os formatos de log por meio de um padrão grok.
Log do Apache apache Determina os formatos de log por meio de um padrão grok.
Log de kernel do Linux linux_kernel Determina os formatos de log por meio de um padrão grok.
Log da Microsoft microsoft_log Determina os formatos de log por meio de um padrão grok.
Log do Ruby ruby_logger Lê o início do arquivo para determinar o formato.
Log do Squid 3.x squid Lê o início do arquivo para determinar o formato.
Log de monitoramento do Redis redismonlog Lê o início do arquivo para determinar o formato.
Log do Redis redislog Lê o início do arquivo para determinar o formato.
CSV csv Verifica os seguintes delimitadores: vírgula (,), pipe (|), tabulação (\t), ponto e vírgula (;) e Ctrl+A (\u0001). Ctrl+A é o caractere de controle Unicode para Start Of Heading.
Amazon Redshift redshift Usa a JDBC conexão para importar metadados.
Meu SQL mysql Usa a JDBC conexão para importar metadados.
Postger SQL postgresql Usa a JDBC conexão para importar metadados.
Banco de dados Oracle oracle Usa a JDBC conexão para importar metadados.
SQLServidor Microsoft sqlserver Usa a JDBC conexão para importar metadados.
Amazon DynamoDB dynamodb Lê dados da tabela do DynamoDB.

Os arquivos nos seguintes formatos compactados podem ser classificados:

  • ZIP(compatível com arquivos contendo apenas um único arquivo). Observe que o formato Zip não tem bom suporte em outros serviços (por causa do arquivamento).

  • BZIP

  • GZIP

  • LZ4

  • Snappy (compatível com os formatos Snappy Standard e Snappy de Hadoop nativo)

CSVClassificador embutido

O CSV classificador integrado analisa o conteúdo CSV do arquivo para determinar o esquema de uma tabela. AWS Glue Esse classificador verifica os seguintes delimitadores:

  • Vírgula (,)

  • Barra vertical (|)

  • Tabulação (\t)

  • Ponto e vírgula (;)

  • Ctrl+A (\u0001)

    Ctrl+A é o caractere de controle Unicode para Start Of Heading.

Para ser classificado comoCSV, o esquema da tabela deve ter pelo menos duas colunas e duas linhas de dados. O CSV classificador usa várias heurísticas para determinar se um cabeçalho está presente em um determinado arquivo. Se o classificador não puder determinar um cabeçalho a partir da primeira linha de dados, os cabeçalhos das colunas serão exibidos como col1, col2, col3 e assim por diante. O CSV classificador integrado determina se um cabeçalho deve ser inferido avaliando as seguintes características do arquivo:

  • Cada coluna em um cabeçalho potencial é analisada como um tipo STRING de dados.

  • Exceto pela última coluna, todas as colunas em um possível cabeçalho têm conteúdo com menos de 150 caracteres. Para permitir um delimitador final, a última coluna pode ficar vazia em todo o arquivo.

  • Cada coluna em um possível cabeçalho deve atender aos requisitos do AWS Glue regex para um nome de coluna.

  • A linha de cabeçalho deve ser suficientemente diferente das linhas de dados. Para determinar isso, uma ou mais linhas devem ser analisadas como diferentes do STRING tipo. Se todas as colunas forem do tipoSTRING, a primeira linha de dados não será suficientemente diferente das linhas subsequentes para ser usada como cabeçalho.

nota

Se o CSV classificador incorporado não criar sua AWS Glue tabela como você deseja, talvez você possa usar uma das seguintes alternativas:

  • Altere os nomes das colunas no Catálogo de Dados, defina o como e SchemaChangePolicy defina a LOG configuração de saída da partição InheritFromTable para futuras execuções do crawler.

  • Crie um classificador grok personalizado para analisar os dados e atribuir as colunas desejadas.

  • O CSV classificador integrado cria tabelas referenciando a LazySimpleSerDe como biblioteca de serialização, o que é uma boa opção para inferência de tipos. No entanto, se os CSV dados contiverem cadeias de caracteres entre aspas, edite a definição da tabela e altere a SerDe biblioteca para. OpenCSVSerDe Ajuste todos os tipos inferidosSTRING, defina como e SchemaChangePolicy defina a LOG configuração de saída das partições para InheritFromTable futuras execuções do rastreador. Para obter mais informações sobre SerDe bibliotecas, consulte SerDe Referência no Guia do usuário do Amazon Athena.