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 VIEWview_nameSECURITY 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
IAMAllowedPrincipalsno Lake Formation. Se presente, o erroVisualizações de vários dialetos só podem fazer referência a tabelas sem permissões de IAMAllowedPrincipals permissionsocorrerá. -
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 Formationocorrerá. 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
DEFINERpode ser somente um perfil do IAM. -
O perfil
DEFINERdeve ter permissõesSELECTcompletas (concedíveis) nas tabelas subjacentes. -
Não há suporte para as visualizações
UNPROTECTEDdo 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 perfilDefinerdeve ter permissõesSELECTcompletas 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 obter 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 obter mais informações, consulte AWSPoliticas gerenciadas pela para o Amazon Athena.