O BigQuery é um data warehouse para análise em escala de petabyte. Ele é usado para executar consultas SQL em grandes volumes de dados, praticamente em tempo real.
A concessão de acesso de visualização a um conjunto de dados também é conhecida como criação de visualização autorizada no BigQuery. Uma visualização autorizada permite que você compartilhe resultados de consultas com usuários e grupos específicos sem conceder a eles acesso às tabelas subjacentes. Também é possível usar a consulta SQL da visualização para restringir as colunas (campos) que os usuários podem consultar. Neste tutorial, você criará uma visualização autorizada.
Objetivos
Nesta seção, mostramos como concluir as seguintes tarefas:
- Criar conjuntos de dados e aplicar controles de acesso a eles.
- Atribuir controles de acesso ao seu projeto.
- Criar uma visualização autorizada que restrinja os dados que os usuários podem consultar.
Custos
O BigQuery é um produto pago. O uso dele neste tutorial gera cobranças. O BigQuery oferece alguns recursos gratuitamente até um limite específico. Para mais informações, consulte Operações gratuitas e nível gratuito do BigQuery.
Antes de começar
Antes de começar este tutorial, use o Console do Google Cloud para criar ou selecionar um projeto.
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente, acesse
Ative a API BigQuery.
- Opcional: ative o faturamento do projeto. Se você não quiser ativar o faturamento ou informar um cartão de crédito, as etapas deste documento ainda funcionarão. O BigQuery fornece um sandbox para executar as etapas. Para mais informações, consulte Ativar o sandbox do BigQuery.
Criar um conjunto de dados de origem
Comece criando um conjunto de dados para armazenar os dados de origem. Neste tutorial, você preencherá uma tabela no conjunto de dados de origem consultando o conjunto de dados público do GitHub. Os dados contidos no conjunto mostram informações que não devem ser visualizadas pelos seus analistas. Você restringe o acesso aos dados usando uma visualização autorizada.
Para criar um conjunto de dados de origem:
Console
No Console do Google Cloud, abra 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.Para o código do conjunto de dados, insira
github_source_data
.Mantenha as outras configurações padrão e 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.
Depois de criar o conjunto de dados de origem, preencha uma tabela nele usando uma consulta SQL. Ela recupera dados do conjunto de dados públicos do GitHub.
Console
No Console do Google Cloud, abra a página do BigQuery.
Copie e cole a seguinte consulta no painel Editor.
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 pelo ID do projeto.Em ID da tabela, insira
github_contributors
.Clique em Save.
Clique em Executar.
Quando a consulta for concluída, clique em github_contributors e em Visualizar para confirmar se os dados foram gravados na tabela.
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 em que armazenar a visualização
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 dados de origem e o conjunto de dados de visualização autorizados precisam estar no mesmo local regional.
Para criar um conjunto de dados e armazenar sua visualização:
Console
No Console do Google Cloud, abra 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.Para o código do conjunto de dados, insira
shared_views
.Mantenha as outras configurações padrão e 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 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.
Neste tutorial, sua visualização compartilhada exclui as informações do autor, exceto o nome dele, e exclui as informações do autor do commit, exceto o nome dele.
Para criar a visualização no novo conjunto de dados:
Console
No Console do Google Cloud, abra a página do BigQuery.
Copie e cole a seguinte consulta no painel Editor. Substitua
PROJECT_ID
pelo ID do projeto.SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
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.
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.
Atribuir aos analistas de dados um papel de IAM para envolvidos no projeto
Para consultar a visualização, seus analistas de dados precisam de permissão para executar jobs
de consulta. O papel bigquery.user
inclui permissões para executar jobs no projeto, incluindo
jobs de consulta. Se você concede a um usuário ou grupo o papel bigquery.user
para envolvidos no projeto, o favorecido pode criar conjuntos de dados e executar jobs de consulta em tabelas nesses conjuntos de dados. O papel bigquery.user
não dá permissão ao usuário para consultar dados, ver dados da tabela ou visualizar os detalhes do esquema da tabela para conjuntos de dados que não foram criados por esse usuário.
Atribuir aos seus analistas de dados o papel bigquery.user
para envolvidos no projeto não permite que eles visualizem ou consultem dados da tabela no conjunto de dados que contém as tabelas consultadas pela visualização. O papel bigquery.user
também não concede aos usuários
a permissão de atualizar suas visualizações.
A maioria das pessoas (cientistas de dados, analistas de business
intelligence, analistas de dados) em uma empresa precisa ter o
papel bigquery.user
no nível do projeto.
Ao adicionar um grupo a um papel de IAM, o endereço de e-mail e o domínio têm que estar associados a uma Conta do Google ativa ou a uma conta do Google Apps.
Para atribuir o grupo de analistas de dados ao papel bigquery.user
para envolvidos
no projeto:
Console
Abra a página "IAM" no console do Google Cloud.
Verifique se o projeto está selecionado no seletor na barra superior.
Clique em
Conceder acesso.Na caixa de diálogo Conceder acesso a, faça o seguinte:
- Na caixa Participantes, insira o grupo que contém os analistas de
dados.
Por exemplo,
data_analysts@example.com
. - Na caixa Selecionar um papel, procure o papel Usuário do BigQuery e selecione-o.
- Clique em Save.
- Na caixa Participantes, insira o grupo que contém os analistas de
dados.
Por exemplo,
Atribuir controles de acesso ao conjunto de dados que contém a visualização
Para que seus analistas de dados consultem a visualização, eles precisam receber o
papel bigquery.dataViewer
no conjunto de dados que contém a visualização. O
papel bigquery.user
concede aos analistas de dados 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
ao conjunto de dados que contém a visualização.
Para conceder acesso bigquery.dataViewer
ao conjunto de dados para os analistas de dados.
Console
No Console do Google Cloud, abra a página do BigQuery.
No painel Explorador, selecione o conjunto de dados
shared_views
.Clique em > Permissões.
CompartilhamentoNo painel Permissões do conjunto de dados, clique em Adicionar principal.
Na caixa 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
Com os controles de acesso criados para o conjunto de dados que contém a visualização, você a adiciona como uma visualização autorizada no conjunto de dados de origem. Essa autorização concede à visualização acesso aos dados de origem, mas não concede ao grupo de analistas de dados acesso a esses dados.
Para autorizar que a visualização acesse os dados de origem:
Console
No Console do Google Cloud, abra a página do BigQuery.
No painel Explorer, selecione o conjunto de dados
github_source_data
.Clique em
Compartilhamento e selecione Autorizar visualizações.No painel Visualizações autorizadas que é aberta, insira a visualização
github_analyst_view
no campo Visualizações autorizadas.Clique em Adicionar Autorização.
A visualização github_analyst_view
agora tem autorização para acessar dados no conjunto de dados de
origem.
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:
SQL
Peça para um membro do seu grupo de analistas de dados fazer o seguinte:
No Console do Google Cloud, acesse a página 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.
Para mais informações sobre como executar consultas, consulte 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.
- No Console do 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.
A seguir
- Leia Permissões e papéis predefinidos para saber mais sobre os controles de acesso no BigQuery.
- Leia Introdução às visualizações para saber mais sobre as visualizações do BigQuery.
- Leia Como criar uma visualização autorizada para saber mais informações.
- Leia Visão geral do IAM para saber mais sobre os conceitos básicos do IAM.
- Leia Como gerenciar políticas para saber como gerenciar o controle de acesso.