Neste tutorial, você vai criar uma visualização autorizada no BigQuery, que os analistas de dados podem usar para analisar os resultados da consulta sem precisar de acesso aos dados de origem subjacentes.
Para isso, crie a visualização autorizada com base em uma consulta SQL que restringe as colunas que os analistas de dados podem ver nos resultados da consulta.
Objetivos
- Crie um conjunto de dados para conter os dados de origem.
- Execute uma consulta para carregar dados em uma tabela de destino no conjunto de dados de origem.
- Crie um conjunto de dados para conter a visualização autorizada.
- Crie uma visualização autorizada com base em uma consulta SQL que restringe as colunas que os analistas de dados podem ver nos resultados da consulta.
- Conceda aos analistas de dados permissão para executar jobs de consulta.
- Conceda aos analistas de dados acesso ao conjunto de dados que contém a visualização autorizada.
- Conceda acesso de visualização autorizado ao conjunto de dados de origem.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na sua projeção de uso,
use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative a API BigQuery, se ainda não estiver ativada.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.- Verifique se você tem as permissões necessárias para executar as tarefas neste documento.
Criar um conjunto de dados para armazenar os dados de origem
Comece criando um conjunto de dados para armazenar os dados de origem.
Para criar o conjunto de dados de origem, escolha uma das seguintes opções:
Console
Acessar a página do BigQuery.
No painel à esquerda, clique em Explorer:

Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.
No painel Explorer, ao lado do projeto em que você quer criar o conjunto de dados, clique em Ver ações > Criar conjunto de dados.
Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
github_source_data.Em Tipo de local, verifique se a opção Multirregional está selecionada.
Em Multirregião, escolha EUA ou UE. Todos os recursos criados neste tutorial precisam estar no mesmo local multirregional.
Clique em Criar conjunto de dados.
SQL
Use a instrução DDL CREATE SCHEMA.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE SCHEMA github_source_data;
Clique em Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Criar uma tabela e carregar os dados de origem
Depois de criar o conjunto de dados de origem, preencha uma tabela nele salvando os resultados de uma consulta SQL em uma tabela de destino. A consulta recupera dados do conjunto de dados público do GitHub.
Console
Acessar a página do BigQuery.
No Editor de consultas, insira a seguinte consulta:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;Clique em Editar > Configurações de consulta.
Em Destino, selecione Definir uma tabela de destino para os resultados da consulta.
Em Conjunto de dados, insira
PROJECT_ID.github_source_data.Substitua
PROJECT_IDpelo ID do projeto.Em ID da tabela, insira
github_contributors.Clique em Save.
Clique em Executar.
Quando a consulta for concluída, no painel Explorador, clique em Conjuntos de dados e, em seguida, clique no conjunto de dados
github_source_data.Clique em Visão geral > Tabelas e, em seguida, na tabela
github_contributors.Para verificar se os dados foram gravados na tabela, clique na guia Visualização.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Criar um conjunto de dados para armazenar a visualização autorizada
Depois de criar o conjunto de dados de origem, crie um conjunto de dados novo e separado para armazenar a visualização autorizada que você compartilhará com seus analistas de dados. Em uma etapa posterior, você concederá à visualização autorizada acesso aos dados no conjunto de dados de origem. Os analistas de dados terão acesso à visualização autorizada, mas não terão acesso direto aos dados de origem.
É preciso criar as visualizações autorizadas em um conjunto de dados diferente dos dados de origem. Dessa forma, os proprietários dos dados podem conceder aos usuários acesso à visualização autorizada sem conceder acesso simultaneamente aos dados subjacentes. O conjunto de dados de origem e o conjunto de dados de visualização autorizada precisam estar no mesmo local regional.
Para criar um conjunto de dados para armazenar sua visualização, escolha uma das seguintes opções:
Console
Acessar a página do BigQuery.
No painel à esquerda, clique em Explorer:

