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

Criar tabelas

Embora a execução de um rastreador seja o método recomendado para fazer um inventário dos dados em seus armazenamentos de dados, você pode adicionar tabelas de metadados ao manualmente. AWS Glue Data Catalog Essa abordagem permite que você tenha mais controle sobre as definições de metadados e as personalize de acordo com seus requisitos específicos.

Você também pode adicionar definições de tabela manualmente ao Catálogo de Dados das seguintes formas:

Ao definir uma tabela manualmente usando o console ou umAPI, você especifica o esquema da tabela e o valor de um campo de classificação que indica o tipo e o formato dos dados na fonte de dados. Se um crawler criar a tabela, o esquema e o formato dos dados serão determinados por um classificador integrado ou um classificador personalizado. Para obter mais informações sobre como criar uma tabela usando o console do AWS Glue, consulte Criação de tabelas usando o console.

Partições de tabela

Uma definição de tabela do AWS Glue de uma pasta do Amazon Simple Storage Service (Amazon S3) pode descrever uma tabela particionada. Por exemplo, para melhorar a performance da consulta, uma tabela particionada pode separar dados mensais em diferentes arquivos usando o nome do mês como uma chave. No AWS Glue, as definições de tabela incluem a chave de particionamento de uma tabela. Quando o AWS Glue avalia os dados nas pastas do Amazon S3 para catalogar uma tabela, ele determina se foi adicionada uma tabela individual ou particionada.

Você pode criar índices de partição em uma tabela para buscar um subconjunto das partições em vez de carregar todas as partições na tabela. Para obter mais informações sobre como trabalhar com índices de partição, consulte Criação de índices de partição .

Todas as condições a seguir precisam ser verdadeiras para que o AWS Glue crie uma tabela particionada para uma pasta do Amazon S3:

  • Os esquemas dos arquivos são semelhantes, conforme determinado pelo AWS Glue.

  • O formato de dados dos arquivos é o mesmo.

  • A compressão de dados dos arquivos é a mesma.

Por exemplo, você pode possuir um bucket do Amazon S3 chamado my-app-bucket, onde armazena dados de vendas de aplicações iOS e Android. Os dados são particionados por ano, mês e dia. Os arquivos de dados para vendas de aplicativos iOS e Android têm o mesmo esquema, formato de dados e formato de compactação. No AWS Glue Data Catalog, o AWS Glue rastreador cria uma definição de tabela com chaves de particionamento para ano, mês e dia.

A seguinte listagem do Amazon S3 de my-app-bucket mostra algumas das partições. O símbolo = é usado para atribuir valores de chave de partição.

my-app-bucket/Sales/year=2010/month=feb/day=1/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=1/Android.csv my-app-bucket/Sales/year=2010/month=feb/day=2/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=2/Android.csv ... my-app-bucket/Sales/year=2017/month=feb/day=4/iOS.csv my-app-bucket/Sales/year=2017/month=feb/day=4/Android.csv
O console do AWS Glue passou por uma atualização recente. A versão atual do console não é compatível com links de recursos de tabela.

O Data Catalog também pode conter links de recursos para tabelas. Um link de recurso de tabela é um link para uma tabela local ou compartilhada. No momento, você pode criar links de recursos somente no AWS Lake Formation. Depois de criar um link de recurso para uma tabela, você pode usar o nome do link de recurso onde quer que você use o nome da tabela. Junto com tabelas que você possui ou que são compartilhadas com você, links de recursos de tabelas são retornados por glue:GetTables() e aparecem como entradas na página Tables (Tabelas) do console do AWS Glue.

O Data Catalog também pode conter links de recursos de banco de dados.

Para obter mais informações sobre links de recursos, consulte Criar links de recursos no Guia do desenvolvedor do AWS Lake Formation .

Criação de tabelas usando o console

