Criar tabelas
Embora a execução de um crawler seja o método recomendado para fazer o inventário dos dados em seus armazenamentos de dados, você pode adicionar tabelas de metadados ao AWS Glue Data Catalog manualmente. 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:
-
Use o console do AWS Glue para criar manualmente uma tabela no AWS Glue Data Catalog. Para ter mais informações, consulte Criar tabelas usando o console.
-
Use a operação
CreateTable
em API AWS Glue para criar uma tabela no AWS Glue Data Catalog. Para ter mais informações, consulte Ação CreateTable (Python: create_table). -
Use modelos do AWS CloudFormation. Para ter mais informações, consulte AWS CloudFormation para AWS Glue.
Ao definir uma tabela manualmente usando o console ou uma API, 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 Criar tabelas usando o console.
Tópicos
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 Criar í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 crawler do AWS Glue cria uma definição de tabela com chaves de particionamento por 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
Links de recursos de tabela
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.
Criar tabelas usando o console
Uma tabela no AWS Glue Data Catalog é a definição de metadados que representa os dados em um datastore. 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 destino ao criar trabalhos de ETL (extração, transformação e carregamento).
nota
Com as mudanças recentes no console de gerenciamento da AWS, pode ser necessário modificar os perfis do IAM existentes para que tenham a permissão de SearchTables
. Para a criação de um novo perfil, a permissão da API SearchTables
já foi adicionada como padrão.
Para começar, faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
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 ter 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, SerDe e outras propriedades da tabela serão preenchidas automaticamente com base no formato escolhido. Você pode definir tabelas com os seguintes formatos:
- Avro
-
Formato binário JSON do 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 Object Notation.
- XML
-
Formato Extensible Markup Language. Especifique a tag XML que define uma linha nos dados. As colunas são definidas nas tags de linha.
- Parquet
-
Armazenamento em colunas no Apache Parquet.
- ORC
-
Formato Optimized Row Columnar (ORC). 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 trabalhos de ETL.
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. Este objeto contém uma organização das suas tabelas que existe dentro do AWS Glue Data Catalog e pode diferir de uma organização no seu datastore. 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 tabela padrão do AWS Glue ou de uma tabela no formato do Apache Iceberg.
O Data Catalog fornece as seguintes opções de otimização de tabelas para gerenciar o armazenamento de tabelas e melhorar o desempenho de consultas para tabelas Iceberg.
-
Compactação: os arquivos de dados são mesclados e regravados para remover dados obsoletos e consolidar dados fragmentados em arquivos maiores e mais eficientes.
Retenção de snapshots: os snapshots são versões com carimbo de data e hora de uma tabela do Iceberg. As configurações de retenção de snapshots permitem que os clientes determinem por quanto tempo reter e quantos snapshots devem ser retidos. A configuração de um otimizador de retenção de snapshots pode ajudar a gerenciar a sobrecarga de armazenamento removendo snapshots antigos e desnecessários e seus arquivos subjacentes.
Exclusão de arquivos órfãos: arquivos órfãos são arquivos que não são mais referidos pelos metadados da tabela do Iceberg. Esses arquivos podem se acumular ao longo do tempo, especialmente após operações como exclusões de tabelas ou trabalhos de ETL com falha. Habilitar a exclusão de arquivos órfãos permite que o AWS Glue identifique e remova periodicamente esses arquivos desnecessários, liberando espaço de armazenamento.
Para ter mais informações, consulte Otimizar tabelas Iceberg.
-
- Configuração de otimização
É possível usar as configurações padrão ou personalizar as configurações para ativar os otimizadores de tabela.
- IAM role (Perfil do IAM)
Para executar a compactação, o serviço assume um perfil do IAM em seu nome. Você pode escolher um perfil do IAM usando o menu suspenso. Certifique-se de que o perfil tenha as permissões necessárias para habilitar a compactação.
Para saber mais sobre as permissões necessárias para o perfil do IAM, 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 esta tabela foi atualizada no Data Catalog.
- Data adicionada
-
A hora e a data (UTC) em que esta tabela foi adicionada ao Data Catalog.
- 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.
Exibir e gerenciar 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 Estrutura StorageDescriptor.
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 diferentes versões de uma tabela, incluindo seu esquema, escolha Compare versions para ver uma comparação lado-a-lado de duas versões do esquema para uma tabela. Para ter mais informações, consulte Comparar versões de esquema de tabelas .
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 orientação detalhada para visualizar os detalhes de uma tabela, consulte o tutorial Explore table no console.
Comparar versões de esquema de tabelas
Ao comparar duas versões de esquema de tabela, você pode comparar alterações de linhas aninhadas expandindo-as e contraindo-as, comparar esquemas de duas versões lado a lado e visualizar as propriedades da tabela lado a lado.
Para comparar versões
-
No console do AWS Glue, escolha Tabelas, depois Ações e Comparar versões.
-
Escolha uma versão para comparar no menu suspenso de versões. Ao comparar esquemas, a guia Esquema fica realçada em laranja.
-
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 visualmente as alterações comparando os campos de nome da coluna, tipo de dados, chave e comentários lado a lado. 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.
-
-
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.
-
Para comparar propriedades, escolha a guia Propriedades.
-
Para parar de comparar versões, escolha Interromper comparação para retornar à lista de tabelas.
Atualizar tabelas do Data Catalog criadas manualmente usando crawlers
Você pode querer criar tabelas do AWS Glue Data Catalog manualmente e mantê-las atualizadas com crawlers do AWS Glue. 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 ter 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 na AWS CLI, são strings 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 Data Catalog 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 crawlers do AWS Glue, consulte Parâmetros definidos nas tabelas do Data Catalog pelo crawler.