Especificar o local da tabela e o nível de particionamento - AWS Glue

Especificar o local da tabela e o nível de particionamento

Por padrão, quando um crawler define tabelas para dados armazenados no Amazon S3, ele tenta mesclar esquemas e criar tabelas de nível superior (year=2019). Em alguns casos, você pode esperar que o crawler crie uma tabela para a pasta month=Jan, mas em vez disso, o crawler cria uma partição desde o momento em que uma pasta irmã (month=Mar) tenha sido mesclada na mesma tabela.

A opção de crawler no nível da tabela fornece a flexibilidade de informar ao crawler onde as tabelas estão localizadas e como você deseja que as partições sejam criadas. Quando você especifica um Table level (Nível da tabela), ela é criada nesse nível absoluto a partir do bucket do Amazon S3.

Agrupamento de crawler com nível de tabela especificado como nível dois.

Ao configurar o crawler no console, você pode especificar um valor para a opção Table level (Nível da tabela) do Crawler. O valor deve ser um inteiro positivo que indica o local da tabela (o nível absoluto no conjunto de dados). O nível para a pasta de nível superior é um. Por exemplo, para o caminho mydataset/year/month/day/hour, se o nível for definido como três, a tabela será criada no local mydataset/year/month.

AWS Management Console
  1. Faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  2. Escolha Crawlers no Catálogo de dados.

  3. Ao configurar um crawler, em Saída e programação, escolha Nível da tabela em Opções avançadas.

Especificar um nível de tabela na configuração do crawler.
AWS CLI

Ao configurar o crawler usando o AWS CLI, defina o parâmetro configuration conforme mostrado no código de exemplo:

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "Grouping": { "TableLevelConfiguration": 2 }}'
API

Quando você configurar o crawler usando a API, defina o campo Configuration com uma representação de string do objeto JSON a seguir, por exemplo:

configuration = jsonencode( { "Version": 1.0, "Grouping": { TableLevelConfiguration = 2 } })
CloudFormation

Neste exemplo, você define a opção Table level (Nível da tabela) disponível no console dentro do modelo do CloudFormation:

"Configuration": "{ \"Version\":1.0, \"Grouping\":{\"TableLevelConfiguration\":2} }"