Neste tutorial, você vai criar uma visualização autorizada no BigQuery que será usada pelos analistas de dados. As visualizações autorizadas permitem compartilhar resultados de consultas com usuários e grupos específicos sem conceder a eles acesso aos dados de origem. A visualização recebe acesso aos dados de origem, em vez de um usuário ou grupo. Também é possível usar a consulta SQL da visualização para excluir colunas e campos dos resultados da consulta.
Uma abordagem alternativa para usar uma visualização autorizada seria configurar controles de acesso no nível da coluna nos dados de origem e, em seguida, conceder aos usuários acesso a uma visualização que consulta os dados controlados por acesso. Para mais informações sobre os controles de acesso no nível da coluna, consulte Introdução ao controle de acesso no nível da coluna.
Se você tiver várias visualizações autorizadas que acessam o mesmo conjunto de dados de origem, é possível autorizar o conjunto de dados que contém as visualizações em vez de autorizar uma visualização individual.
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 restrinja 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 ao conjunto de dados de origem.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
- Verifique se você tem as permissões necessárias para realizar as tarefas neste documento.
Funções exigidas
Se você criar um projeto, será o proprietário dele e receberá todas as permissões do IAM necessárias para concluir este tutorial.
Se você estiver usando um projeto atual, precisará do seguinte papel.
Make sure that you have the following role or roles on the project:
- BigQuery Studio Admin (
roles/bigquery.studioAdmin
)
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Acessar o IAM - Selecionar um projeto.
- Clique em CONCEDER ACESSO.
-
No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
bigquery.datasets.create
para criar o conjunto de dados de origem e o conjunto de dados que contém a visualização autorizada.bigquery.tables.create
para criar a tabela que armazena os dados de origem e para criar a visualização autorizada.bigquery.jobs.create
para executar o job de consulta que carrega dados na tabela de origem.bigquery.datasets.getIamPolicy
ebigquery.datasets.get
para receber permissões do IAM para o conjunto de dados de origem e o conjunto de dados que contém a visualização autorizada.bigquery.datasets.setIamPolicy
ebigquery.datasets.update
para atualizar as permissões do IAM no conjunto de dados de origem e no conjunto de dados que contém a visualização autorizada.
Para mais informações sobre papéis no BigQuery, consulte Papéis predefinidos do IAM.
Permissões necessárias
Para criar os recursos usados neste tutorial, as seguintes permissões são necessárias. O papel predefinido do administrador do BigQuery Studio concede todas essas permissões.
Para mais informações sobre as permissões do IAM no BigQuery, consulte Permissões do BigQuery.
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 Explorer, ao lado do projeto em que você quer criar o conjunto de dados, clique em > Criar conjunto de dados.
Ver açõesNa 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 Multirregional está selecionado.
Em Multirregião, escolha EUA ou UE. Todos os recursos que você cria neste tutorial precisam estar no mesmo local de várias regiões.
Clique em Criar conjunto de dados.
SQL
Use a instrução DDL CREATE SCHEMA
.
No console do Google Cloud, acesse a página BigQuery Studio.
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úblicos 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 Mais e selecione 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_ID
pela ID do seu projeto.Em ID da tabela, insira
github_contributors
.Clique em Save.
Clique em Executar.
Quando a consulta for concluída, no painel Explorer, expanda
github_source_data
e clique emgithub_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.
As visualizações autorizadas precisam ser criadas 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 e armazenar sua visualização, escolha uma das seguintes opções:
Console
Acessar a página do BigQuery.
No painel Explorador, selecione o projeto em que você quer criar o conjunto de dados.
Expanda a opção
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 Multirregional está selecionado.
Em Multirregião, escolha EUA ou UE. Todos os recursos que você cria neste tutorial precisam estar no mesmo local de várias regiões.
Clique em Criar conjunto de dados.
SQL
Use a instrução DDL CREATE SCHEMA
.
No console do Google Cloud, acesse a página BigQuery Studio.
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. Ela é criada com 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, sua visualização autorizada exclui todos
os dados do autor, exceto o nome, e exclui 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_ID
pela ID do seu projeto.Clique em 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 Studio.
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_ID
pela ID do seu 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 permissão aos analistas de dados 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. O papel bigquery.studioUser
inclui a permissão bigquery.jobs.create
. O papel bigquery.studioUser
não dá aos usuários permissão para visualizar ou consultar a visualização autorizada. 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.studioUser
para envolvidos no projeto, faça o seguinte:
No console do Google Cloud, abra a página IAM.
Verifique se o projeto está selecionado no seletor.
Clique em
Conceder acesso.Na caixa de diálogo Conceder acesso a, faça o seguinte:
No campo Novos participantes, insira o grupo que contém seus analistas de dados. Por exemplo,
data_analysts@example.com
.No campo Selecionar um papel, procure a função Usuário do BigQuery Studio e selecione-a.
Clique em Salvar.
Conceder permissão aos analistas de dados 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 a que precisa conceder acesso, use um conjunto de dados autorizado.
O papel bigquery.studioUser
que você concedeu aos analistas de dados anteriormente
dá a eles as permissões necessárias para criar jobs de consulta. No entanto, eles não podem consultar a visualização a menos que também tenham acesso de bigquery.dataViewer
à visualização autorizada ou ao conjunto de dados que contém a visualização.
Para conceder acesso bigquery.dataViewer
ao conjunto de dados que contém a visualização autorizada aos analistas de dados, faça o seguinte:
Console
Acessar a página do BigQuery.
No painel Explorador, selecione o conjunto de dados
shared_views
.Clique em > Permissões.
CompartilhamentoNo painel Compartilhar permissões, clique em Adicionar participante.
Em Novos participantes, insira o grupo que contém seus 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 acesso ao conjunto de dados de origem. Essa autorização concede à visualização acesso aos dados de origem, mas não ao grupo de analistas de dados.
Para conceder à visualização autorizada acesso aos dados de origem, escolha uma destas opções:
Console
Acessar a página do BigQuery.
No painel Explorador, selecione o conjunto de dados
github_source_data
.Clique em > Autorizar visualizações.
CompartilhamentoNo painel Visualizações autorizadas, insira
PROJECT_ID.shared_views.github_analyst_view
em Visualização autorizada.Substitua PROJECT_ID pela ID do seu 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_ID
pela ID do seu projeto.Clique em
Executar.
Os resultados da consulta são semelhantes aos mostrados a seguir. Apenas o nome do autor e do autor da confirmação são mostrados 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
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 saber mais sobre os conceitos básicos de controle de acesso, consulte a Visão geral do IAM.
- Para saber como gerenciar o controle de acesso, consulte Como gerenciar políticas.