Criar e configurar uma conexão de recursos do Cloud
Como administrador do BigQuery, é possível criar uma conexão de recursos do Cloud que permita aos analistas de dados executar as seguintes tarefas:
- Consulte os dados estruturados do Cloud Storage usando tabelas do BigLake. As tabelas do BigLake permitem consultar dados externos com delegação de acesso.
- Consulte dados não estruturados no Cloud Storage usando tabelas de objetos.
- Implemente funções remotas com qualquer linguagem compatível no Cloud Run functions ou no Cloud Run.
Para mais informações sobre conexões, consulte Introdução às conexões.
Antes de começar
Ative a API BigQuery Connection.
-
Para receber as permissões necessárias a fim de criar uma conexão de recursos do Cloud, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin
) no projeto -
Leitor de objetos do Storage (
roles/storage.objectViewer
) no bucket
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Se você quiser consultar dados estruturados usando Tabelas do BigLake com base no Cloud Storage ou dados não estruturados usando tabelas de objetos, a conta de serviço associada à conexão também precisa ter o papel leitor de armazenamento (roles/storage.viewer
) no bucket que contém os dados externos.
-
Administrador de conexão do BigQuery (
- Verifique se a versão do SDK Google Cloud é a 366.0.0 ou mais recente:
gcloud version
Se necessário, atualize o SDK Google Cloud.
- Opcional: para o Terraform, use a versão 4.25.0 ou mais recente do Terraform GCP. Faça o download da versão mais recente em Downloads da HashiCorp Terraform.
Consideração de local
Quando você usar o Cloud Storage para armazenar arquivos de dados, recomendamos o uso de buckets de região única ou de região birregional do Cloud Storage para um desempenho ideal, não buckets multirregionais.
Criar conexões de recursos do Cloud
O BigLake usa uma conexão para acessar o Cloud Storage. É possível usar essa conexão com uma única tabela ou um grupo de tabelas.
Selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
Para criar uma conexão, clique em
Adicionar e em Conexões com fontes de dados externas.Na lista Tipo de conexão, selecione Modelos remotos da Vertex AI, funções remotas e BigLake (Cloud Resource).
No campo ID da conexão, insira um nome para a conexão.
Clique em Criar conexão.
Clique em Ir para conexão.
No painel Informações da conexão, copie o ID da conta de serviço para uso em uma etapa posterior.
bq
Em um ambiente de linha de comando, crie uma conexão:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
O parâmetro
--project_id
substitui o projeto padrão.Substitua:
REGION
: sua região de conexãoPROJECT_ID
: o ID do projeto do Google CloudCONNECTION_ID
: um ID para sua conexão
Quando você cria um recurso de conexão, o BigQuery cria uma conta de serviço do sistema exclusiva e a associa à conexão.
Solução de problemas: se você receber o seguinte erro de conexão, atualize o SDK Google Cloud:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Recupere e copie o ID da conta de serviço para uso em uma etapa posterior:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
O resultado será assim:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Anexe a seguinte seção ao seu arquivo main.tf
.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }
CONNECTION_ID
: um ID para sua conexãoPROJECT_ID
: o ID do projeto do Google CloudREGION
: sua região de conexão
Conceder acesso à conta de serviço
Se você quiser criar funções remotas, será necessário conceder os papéis necessários ao Cloud Run functions ou ao Cloud Run.
Se você quiser se conectar ao Cloud Storage, conceda à nova conexão acesso somente leitura ao Cloud Storage para que o BigQuery possa acessar arquivos em nome dos usuários.
Selecione uma das seguintes opções:
Console
Recomendamos que você conceda à conta de serviço de recurso de conexão o
papel do IAM de Leitor de objetos do Storage (roles/storage.objectViewer
), que permite que a conta de serviço acesse buckets do Cloud Storage.
Acessar a página AM e administrador
Clique em
Adicionar.A caixa de diálogo Adicionar principais é aberta.
No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.
No campo Selecionar papel, selecione Cloud Storage e, em seguida, selecione Visualizador de objetos do Storage.
Clique em Salvar.
gcloud
Use o comando gcloud storage buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://example-bucket \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
Substitua MEMBER
pelo ID da conta de serviço que você
copiou anteriormente.
Para mais informações, consulte Adicionar um principal a uma política no nível do bucket.
Terraform
Anexe a seguinte seção ao seu arquivo main.tf
.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
Compartilhar conexões com os usuários
Você pode conceder os seguintes papéis para permitir que os usuários consultem dados e gerenciem conexões:
roles/bigquery.connectionUser
: permite aos usuários usar conexões para se conectar a fontes de dados externas e executar consultas nelas.roles/bigquery.connectionAdmin
: permite que os usuários gerenciem conexões.
Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
As conexões são listadas no projeto, em um grupo chamado Conexões externas.
No painel Explorer, clique no nome do seu projeto > Conexões externas > conexão.
No painel Detalhes, clique em Compartilhar para compartilhar uma conexão. Em seguida, siga estas etapas:
Na caixa de diálogo Permissões de conexão, compartilhe a conexão com outros principais adicionando ou editando principais.
Clique em Salvar.
bq
Não é possível compartilhar uma conexão com a ferramenta de linha de comando bq. Para compartilhar um recurso de conexão, use o console do Google Cloud ou o método da API BigQuery Connections para compartilhar uma conexão.
API
Consulte o
método projects.locations.connections.setIAM
na seção de referência da API REST BigQuery Connections e
forneça uma instância do recurso policy
.
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.
A seguir
- Saiba sobre diferentes tipos de conexão.
- Saiba mais sobre como gerenciar conexões.
- Saiba mais sobre as tabelas BigLake.
- Saiba como criar tabelas do BigLake.
- Saiba como fazer upgrade de tabelas externas para tabelas do BigLake.
- Saiba mais sobre tabelas de objetos e como criá-las.
- Saiba como implementar funções remotas.