Uma tabela no AWS Glue Data Catalog é a definição de metadados que representa os dados em um armazenamento de dados. Você cria tabelas quando executa um crawler ou manualmente no console do AWS Glue . A lista Tables (Tabelas) no console do AWS Glue exibe valores dos metadados da sua tabela. Você usa definições de tabela para especificar fontes e destinos ao criar ETL (extrair, transformar e carregar) trabalhos.

nota

Com as mudanças recentes no console AWS de gerenciamento, talvez seja necessário modificar suas IAM funções existentes para ter a SearchTablespermissão. Para a criação de uma nova função, a SearchTables API permissão já foi adicionada como padrão.

Para começar, faça login no AWS Management Console e abra o AWS Glue console em https://console.aws.amazon.com/glue/. Escolha a guia Tables e use o botão Add tables para criar tabelas com um crawler ou digitando atributos manualmente.

Adicionar tabelas ao console

Para usar um crawler para adicionar tabelas, escolha Add tables, Add tables using a crawler. Em seguida, siga as instruções no assistente Add crawler. Quando o crawler for executado, as tabelas serão adicionadas ao AWS Glue Data Catalog. Para obter mais informações, consulte Usar crawlers para preencher o catálogo de dados .

Se você conhecer os atributos necessários para criar uma definição de tabela do Amazon Simple Storage Service (Amazon S3) no Data Catalog, você poderá criá-la com o assistente de tabela. Escolha Add tables, Add table manually a siga as instruções no assistente Add table.

Ao adicionar uma tabela manualmente usando o console, considere o seguinte:

  • Se você planeja acessar a tabela a partir do Amazon Athena, forneça um nome somente com caracteres alfanuméricos e sublinhados. Para obter mais informações, consulte Nomes do Athena.

  • O local dos seus dados de origem deve ser um caminho do Amazon S3.

  • O formato dos dados deve corresponder a um dos formatos listados no assistente. A classificação correspondente e outras propriedades da tabela são preenchidas automaticamente com base no formato escolhido. SerDe Você pode definir tabelas com os seguintes formatos:

    Avro

    Formato JSON binário Apache Avro.

    CSV

    Valores separados por vírgula (CSV). Você também especifica o delimitador como vírgula, pipe, ponto e vírgula, tabulação ou Ctrl+A.

    JSON

    JavaScript Notação de objeto.

    XML

    Formato Extensible Markup Language. Especifique a XML tag que define uma linha nos dados. As colunas são definidas nas tags de linha.

    Parquet

    Armazenamento em colunas no Apache Parquet.

    ORC

    Formato de arquivo Row Columnar (ORC) otimizado. Um formato criado para armazenar dados do Hive com eficiência.

  • Você pode definir uma chave de partição para a tabela.

  • Atualmente, as tabelas particionadas que você cria com o console não podem ser usadas em ETL trabalhos.

Atributos da tabela

Veja a seguir alguns atributos importantes da sua tabela:

Nome

O nome é determinado quando a tabela é criada, e você não pode alterá-la. Você faz referência a um nome de tabela em muitas operações do AWS Glue.

Banco de dados

O objeto do contêiner onde a sua tabela reside. Esse objeto contém uma organização de suas tabelas que existe dentro do AWS Glue Data Catalog e pode ser diferente de uma organização em seu armazenamento de dados. Quando você exclui um banco de dados, todas as tabelas contidas nele também são excluídas do Data Catalog.

Descrição

A descrição da tabela. Você pode escrever uma descrição para ajudá-lo a entender o conteúdo da tabela.

Formato da tabela

Especifique a criação de uma AWS Glue tabela padrão ou uma tabela no formato Apache Iceberg.

Habilitar compactação

Escolha Habilitar compactação para compactar pequenos objetos do Amazon S3 na tabela em objetos maiores.

IAMpapel

Para executar a compactação, o serviço assume uma IAM função em seu nome. Você pode escolher uma IAM função usando o menu suspenso. Certifique-se de que a função tenha as permissões necessárias para habilitar a compactação.

