Usar o AWS Glue para se conectar a origens de dados no Amazon S3 - Amazon Athena

Usar o AWS Glue para se conectar a origens de dados no Amazon S3

O Athena pode se conectar aos dados armazenados no Amazon S3 usando o AWS Glue Data Catalog para armazenar metadados, como nomes de tabela e de coluna. Depois que a conexão é feita, os bancos de dados, as tabelas e as visualizações são exibidas no editor de consultas do Athena.

Para definir informações de esquemas a serem usadas pelo AWS Glue, é possível criar um crawler do AWS Glue para recuperar as informações automaticamente ou adicionar manualmente uma tabela e inserir as informações do esquema.

Criar um crawler do AWS Glue

É possível criar um crawler começando no console do Athena e usando o console do AWS Glue de forma integrada. Ao criar o crawler, você especifica um local de dados no Amazon S3 para crawling.

Para criar um crawler no AWS Glue começando do console do Athena
  1. Abra o console do Athena em https://console.aws.amazon.com/athena/.

  2. No editor de consultas, ao lado de Tabelas e visualizações, escolha Criar e, em seguida, selecione Crawler do AWS Glue.

  3. No console do AWS Glue, na página Add crawler (Adicionar crawler), siga as etapas para criar um crawler. Para obter mais informações, consulte Usar crawlers do AWS Glue neste guia e Como preencher o AWS Glue Data Catalog no Guia do desenvolvedor do AWS Glue.

nota

O Athena não reconhece os padrões de exclusão que você especifica para um crawler do AWS Glue. Por exemplo, se você tem um bucket do Amazon S3 com os arquivos .csv e .json e exclui os arquivos .json do crawler, o Athena consulta os dois grupos de arquivos. Para evitar isso, coloque os arquivos que você deseja excluir em um local diferente.

Adicionar uma tabela usando um formulário

O procedimento a seguir mostra como usar o console do Athena para adicionar uma tabela usando o formulário Create Table From S3 bucket data (Criar tabela a partir de bucket do S3).

