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. As visualizações do Catálogo de Dados também são chamadas de visualizações de vários dialetos, ou MDVs.
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
Considerações e limitações
A maioria das limitações de visualização a seguir do Catálogo de Dados são específicas do Athena. Para ver limitações adicionais das visualizações do Catálogo de Dados que se também aplicam a outros serviços, consulte a documentação do Lake Formation.
-
As visualizações do catálogo de dados não podem referenciar outras visualizações, links de recursos de banco de dados ou links de recursos de tabela.
-
É possível fazer referência a até dez tabelas na definição de visualização.
-
As tabelas não devem ter a permissão de data lake
IAMAllowedPrincipals
no Lake Formation. Se presente, o erroVisualizações de vários dialetos só podem fazer referência a tabelas sem permissões de IAMAllowedPrincipals permissions
ocorrerá. -
A localização da tabela no Amazon S3 deve ser registrada como uma localização de data lake do Lake Formation. Se a tabela não estiver registrada dessa forma, o erro
Visualizações de vários dialetos só podem fazer referência a tabelas gerenciadas pelo Lake Formation
ocorrerá. Para obter informações sobre como registrar locais do Amazon S3 no Lake Formation, consulte Registrar um local do Amazon S3 no Guia do desenvolvedor do AWS Lake Formation. -
As chamadas das APIs GetTables e SearchTables do AWS Glue não atualizam o parâmetro
IsRegisteredWithLakeFormation
. Para visualizar o valor correto para o parâmetro, use a API GetTable do AWS Glue. Para obter mais informações, consulte As APIs GetTables e SearchTables não atualizam o valor do parâmetro IsRegisteredWithLakeFormation no Guia do desenvolvedor do AWS 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.