No painel Explorador, selecione o projeto em que você quer criar o conjunto de dados.
Expanda a opção Ver ações e clique em Criar conjunto de dados.
Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
shared_views.Em Tipo de local, verifique se a opção Multirregional está selecionada.
Em Multirregião, escolha EUA ou UE. Todos os recursos criados neste tutorial precisam estar no mesmo local multirregional.
Clique em Criar conjunto de dados.
SQL
Use a instrução DDL CREATE SCHEMA.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE SCHEMA shared_views;
Clique em Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Criar a visualização autorizada no novo conjunto de dados
No novo conjunto de dados, crie a visualização que pretende autorizar. É a visualização que você compartilha com seus analistas de dados. Essa visualização é criada usando uma consulta SQL que exclui as colunas que você não quer que os analistas de dados vejam.
A tabela de origem github_contributors contém dois campos do tipo RECORD:
author e committer. Neste tutorial, a visualização autorizada exclui todos os dados do autor, exceto o nome, e todos os dados do autor da confirmação, exceto o nome.
Para criar a visualização no novo conjunto de dados, escolha uma das seguintes opções:
Console
Acessar a página do BigQuery.
No editor de consultas, insira a seguinte consulta.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Substitua
PROJECT_IDpelo ID do projeto.Clique em Arquivo > Salvar > Salvar visualização.
Na caixa de diálogo Salvar visualização, faça o seguinte:
Em Projeto, verifique se o projeto está selecionado.
Em Conjunto de dados, insira
shared_views.Em Tabela, insira
github_analyst_view.Clique em Save.
SQL
Use a instrução DDL CREATE VIEW.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Substitua
PROJECT_IDpelo ID do projeto.Clique em Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Conceder aos analistas de dados permissão para executar jobs de consulta
Para consultar a visualização, os analistas de dados precisam da permissão bigquery.jobs.create
para executar jobs de consulta. Essa permissão é necessária apenas no projeto
em que o job de consulta é executado (o projeto de faturamento ou execução), que pode ser
diferente do projeto que contém a visualização.
Nesta seção, você concede o papel bigquery.user aos analistas de dados no
projeto que eles usam para executar os jobs. O papel bigquery.user inclui a permissão bigquery.jobs.create. Em uma etapa posterior, você concede aos analistas de dados
permissão para acessar a visualização.
Para atribuir o grupo de analistas de dados ao papel bigquery.user no projeto
que eles usam para executar os jobs, faça o seguinte:
No console do Google Cloud , acesse a página IAM.
Verifique se o projeto que os analistas usam para executar os jobs está selecionado no seletor de projetos.
Clique em Conceder acesso.
Na caixa de diálogo Conceder acesso a, faça o seguinte:
No campo Novos principais, insira o grupo que contém os analistas de dados. Por exemplo,
data_analysts@example.com.No campo Selecionar um papel, procure o papel Usuário do BigQuery e selecione-o.
Clique em Salvar.
Conceder aos analistas de dados permissão para consultar a visualização autorizada
Para que os analistas de dados consultem a visualização, eles precisam receber o papel
bigquery.dataViewer no nível do conjunto de dados ou da visualização.
Ao conceder esse papel no nível do conjunto de dados, os analistas têm acesso a todas as tabelas
e visualizações no conjunto de dados. Como o conjunto de dados criado neste tutorial contém
uma única visualização autorizada, você está concedendo acesso no nível do conjunto de dados. Se você
tiver uma coleção de visualizações autorizadas que precisam de acesso, use
um conjunto de dados autorizado.
O papel bigquery.user que você concedeu aos analistas de dados anteriormente
concede as permissões necessárias para criar jobs de consulta no projeto em que
eles são executados. No entanto, eles não poderão consultar a visualização, a menos que
também tenham acesso bigquery.dataViewer à visualização autorizada ou ao conjunto de dados
que contém a visualização.
Para conceder aos analistas de dados acesso bigquery.dataViewer ao conjunto de dados que
contém a visualização autorizada, faça o seguinte:
Console
Acessar a página do BigQuery.
No painel à esquerda, clique em Explorer:

No painel Explorer, clique em Conjuntos de dados e selecione o conjunto de dados
shared_viewspara abrir a guia Detalhes.Clique em Compartilhamento > Permissões.
No painel Compartilhar permissões, clique em Adicionar principal.
Em Novos principais, insira o grupo que contém os analistas de dados, por exemplo,
data_analysts@example.com.Clique em Selecionar um papel e selecione BigQuery > Visualizador de dados do BigQuery.
Clique em Save.
Clique em Fechar.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Autorizar a visualização a acessar o conjunto de dados de origem
Depois de criar controles de acesso para o conjunto de dados que contém a visualização autorizada, conceda a ela acesso ao conjunto de dados de origem. Essa autorização concede à visualização, mas não ao grupo de analistas de dados, acesso aos dados de origem.
Para conceder à visualização autorizada acesso aos dados de origem, escolha uma destas opções:
Console
Acessar a página do BigQuery.
No painel à esquerda, clique em Explorer:

No painel Explorer, clique em Conjuntos de dados e selecione o conjunto de dados
github_source_datapara abrir a guia Detalhes.Clique em Compartilhamento > Autorizar visualizações.
No painel Visualizações autorizadas, em Visualização autorizada, insira
PROJECT_ID.shared_views.github_analyst_view.Substitua PROJECT_ID pelo ID do projeto.
Clique em Adicionar autorização.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Verificar a configuração
Quando a configuração estiver concluída, um membro do seu grupo de analistas de dados (por
exemplo, data_analysts) poderá verificar a configuração consultando a visualização.
Para verificar a configuração, um analista de dados precisa executar a seguinte consulta:
Acessar a página do BigQuery.
No editor de consultas, digite a seguinte instrução:
SELECT * FROM `
PROJECT_ID.shared_views.github_analyst_view`;Substitua
PROJECT_IDpelo ID do projeto.Clique em Executar.
Os resultados da consulta são semelhantes aos mostrados a seguir. Somente o nome do autor e o nome do committer ficam visíveis nos resultados.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
Código-fonte completo
Veja aqui o código-fonte completo do tutorial da sua referência.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
Console
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
gcloud
Exclua um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
Excluir recursos individuais
Como alternativa, para remover os recursos individuais usados neste tutorial, faça o seguinte:
Exclua o conjunto de dados que contém a visualização autorizada.
Exclua a tabela no conjunto de dados de origem.
Como você criou os recursos usados neste tutorial, não são necessárias outras permissões para excluí-los.
A seguir
- Para saber mais sobre os controles de acesso no BigQuery, consulte Papéis e permissões do IAM do BigQuery.
- Para saber mais sobre as visualizações do BigQuery, consulte Introdução às visualizações lógicas.
- Para saber mais sobre visualizações autorizadas, consulte Visualizações autorizadas.
- Para aprender os conceitos básicos sobre controle de acesso, consulte Visão geral do IAM.
- Para saber como gerenciar o controle de acesso, consulte Como gerenciar políticas.