Usar visualizações do Catálogo de Dados no Athena
A criação de visualizações do catálogo de dados no Amazon Athena exige uma instrução CREATE VIEW
especial. Consultá-las usa a sintaxe SELECT
do SQL convencional.
Criar uma visualização do Catálogo de Dados
Para criar uma visualização do Catálogo de Dados no Athena, use a sintaxe a seguir.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW
view_name
SECURITY DEFINER [ SHOW VIEW JSON ] ASathena-sql-statement
nota
A opção SHOW VIEW JSON
se aplica somente às visualizações do Catálogo de Dados, e não às visualizações do Athena. O uso da opção SHOW VIEW JSON
inicia uma "execução seca" que valida a entrada e, se a validação for bem-sucedida, retornará o JSON do objeto da tabela AWS Glue que representará a visualização. A visualização real não é criada. Se a opção SHOW VIEW JSON
não for especificada, as validações serão feitas e a exibição será criada normalmente no Catálogo de Dados.
O exemplo de sintaxe apresentado a seguir mostra como um usuário do perfil Definer
cria a visualização orders_by_date
do Catálogo de Dados. O exemplo pressupõe que o perfil Definer
tenha permissões SELECT
completas na tabela orders
no banco de dados default
.
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate
Para obter informações sobre sintaxe, consulte CREATE PROTECTED MULTI DIALECT VIEW.
Consulta de uma visualização do Catálogo de Dados
Depois que a visualização for criada, o admin do Lake Formation
poderá conceder permissões SELECT
na visualização do Catálogo de Dados para as entidades principais do Invoker
. Em seguida, as entidades principais do Invoker
poderão consultar a visualização sem ter acesso às tabelas subjacentes básicas referenciadas pela visualização. Veja a seguir um exemplo de consulta do Invoker
.
SELECT * from orders_by_date where price > 5000
Limitações
As limitações de visualização a seguir do Catálogo de Dados são específicas do Athena. Para ver as limitações nas visualizações do Catálogo de Dados que se aplicam tanto ao Athena quanto a outros serviços, consulte a documentação do Lake Formation.
-
As visualizações do Catálogo de Dados não podem fazer referência a outras visualizações.
-
É possível fazer referência a até dez tabelas na definição de visualização.
-
As tabelas subjacentes devem estar registradas no Lake Formation.
-
A entidade principal
DEFINER
pode ser somente um perfil do IAM. -
O perfil
DEFINER
deve ter permissõesSELECT
completas (concedíveis) nas tabelas subjacentes. -
Não há suporte para as visualizações
UNPROTECTED
do Catálogo de Dados. -
Não há suporte para as funções definidas pelo usuário (UDFs) na definição de visualização.
-
As fontes de dados federadas do Athena não podem ser usadas em visualizações do Catálogo de Dados.
-
As visualizações do Catálogo de Dados não têm suporte para metastores externos do Hive.
-
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.
-
Permissões
As visualizações do Catálogo de Dados requerem três perfis: Lake Formation Admin
, Definer
e Invoker
.
-
Lake Formation Admin
: tem acesso para configurar todas as permissões do Lake Formation. -
Definer
: cria a visualização do Catálogo de Dados. O perfilDefiner
deve ter permissõesSELECT
completas e concedíveis em todas as tabelas subjacentes às quais a definição de visualização faz referência. -
Invoker
: pode consultar a visualização do Catálogo de Dados ou verificar seus metadados. Para mostrar o invocador de uma consulta, você pode usar a funçãoinvoker_principal()
do DML. Para ter mais informações, consulte invoker_principal().
As relações de confiança do perfil Definer
devem permitir a ação sts:AssumeRole
para as entidades principais de serviço do AWS Glue e do Lake Formation. Para obter mais informações, consulte Pré-requisitos para a criação de visualizações no Guia do desenvolvedor do AWS Lake Formation.
As permissões do IAM para o acesso ao Athena também são necessárias. Para ter mais informações, consulte Politicas gerenciadas pela AWS para o Amazon Athena.