Trabalhar com visualizações - Amazon Athena

Trabalhar com visualizações

Uma visualização no Amazon Athena é uma tabela lógica, não física. A consulta que define uma exibição é executada sempre que a exibição é referenciada em uma consulta.

Você pode criar uma exibição a partir de uma consulta SELECT e, em seguida, fazer referência a essa exibição em futuras consultas. Para ter mais informações, consulte CREATE VIEW.

Quando usar visualizações?

Talvez você queira criar visualizações para:

  • Consultar um subconjunto de dados. Por exemplo, você pode criar uma visualização com um subconjunto de colunas com base na tabela original para simplificar a consulta de dados.

  • Combinar várias tabelas em uma consulta. Se você tem várias tabelas e deseja combiná-las com UNION ALL, é possível criar uma visualização com essa expressão para simplificar consultas em tabelas combinadas.

  • Ocultar a complexidade de consultas básicas existentes e simplificar as consultas executadas pelos usuários. As consultas básicas geralmente incluem junções entre tabelas, expressões na lista de colunas e outra sintaxe de SQL que dificultam o entendimento e a depuração delas. Você pode criar uma exibição que oculta a complexidade e simplifica consultas.

  • Experimente com técnicas de otimização e crie consultas otimizadas. Por exemplo, se você encontrar uma combinação de condições WHERE, ordem JOIN ou outras expressões que demonstram a melhor performance, você poderá criar uma exibição com essas cláusulas e expressões. Os aplicativos podem realizar consultas relativamente simples contra essa exibição. Posteriormente, se você encontrar uma melhor maneira de otimizar a consulta original, quando você recriar a exibição, todos os aplicativos aproveitam imediatamente a consulta básica otimizada.

  • Oculte a tabela subjacente e os nomes de coluna e minimize os problemas de manutenção se esses nomes forem alterados. Nesse caso, recrie a exibição usando os novos nomes. Todas as consultas que usam a exibição ao invés de tabelas subjacentes continuarão em execução sem alterações.

Ações com suporte para visualizações no Athena

O Athena permite as ações a seguir nas visualizações. Você pode executar esses comandos no editor de consultas.

Statement Descrição
CREATE VIEW

Cria uma nova exibição a partir de uma consulta SELECT especificada. Para ter mais informações, consulte Criar visualizações.

A cláusula OR REPLACE opcional permite atualizar a exibição existente substituindo-a

DESCRIBE VIEW

Mostra a lista de colunas para a exibição nomeada. Isso permite examinar os atributos de uma exibição complexa.

DROP VIEW

Exclui uma exibição existente. A cláusula IF EXISTS opcional suprime o erro se a exibição não existir.

SHOW CREATE VIEW

Mostra a instrução SQL que cria a exibição específica.

SHOW VIEWS

Lista as exibições no banco de dados especificado ou no banco de dados atual se você omitir o nome do banco de dados. Use a cláusula LIKE opcional com uma expressão regular para restringir a lista de nomes de exibições. Você também pode ver a lista de exibições no painel esquerdo no console.

SHOW COLUMNS

Liste as colunas no esquema para obter uma visualização.

Considerações sobre visualizações

As seguintes considerações se aplicam à criação e ao uso de visualizações no Athena:

  • No Athena, você pode previsualizar e trabalhar com visualizações criadas no console do Athena, no AWS Glue Data Catalog, caso tenha migrado para usá-lo, ou com o Presto em execução no cluster do Amazon EMR conectado ao mesmo catálogo. Você não pode previsualizar nem adicionar ao Athena visualizações que foram criadas de outras maneiras.

  • Se você criou visualizações do Athena no catálogo de dados, o catálogo as trata como tabelas. Você pode usar o controle de acesso detalhado no nível da tabela no catálogo de dados para restringir o acesso a essas visualizações.

  • O Athena impede que você execute visualizações repetidas e exibe uma mensagem de erro nesses casos. Uma exibição recursiva é uma consulta de exibição que faz referência a si mesmo.

  • O Athena exibe uma mensagem de erro quando detecta visualizações obsoletas. Uma exibição obsoleta é relatada quando um dos seguintes itens ocorrer:

    • A exibição faz referência a tabelas ou bancos de dados que não existem.

    • Uma alteração de esquema ou metadados é feita em uma tabela referenciada.

    • Uma tabela referenciada é descartada e recriada com um esquema ou uma configuração diferente.

  • Você pode criar e executar exibições aninhadas, desde que a consulta por trás da exibição aninhada seja válida e as tabelas e os bancos de dados existirem.