Como adicionar uma tabela e inserir informações de esquema usando um formulário
  1. Abra o console do Athena em https://console.aws.amazon.com/athena/.

  2. No editor de consultas, ao lado de Tables and views (Tabelas e visualizações), escolha Create (Criar) e, em seguida, escolha S3 bucket data (Dados do bucket do S3).

  3. No formulário Create Table From S3 bucket data (Criar tabela a partir de dados de bucket do S3), em Table name (Nome da tabela), insira um nome para a tabela.

  4. Em Database configuration (Configuração do banco de dados), escolha um banco de dados existente ou crie um.

  5. Em Location of Input Data Set (Local do conjunto de dados de entrada), especifique o caminho no Amazon S3 para a pasta que contém o conjunto de dados que você deseja processar. Não inclua um nome de arquivo no caminho. O Athena verifica todos os arquivos na pasta especificada. Se seus dados já estiverem particionados (p. ex.,

    s3://DOC-EXAMPLE-BUCKET/logs/year=2004/month=12/day=11/), insira somente o caminho base (p. ex., s3://DOC-EXAMPLE-BUCKET/logs/).

  6. Em Data format (Formato de dados), escolha entre as seguintes opções:

    • Em Table type (Tipo de tabela), escolha Apache Hive, Apache Iceberg ou Delta Lake. O Athena usa o tipo de tabela Apache Hive como padrão. Para obter informações sobre como consultar tabelas do Apache Iceberg no Athena, consulte Usar tabelas do Apache Iceberg. Para obter informações sobre como usar tabelas do Delta Lake no Athena, consulte Consultar tabelas do Linux Foundation Delta Lake.

    • Em File format (Formato de arquivo), escolha o formato de arquivo ou log dos seus dados.

      • Na opção Text File with Custom Delimiters (Arquivo de texto com delimitadores personalizados), especifique um Field terminator (Terminador de campo) (ou seja, um delimitador de coluna). Opcionalmente, você pode especificar um terminador de coleção que marque o fim de um tipo de matriz ou um terminador de coleção que marque o fim de um tipo de dados de mapa.

    • Biblioteca SerDe: uma biblioteca SerDe (serializador-desserializador) analisa um formato de dados específico para que o Athena possa criar uma tabela para ele. Para a maioria dos formatos, uma biblioteca SerDe padrão é escolhida para você. Para os formatos a seguir, escolha uma biblioteca de acordo com seus requisitos:

      • Apache Web Logs: escolha a biblioteca RegexSerDe ou GrokserDe. Para RegexSerDe, forneça uma expressão regular na caixa Regex definition (Definição Regex). Para GrokserDe, forneça uma série de expressões regulares nomeadas para a propriedade SerDe input.format. As expressões regulares nomeadas são mais fáceis de ler e manter do que as expressões regulares. Para ter mais informações, consulte Consultar logs do Apache armazenados no Amazon S3.

      • CSV: escolha LazySimpleSerDe se seus dados separados por vírgula não contiverem valores entre aspas duplas ou se usarem o formato java.sql.Timestamp. Escolha OpenCSVSerDe se os dados incluírem aspas ou usarem o formato numérico UNIX para TIMESTAMP (p. ex., 1564610311). Para ter mais informações, consulte LazySimpleSerDe para arquivos CSV, TSV e com delimitação personalizada e OpenCSVSerDe para processar CSV.

      • JSON: escolha a biblioteca OpenX ou Hive JSON SerDe. Os dois formatos esperam que cada documento JSON esteja em uma única linha de texto e que os campos não sejam separados por caracteres de nova linha. O OpenX SerDe oferece algumas propriedades adicionais. Para obter mais informações sobre essas propriedades, consulte OpenX JSON SerDe. Para obter mais informações sobre o Hive SerDe, consulte Hive JSON SerDe.

      Para obter mais informações sobre como usar as bibliotecas SerDe no Athena, consulte SerDes e formatos de dados compatíveis.

  7. Em SerDe properties (Propriedades de SerDe), adicione, edite ou remova propriedades e valores de acordo com a biblioteca SerDe que você estiver usando e seus requisitos.

    • Para adicionar uma propriedade SerDe, escolha Add SerDe property (Adicionar propriedade SerDe).

    • No campo Name (Nome), insira o nome da propriedade.

    • No campo Value (Valor), insira um valor para a propriedade.

    • Para remover uma propriedade SerDe, escolha Remove (Remover).

  8. Em Table properties (Propriedades da tabela), escolha ou edite as propriedades da tabela de acordo com seus requisitos.

    • Em Propriedades da tabela (Compactação de gravação), escolha uma opção de compactação. A disponibilidade da opção de compactação de gravação e das opções de compactação disponíveis depende do formato dos dados. Para ter mais informações, consulte Suporte a compactação no Athena.

    • Para Encryption (Criptografia), selecione Encrypted data set (Conjunto de dados criptografados) se os dados subjacentes estiverem criptografados no Amazon S3. Essa opção define a propriedade has_encrypted_data da tabela como verdadeira na instrução CREATE TABLE.

  9. Em Column details (Detalhes da coluna), insira os nomes e os tipos de dados das colunas que você deseja adicionar à tabela.

    • Para adicionar mais colunas uma de cada vez, escolha Add a column (Adicionar uma coluna).

    • Para adicionar rapidamente mais colunas, escolha Bulk add columns (Adicionar colunas em massa). Na caixa de texto, insira uma lista separada por vírgulas de colunas no formato column_name data_type, column_name data_type[, …] e escolha Add (Adicionar).

  10. (Opcional) Em Partition details (Detalhes da partição), adicione um ou mais nomes de colunas e tipos de dados. O particionamento mantém os dados relacionados juntos com base nos valores das colunas e pode ajudar a reduzir a quantidade de dados digitalizados por consulta. Para obter informações sobre particionamento, consulte Particionar dados no Athena.

  11. (Opcional) Em Bucketing, você pode especificar uma ou mais colunas que tenham linhas que você deseja agrupar e, em seguida, colocar essas linhas em vários buckets. Isso permite que você consulte somente o bucket que deseja ler quando o valor das colunas agrupadas for especificado.

    • Para Buckets, selecione uma ou mais colunas que tenham um grande número de valores exclusivos (p. ex., uma chave primária) e que sejam frequentemente usadas para filtrar os dados em suas consultas.

    • Em Number of buckets (Número de buckets), insira um número que permita que os arquivos tenham o tamanho ideal. Para obter mais informações, consulte Top 10 Performance Tuning Tips for Amazon Athena (As 10 melhores dicas para ajustar o desempenho do Amazon Athena) no AWS Big Data Blog.

    • Para especificar suas colunas agrupadas, a instrução CREATE TABLE usará a seguinte sintaxe:

      CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
    nota

    A opção Bucketing (Agregar em bucket) não está disponível para o tipo de tabela do Iceberg.

  12. A caixa Preview table query (Previsualizar consulta da tabela) mostra a instrução CREATE TABLE gerada pelas informações inseridas no formulário. A instrução de visualização não pode ser editada diretamente. Para alterar a instrução, modifique os campos no formulário acima da visualização ou crie a instrução diretamente no editor de consultas em vez de usar o formulário.

  13. Selecione Create table (Criar tabela) para executar a instrução gerada no editor de consultas e criar a tabela.