Para saber mais sobre as permissões necessárias para a IAM função, consulte Pré-requisitos de otimização de tabelas .

Local

O ponteiro para o local dos dados em um datastore que esta definição de tabela representa.

Classificação

Um valor de categorização fornecido quando a tabela foi criada. Normalmente, ele é escrito quando um crawler é executado e especifica o formato dos dados da fonte.

Última atualização

A hora e a data (UTC) em que essa tabela foi atualizada no Catálogo de Dados.

Data adicionada

A hora e a data (UTC) em que essa tabela foi adicionada ao Catálogo de Dados.

Preterido

Se o AWS Glue descobrir que uma tabela do Data Catalog não existe mais no seu datastore original, ele marcará essa tabela como defasada no catálogo de dados. Se você executar um trabalho que faz referência a uma tabela obsoleta, ele falhará. Edite trabalhos que fazem referência a tabelas obsoletas para removê-las como fontes e destinos. Recomendamos que você elimine tabelas obsoletas quando elas não forem mais necessárias.

Conexão

Se o AWS Glue exigir conexão com seu datastore, o nome da conexão será associado à tabela.

Visualizando e gerenciando detalhes da tabela

Para ver os detalhes de uma tabela existente, escolha o nome dela na lista e, em seguida, Action, View details.

Esses detalhes incluem propriedades da sua tabela e do seu esquema. Essa exibição mostra o esquema da tabela, incluindo os nomes de colunas na ordem definida para a tabela, os tipos de dados e as colunas de chaves para partições. Se uma coluna for de um tipo complexo, você poderá escolher View properties para exibir detalhes da estrutura desse campo, como mostrado no exemplo a seguir:

{ "StorageDescriptor": { "cols": { "FieldSchema": [ { "name": "primary-1", "type": "CHAR", "comment": "" }, { "name": "second ", "type": "STRING", "comment": "" } ] }, "location": "s3://aws-logs-111122223333-us-east-1", "inputFormat": "", "outputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "compressed": "false", "numBuckets": "0", "SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "|" } }, "bucketCols": [], "sortCols": [], "parameters": {}, "SkewedInfo": {}, "storedAsSubDirectories": "false" }, "parameters": { "classification": "csv" } }

Para obter mais informações sobre as propriedades de uma tabela, como StorageDescriptor, consulte StorageDescriptor estrutura.

Para alterar o esquema de uma tabela, escolha Edit schema para adicionar e remover colunas, alterar nomes de colunas e alterar tipos de dados.

Para comparar versões diferentes de uma tabela, incluindo seu esquema, escolha Comparar versões para ver uma side-by-side comparação de duas versões do esquema para uma tabela. Para obter mais informações, consulte Comparando versões do esquema de tabela .

Para exibir os arquivos que compõem uma partição do Amazon S3, escolha View partition (Visualizar partição). Para tabelas do Amazon S3, a coluna Key (Chave) exibe as teclas de partição usadas para particionar a tabela no datastore de origem. Particionar é uma maneira de separar uma tabela em partes relacionadas com base nos valores de uma coluna de chave, como data, local ou departamento. Para obter mais informações sobre partições, pesquise na Internet informações sobre "particionamento do Hive".

nota

Para obter step-by-step orientação sobre como visualizar os detalhes de uma tabela, consulte o tutorial Explorar tabela no console.

Comparando versões do esquema de tabela

Ao comparar duas versões dos esquemas de tabela, você pode comparar as alterações de linhas aninhadas expandindo e recolhendo linhas aninhadas, comparando esquemas de duas versões e visualizando as side-by-side propriedades da tabela. side-by-side

