Associe ao Spanner
Como administrador do BigQuery, pode criar uma associação para aceder aos dados do Spanner. Esta ligação permite aos analistas de dados consultar dados no Spanner.
Antes de começar
- Ative a API BigQuery Connection.
-
Para receber as autorizações de que precisa para estabelecer ligação ao Spanner, peça ao seu administrador para lhe conceder a função de administrador da ligação do BigQuery (
roles/bigquery.connectionAdmin
) do IAM no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie ligações do Spanner
Selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery.
No painel Explorador, clique em
Adicionar dados.É apresentada a caixa de diálogo Adicionar dados.
No painel Filtrar por, na secção Tipo de origem de dados, selecione Bases de dados.
Em alternativa, no campo Pesquisar origens de dados, pode introduzir
Spanner
.Na secção Origens de dados em destaque, clique em Google Cloud Spanner.
Clique no cartão da solução Google Cloud Spanner: federação do BigQuery.
No painel Origem de dados externa, introduza as seguintes informações:
- Em Tipo de ligação, selecione Cloud Spanner.
- Para o ID da ligação, introduza um identificador para o recurso de ligação. São permitidas letras, números e sublinhados.
- Para o Tipo de localização, selecione uma localização (ou uma região) do BigQuery compatível com a região da sua origem de dados externa.
- Opcional: para Nome amigável, introduza um nome amigável para a ligação, como
My connection resource
. O nome amigável pode ser qualquer valor que ajude a identificar o recurso de associação se precisar de o modificar mais tarde. - Opcional: em Descrição, introduza uma descrição para este recurso de ligação.
- Para Nome da base de dados, introduza o nome da base de dados do Spanner no seguinte formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE"
- Opcional: para realizar leituras paralelas, selecione Ler dados em paralelo. O Spanner pode dividir determinadas consultas em partes mais pequenas, ou partições, e obter as partições em paralelo. Para mais informações, consulte o artigo Leia dados em paralelo na documentação do Spanner. Esta opção está restrita a consultas cujo primeiro operador no plano de execução seja um operador de união distribuída. Outras consultas devolvem um erro. Para ver o plano de execução de consultas para uma consulta do Spanner, consulte o artigo Compreenda como o Spanner executa consultas.
- Opcional: para Função da base de dados, introduza o nome de uma função da base de dados do Spanner. Se não estiver vazio, esta ligação consulta o Spanner usando esta função de base de dados por predefinição. Os utilizadores do controlo de acesso detalhado do Spanner que enviam consultas através desta ligação têm de ter recebido acesso a esta função por parte do respetivo administrador, e a função de base de dados tem de ter o privilégio
SELECT
em todos os objetos de esquema especificados em consultas externas. Para informações sobre o controlo de acesso detalhado, consulte o artigo Acerca do controlo de acesso detalhado. - Opcional: para ativar o Data Boost, selecione Usar Data Boost do Spanner. O Data Boost permite-lhe executar consultas de estatísticas e exportações de dados com um impacto quase nulo nas cargas de trabalho existentes na instância do BigQuery aprovisionada. Para ativar o Aumento de dados, selecione Aumento de dados e Ler dados em paralelo.
Clique em Criar associação.
bq
Para criar a associação, use o comando
bq mk
com a flag --connection
.
bq mk --connection \ --connection_type=CLOUD_SPANNER \ --properties='PROPERTIES' \ --location=LOCATION \ --display_name='FRIENDLY_NAME' \ --description 'DESCRIPTION' \ CONNECTION_ID
Substitua o seguinte:
PROPERTIES
: um objeto JSON com os seguintes campos:"database"
: a base de dados do Spanner para a associaçãoEspecifique como uma string com o seguinte formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE"
."use_parallelism"
: (opcional) setrue
, esta ligação faz leituras paralelasO valor predefinido é
false
. O Spanner pode dividir determinadas consultas em partes mais pequenas ou partições e obter as partições em paralelo. Para mais informações, consulte o artigo Leia dados em paralelo na documentação do Spanner. Esta opção está restrita a consultas cujo primeiro operador no plano de execução é um operador de união distribuída. Outras consultas devolvem um erro. Para ver o plano de execução de consultas para uma consulta do Spanner, consulte o artigo Compreenda como o Spanner executa consultas."database_role"
: (Opcional) Se não estiver vazio, esta associação consulta o Spanner com esta função de base de dados por predefinição. Os utilizadores do controlo de acesso detalhado do Spanner que enviam consultas através desta ligação têm de ter recebido acesso a esta função por parte do respetivo administrador, e a função de base de dados tem de ter o privilégioSELECT
em todos os objetos de esquema especificados em consultas externas.Se não for especificado, a ligação é autenticada com as funções predefinidas do IAM para o Spanner, e o principal que executa consultas com esta ligação tem de ter recebido a função do IAM
roles/spanner.databaseReader
.Para informações sobre o controlo de acesso detalhado, consulte o artigo Acerca do controlo de acesso detalhado.
"useDataBoost"
: (Opcional) Setrue
, esta associação permite que os utilizadores usem o Aumento de dados. O Data Boost permite que os utilizadores executem consultas federadas em capacidade de computação separada, independente e distinta das instâncias aprovisionadas para evitar afetar as cargas de trabalho existentes. Para ativar o Aumento de dados, defina"useDataBoost"
comotrue
e"use_parallelism"
comotrue
.Para usar o aumento de dados, o principal que executa consultas com esta ligação tem de ter recebido a autorização
spanner.databases.useDataBoost
. Esta autorização está incluída por predefinição nas funçõesroles/spanner.admin
eroles/spanner.databaseAdmin
.
LOCATION
: uma localização do BigQuery que seja compatível com a região da sua origem de dados externa.CONNECTION_ID
: um identificador para o recurso de ligaçãoO ID da associação pode conter letras, números e sublinhados. Se não fornecer um ID de ligação, o BigQuery gera automaticamente um ID exclusivo.
O exemplo seguinte cria um novo recurso de associação com o nome
my_connection_id
.bq mk --connection \ --connection_type='CLOUD_SPANNER' \ --properties='{"database":"projects/my_project/instances/my_instance/databases/database1"}' \ --project_id=federation-test \ --location=us \ my_connection_id
API
Chame o método CreateConnection
no serviço ConnectionService
.
Partilhe ligações com utilizadores
Pode conceder as seguintes funções para permitir que os utilizadores consultem dados e geram ligações:
roles/bigquery.connectionUser
: permite que os utilizadores usem associações para estabelecer ligação a origens de dados externas e executar consultas nas mesmas.roles/bigquery.connectionAdmin
: permite que os utilizadores geram associações.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery.
As associações são apresentadas no seu projeto, num grupo denominado Associações externas.
No painel Explorador, clique no nome do projeto > Ligações externas > ligação.
No painel Detalhes, clique em Partilhar para partilhar uma associação. Depois, faça o seguinte:
Na caixa de diálogo Autorizações de ligação, partilhe a ligação com outros responsáveis adicionando ou editando responsáveis.
Clique em Guardar.
bq
Não pode partilhar uma ligação com a ferramenta de linhas de comando bq. Para partilhar uma associação, use a Trusted Cloud consola ou o método da API BigQuery Connections para partilhar uma associação.
API
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O que se segue?
- Saiba mais sobre os diferentes tipos de ligações.
- Saiba como gerir associações.
- Saiba mais acerca das consultas federadas.
- Saiba como consultar dados do Spanner.