O BigQuery é um serviço de armazenamento de dados 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
Objetivos deste tutorial:
- 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 é feito neste tutorial. 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.
- O BigQuery é ativado automaticamente em novos projetos. Para ativar o BigQuery em um projeto preexistente, acesse Ative a API BigQuery.
- Se você não quiser informar um cartão de crédito ou ativar o faturamento do seu projeto, o BigQuery fornece um sandbox. É possível seguir as etapas deste tópico mesmo que seu projeto não tenha o faturamento ativado. Se quiser ativá-lo, consulte Saiba como ativar o faturamento.
Introdução
Neste tutorial, você criará dois conjuntos de dados: um para seus dados de origem e outro para sua visualização autorizada. O conjunto de dados de origem será alimentado pelo conjunto de dados público do GitHub. Em seguida, você criará uma visualização que consulta uma tabela no conjunto de dados de origem.
Depois de criar os conjuntos de dados e a visualização, atribua controles de acesso ao projeto, ao conjunto de dados que contém a visualização e ao conjunto de dados que contém os dados de origem.
A concessão de acesso de visualização a um conjunto de dados de origem também é conhecida como criação de visualização autorizada. Ao criar uma visualização autorizada, siga estes passos:
- Criar um conjunto de dados separado para armazenar a visualização
- Criar a visualização no novo conjunto de dados
- Atribuir controles de acesso ao projeto
- Atribuir controles de acesso ao conjunto de dados que contém a visualização
- Autorizar a visualização a acessar o conjunto de dados de origem
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 Cloud, abra a página do BigQuery.
No painel Explorador, selecione o projeto em que você quer criar o conjunto de dados.
No painel de detalhes, clique em Criar conjunto de dados.
Em ID do conjunto de dados, digite
github_source_data
.Mantenha todas as outras configurações padrão e clique em Criar conjunto de dados.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
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 Cloud, abra a página do BigQuery.
Clique em Escrever nova consulta.
Copie e cole a consulta a seguir na área de texto do Editor de consultas.
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, marque a caixa em Definir uma tabela de destino para os resultados da consulta.
- Em Nome do projeto, verifique se o projeto está selecionado.
- Em Nome do conjunto de dados, verifique se
github_source_data
está selecionado. - Em Nome da tabela, digite:
github_contributors
. - Clique em Salvar.
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 essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
Criar um conjunto de dados separado para armazenar sua visualização
Depois de criar seu conjunto de dados de origem, você criará 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á a 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 aos acessos diretos aos dados de origem.
As visualizações autorizadas que são controladas no nível do conjunto de dados precisam ser criadas em um conjunto de dados diferente dos dados de origem, para que os proprietários de dados possam conceder aos usuários acesso à visualização autorizada sem conceder simultaneamente acesso ao objeto subjacente para a área de transferência do sistema. 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 Cloud, abra a página do BigQuery.
No painel Explorador, selecione o projeto em que você quer criar o conjunto de dados.
No painel de detalhes, clique em Criar conjunto de dados.
Em ID do conjunto de dados, digite
shared_views
.Mantenha todas as outras configurações padrão e clique em Criar conjunto de dados.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
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 todas as informações do autor, exceto o nome, e todas as informações do autor da confirmação, exceto o nome dele.
Para criar a visualização no novo conjunto de dados:
Console
No Console do Cloud, abra a página do BigQuery.
Clique em Escrever nova consulta.
Copie e cole a consulta a seguir na área de texto do Editor de consultas. 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 Mais e selecione Configurações de consulta.
Em Dialeto SQL, selecione Padrão. Clique em Salvar para atualizar as configurações de consulta.
Na lista suspensa Salvar, selecione Salvar visualização.
Na caixa de diálogo Salvar visualização, faça o seguinte:
- Em Nome do projeto, verifique se o projeto está selecionado.
- Em Nome do conjunto de dados, verifique se
shared_views
está selecionado. - Em Nome da tabela, digite:
github_analyst_view
. - Clique em Salvar.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
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. A maioria das pessoas (cientistas de dados, analistas de business
intelligence, analistas de dados) em uma empresa precisa ter o
papel bigquery.user
para envolvidos no 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.
Clique em Selecionar um projeto.
Selecione o projeto e clique em Abrir.
Na página IAM, clique em Adicionar.
Na caixa de diálogo Adicionar membros:
- Na caixa Membros, insira o grupo que contém seus 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 Membros, insira o grupo que contém seus 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 o
acesso mínimo 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, siga estas etapas:
Console
No painel Explorer, selecione o conjunto de dados
shared_views
.Clique em Compartilhar conjunto de dados.
Na caixa de texto Adicionar membros, insira o grupo que contém seus analistas de dados (por exemplo,
data_analysts@example.com
).Clique em Selecionar papel e selecione BigQuery > Visualizador de dados do BigQuery.
Clique em Add.
Clique em Concluído.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
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. Isso permite o acesso de visualização aos dados de origem, não ao grupo de analistas de dados.
Para autorizar que a visualização acesse os dados de origem:
Console
No painel Explorer, selecione o conjunto de dados
github_source_data
.Clique em Compartilhar conjunto de dados.
No painel de Permissões do conjunto de dados, clique na guia Visualizações autorizadas.
Em Compartilhar visualização autorizada:
- Em Selecionar projeto, verifique se o projeto está selecionado.
- Em Selecionar conjunto de dados, selecione
shared_views
. - Em Selecionar visualização, digite o nome da visualização:
github_analyst_view
. - Clique em Add.
Clique em Concluído.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
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:
Console
Peça para um membro do grupo de analistas de dados acessar a página do BigQuery no Console do Cloud.
Clique em Escrever nova consulta.
Copie e cole a consulta a seguir na área de texto do Editor de consultas. Substitua
project_id
pelo ID do projeto.SELECT * FROM `project_id.shared_views.github_analyst_view`
Código-fonte completo
Veja aqui o código-fonte completo do tutorial da sua referência.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Antes de testar essa amostra, siga as instruções de configuração para 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.
Limpeza
Para evitar cobranças recorrentes 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 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.