Para comparar versões

  1. No console do AWS Glue, escolha Tabelas, depois Ações e Comparar versões.

    A captura de tela mostra o botão mostra Ações quando selecionado. O menu suspenso exibe a opção Comparar versões.
  2. Escolha uma versão para comparar no menu suspenso de versões. Ao comparar esquemas, a guia Esquema fica realçada em laranja.

  3. Quando você compara tabelas entre duas versões, os esquemas de tabela são apresentados a você no lado esquerdo e no lado direito da tela. Isso permite que você determine as alterações visualmente comparando os campos Nome da coluna, tipo de dados, chave e comentário side-by-side. Quando há uma alteração, um ícone colorido exibe o tipo de alteração que foi feita.

    • Excluído: exibido por um ícone vermelho indica onde a coluna foi removida de uma versão anterior do esquema da tabela.

    • Editado ou movido: exibido por um ícone azul indica onde a coluna foi modificada ou movida em uma versão mais recente do esquema da tabela.

    • Adicionado: exibido por um ícone verde indica onde a coluna foi adicionada a uma versão mais recente do esquema da tabela.

    • Alterações aninhadas: exibido por um ícone amarelo indica onde a coluna aninhada contém as alterações. Escolha a coluna a ser expandida e visualize as colunas que foram excluídas, editadas, movidas ou adicionadas.

    A captura de tela mostra a comparação do esquema da tabela entre duas versões. Do lado esquerdo, fica a versão mais antiga. Do lado direito, fica a versão mais recente. O ícone de exclusão fica ao lado de uma coluna que foi removida da versão anterior e não existe mais na versão mais recente.
  4. Use a barra de pesquisa de campos de filtro para exibir campos com base nos caracteres que você inserir aqui. Se você inserir um nome de coluna em qualquer uma das versões da tabela, os campos filtrados serão exibidos nas duas versões da tabela para mostrar onde as alterações ocorreram.

  5. Para comparar propriedades, escolha a guia Propriedades.

  6. Para parar de comparar versões, escolha Interromper comparação para retornar à lista de tabelas.

Atualizar tabelas do Data Catalog criadas manualmente usando crawlers

Talvez você queira criar AWS Glue Data Catalog tabelas manualmente e depois mantê-las atualizadas com AWS Glue rastreadores. Os crawlers em execução em uma programação podem adicionar novas partições e atualizar as tabelas com qualquer alteração de esquema. Isso também se aplica a tabelas migradas de um metastore do Apache Hive.

Para fazer isso, ao definir um crawler, em vez de especificar um ou mais armazenamentos de dados como a fonte de um crawl, você especifica uma ou mais tabelas do Data Catalog existentes. Em seguida, o crawler rastreia os armazenamentos de dados especificados pelas tabelas de catálogo. Nesse caso, nenhuma tabela nova é criada; em vez disso, suas tabelas criadas manualmente são atualizadas.

Veja a seguir os outros motivos pelos quais você pode querer criar manualmente tabelas de catálogo e especificar tabelas de catálogo como a origem do crawler:

  • Você deseja escolher o nome da tabela de catálogo e não depender do algoritmo de nomenclatura da tabela de catálogo.

  • Você deseja impedir que novas tabelas sejam criadas caso arquivos com um formato que possa interromper a detecção de partição sejam salvos por engano no caminho da fonte de dados.

Para obter mais informações, consulte Etapa 2: escolher as fontes de dados e os classificadores.

Propriedades da tabela do Data Catalog

As propriedades ou parâmetros da tabela, como são conhecidos no AWS CLI, são cadeias de caracteres de chave e valor não validadas. Você pode definir suas próprias propriedades na tabela para permitir o uso do Data Catalog fora do AWS Glue. Outros serviços que usam o Catálogo de Dados também podem fazer isso. AWS Glue define algumas propriedades da tabela ao executar trabalhos ou rastreadores. Salvo indicação em contrário, essas propriedades são para uso interno. Não podemos garantir que elas continuarão existindo em sua forma atual nem que o produto se comportará conforme esperado se essas propriedades forem alteradas manualmente.

Para obter mais informações sobre as propriedades da tabela definidas pelos AWS Glue rastreadores, consulte. Parâmetros definidos nas tabelas do Data Catalog pelo crawler