Criar um esquema único para cada caminho de inclusão do Amazon S3 - AWS Glue

Criar um esquema único para cada caminho de inclusão do Amazon S3

Por padrão, quando um crawler define tabelas para dados armazenados no Amazon S3, ele considera a compatibilidade dos dados e a similaridade do esquema. Os fatores de compatibilidade de dados que ele considera incluem: se os dados são do mesmo formato (por exemplo, JSON), do mesmo tipo de compactação (por exemplo, GZIP), a estrutura do caminho do Amazon S3 e outros atributos de dados. Similaridade de esquema é uma medida de até que ponto os esquemas de objetos do Amazon S3 separados são semelhantes.

Para ajudar a ilustrar essa opção, suponha que você defina um crawler com um caminho de inclusão s3://bucket/table1/. Quando o crawler é executado, ele localiza dois arquivos JSON com as seguintes características:

  • Arquivo 1: S3://bucket/table1/year=2017/data1.json

  • Conteúdo do arquivo: {“A”: 1, “B”: 2}

  • Esquema: A:int, B:int

  • Arquivo 2: S3://bucket/table1/year=2018/data2.json

  • Conteúdo do arquivo: {“C”: 3, “D”: 4}

  • Esquema: C: int, D: int

Por padrão, o crawler cria duas tabelas, chamadas year_2017 e year_2018, porque os esquemas não são suficientemente semelhantes. No entanto, se a opção Create a single schema for each S3 path (Criar um único esquema para cada caminho do S3) for selecionada, e se os dados forem compatíveis, o crawler criará uma tabela. A tabela tem o esquema A:int,B:int,C:int,D:int e partitionKey year:string.

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 novo crawler, em Saída e programação, selecione a opção Criar um único esquema para cada caminho do S3 em Opções avançadas.

AWS CLI

Você pode configurar um crawler para CombineCompatibleSchemas em uma definição de tabela comum quando possível. Com essa opção, o crawler ainda considera a compatibilidade dos dados, mas ignora a semelhança dos esquemas específicos ao avaliar objetos do Amazon S3 no caminho de inclusão especificado.

Quando você configurar o crawler usando a AWS CLI, defina a seguinte opção de configuração:

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

Quando você configurar o crawler usando a API, defina a seguinte opção de configuração:

Defina o campo Configuration com uma representação de string do objeto JSON a seguir na API do crawler, por exemplo:

{ "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }