Uso das visualizações do AWS Glue Data Catalog - Amazon Athena

Uso das visualizações do AWS Glue Data Catalog

Esse recurso está em prévia de release e sujeito a alterações. Para obter mais informações, consulte a seção Beta e pré-visualizações no documento de Termos de serviço da AWS.

Use as visualizações do AWS Glue Data Catalog quando desejar uma perspectiva única e comum entre os Serviços da AWS, como o Amazon Athena e o Amazon Redshift. Nas visualizações do Catálogo de Dados, as permissões de acesso são definidas pelo usuário que criou a visualização, e não pelo usuário que consulta a visualização. Esse método de concessão de permissões é chamado de semântica do programador.

Os casos de uso apresentados a seguir mostram como é possível usar as visualizações do Catálogo de Dados.

  • Maior controle de acesso: você cria uma visualização que restringe o acesso aos dados com base no nível de permissões requeridas pelo usuário. Por exemplo, é possível usar as visualizações do Catálogo de Dados para evitar que colaboradores que não trabalham no departamento de recursos humanos (RH) vejam informações de identificação pessoal.

  • Garantia de registros completos: ao aplicar determinados filtros na visualização do Catálogo de Dados, você garante que os registros de dados em uma visualização do Catálogo de Dados estejam sempre completos.

  • Segurança aprimorada: nas visualizações do Catálogo de Dados, a definição de consulta que cria a visualização deve estar intacta para que a visualização seja criada. Isso torna as visualizações do Catálogo de Dados menos suscetíveis a comandos SQL de agentes mal-intencionados.

  • Prevenção do acesso às tabelas subjacentes: a semântica do programador permite que os usuários acessem uma visualização sem disponibilizar a tabela subjacente para eles. Somente o usuário que define a visualização necessita de acesso às tabelas.

As definições de visualização do Catálogo de Dados são armazenadas no AWS Glue Data Catalog. Isso significa que você pode usar o AWS Lake Formation para conceder acesso usando concessões de recursos, concessões de colunas ou controles de acesso baseados em etiquetas. Para obter mais informações sobre como conceder e revogar acesso no Lake Formation, consulte Granting and revoking permissions on Data Catalog resources no Guia do desenvolvedor do AWS Lake Formation.

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 perfil Definer deve ter permissões SELECT 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.

As relações de confiança do perfil Definer devem permitir a ação sts:AssumeRole para os principais de serviço do AWS Glue e do Lake Formation, como apresentado no exemplo a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

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.

Limitações

  • 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ões SELECT 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.

Criação de uma visualização do 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

Consulta de uma visualização do Catálogo de Dados

Depois que a visualização for criada, o Lake Formation Admin 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

Atualização de uma visualização do Catálogo de Dados

O Lake Formation Admin ou o Definer podem usar a sintaxe ALTER VIEW UPDATE DIALECT para atualizar a definição de visualização. O exemplo apresentado a seguir modifica a definição de visualização para selecionar colunas da tabela returns em vez de usar a tabela orders.

ALTER VIEW orders_by_date UPDATE DIALECT AS SELECT return_date, sum(totalprice) AS price FROM returns WHERE order_city = 'SEATTLE' GROUP BY orderdate

Para obter mais informações sobre a sintaxe para criar e gerenciar visualizações do Catálogo de Dados, consulte Sintaxe da visualização do Catálogo de Dados do Glue.