Limitações das visualizações

  • Os nomes das visualizações do Athena não podem conter caracteres especiais, exceto sublinhado (_). Para ter mais informações, consulte Nomes de tabelas, bancos de dados e colunas.

  • Evite usar palavras-chave reservadas para nomear visualizações. Se você usar palavras-chave reservadas, use aspas duplas para delimitar as palavras-chave reservadas em suas consultas em visualizações. Consulte Palavras-chave reservadas.

  • Não é possível usar visualizações criadas no Athena com metastores externos do Hive ou UDFs. Para obter informações sobre como trabalhar com visualizações criadas externamente no Hive, consulte Usar visualizações do Hive.

  • Não é possível usar visualizações com funções geoespaciais.

  • Não é possível usar as visualizações para gerenciar o controle de acesso aos dados no Amazon S3. Para consultar uma visualização, é necessário ter permissões para acessar os dados armazenados no Amazon S3. Para ter mais informações, consulte Acesso ao Amazon S3 pelo Athena.

  • Embora seja compatível com consulta de visualizações entre contas tanto no mecanismo Athena versão 2 como no mecanismo Athena versão 3, não é possível criar uma visualização que inclua um AWS Glue Data Catalog entre contas. Para obter informações sobre o acesso a catálogos de dados entre contas, consulte Acesso aos catálogos de dados do AWS Glue entre contas.

  • As colunas ocultas de metadados do Hive ou Iceberg $bucket, $file_modified_time, $file_size e $partition não são compatíveis para visualizações no Athena. Para obter informações sobre como usar a coluna $path de metadados no Athena, consulte Obter os locais de arquivos dos dados de origem no Amazon S3 .

Trabalhar com visualizações no console

No console do Athena, é possível:

  • Localizar todas as visualizações no painel esquerdo, onde as tabelas estão listadas.

  • Filtre as exibições.

  • Visualize uma exibição, mostre suas propriedades, edite-a ou exclua-a.

Para mostrar as ações de uma exibição

Uma exibição é mostrada no console somente se você já a criou.

  1. No console do Athena, escolha Views (Visualizações) e, em seguida, escolha uma visualização para expandi-la e mostrar as colunas na visualização.

  2. Escolha os três pontos verticais ao lado da visualização para mostrar uma lista de ações dela.

    O menu de ações de uma visualização.
  3. Escolha as ações para a visualização: exibir uma prévia, inserir o nome o editor de consultas, excluir, consultar as propriedades ou exibir e editar no editor de consultas.

Criar visualizações

Você pode criar uma visualização no console do Athena usando um modelo ou executando uma consulta existente.

Para usar um modelo para criar uma visualização
  1. No console do Athena, ao lado de Tables and views (Tabelas e visualizações), escolha Create (Criar) e, em seguida, escolha Create view (Criar visualização).

    Criação de uma visualização.

    Essa ação coloca um modelo de visualização editável no editor de consultas.

  2. Edite o modelo de visualização de acordo com suas necessidades. Quando você digitar um nome para a visualização na instrução, lembre-se de que os nomes das visualizações não podem conter caracteres especiais além do sublinhado (_). Consulte Nomes de tabelas, bancos de dados e colunas. Evite usar Palavras-chave reservadas para nomear visualizações.

    Para obter mais informações sobre a criação de visualizações, consulte CREATE VIEW e Exemplos de visualizações.

  3. Selecione Run (Executar) para criar a visualização. A visualização aparece na lista de visualizações no console do Athena.

Para criar uma visualização a partir de uma consulta existente
  1. Use o editor de consultas do Athena para executar uma consulta existente.

  2. Na janela do editor de consultas, escolha Create (Criar) e, em seguida, escolha View from query (Visualização a partir de consulta).

    Selecione Create (Criar), View from query (Visualização a partir de consulta).
  3. Na caixa de diálogo Create View (Criar visualização), insira um nome para a visualização e, em seguida, escolha Create (Criar). Os nomes de visualizações não podem conter caracteres especiais, exceto sublinhado (_). Consulte Nomes de tabelas, bancos de dados e colunas. Evite usar Palavras-chave reservadas para nomear visualizações.

    O Athena adiciona a visualização à lista de visualizações no console e exibe a instrução CREATE VIEW para a visualização no editor de consulta.

Observações
  • Se você excluir uma tabela em que outra tabela se baseia e, depois, tentar executar a visualização, o Athena exibirá uma mensagem de erro.

  • Você pode criar uma visualização aninhada, que fica acima de uma visualização existente. O Athena impede que você execute uma visualização repetida com referência a ela mesma.

Exemplos de visualizações

Para mostrar a sintaxe da consulta de exibição, use SHOW CREATE VIEW.

exemplo Exemplo 1

Considere as duas tabelas a seguir: uma tabela employees com duas colunas, id e name e uma tabela salariescom duas colunas, id e salary.

Neste exemplo, criamos uma exibição chamada name_salary como uma consulta SELECT que obtém uma lista de IDs mapeados para salários a partir das tabelas employees e salaries:

CREATE VIEW name_salary AS SELECT employees.name, salaries.salary FROM employees, salaries WHERE employees.id = salaries.id
exemplo Exemplo 2

No exemplo a seguir, criamos uma exibição chamada view1 que permite que você oculte a sintaxe de consulta mais complexa.

Essa exibição é executada sobre duas tabelas, table1 e table2, em que cada tabela é uma consulta SELECT diferente. A visualização seleciona as colunas de table1 e combina os resultados com table2. A junção é baseada na coluna a presente em ambas as tabelas.

CREATE VIEW view1 AS WITH table1 AS ( SELECT a, MAX(b) AS the_max FROM x GROUP BY a ), table2 AS ( SELECT a, AVG(d) AS the_avg FROM y GROUP BY a) SELECT table1.a, table1.the_max, table2.the_avg FROM table1 JOIN table2 ON table1.a = table2.a;

Para obter informações sobre consultar visualizações federadas, consulte Consultar visualizações federadas.