Esta página explica como usar o Spanner Data Boost quando executa consultas federadas do BigQuery para uma base de dados do Spanner. Com o Data Boost, as consultas federadas são executadas com um impacto mínimo nos volumes de trabalho existentes na instância do Spanner aprovisionada. As consultas do Data Boost do BigQuery a uma base de dados do Spanner podem juntar dados do BigQuery com dados do Spanner.
A federação do Spanner permite que o BigQuery consulte dados residentes no Spanner em tempo real, sem copiar nem mover dados. Para saber mais sobre as consultas federadas do Spanner, consulte o artigo Consultas federadas do Spanner. Para saber mais sobre o Aumento de dados, consulte a vista geral do Aumento de dados.
Antes de começar
Antes de poder executar consultas federadas com o Data Boost, tem de concluir as seguintes tarefas:
Crie uma instância e uma base de dados do Spanner
Se não tiver uma instância e uma base de dados do Spanner, siga os passos em Criar e consultar uma base de dados com a Google Cloud consola para as criar.
Ative a API BigQuery Connection
A API BigQuery Connection permite-lhe gerir ligações do BigQuery a origens de dados externas, como uma base de dados do Spanner.
-
Enable the BigQuery connection API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Para mais informações, consulte a API BigQuery Connection na documentação do BigQuery.
Conceda autorizações de IAM para o Data Boost a diretores
Um principal tem de ter as seguintes autorizações para executar consultas federadas com o Data Boost:
spanner.instances.get
: permite obter a configuração de uma instância.spanner.databases.useDataBoost
- permite-lhe usar os recursos de computação do Spanner Data Boost para processar consultas particionadas.
Para mais informações sobre as autorizações do Spanner, consulte o artigo Autorizações da gestão de identidade e de acesso (IAM).
Para conceder estas autorizações necessárias, recomendamos que use a função de IAM Cloud
Spanner Database Reader With DataBoost
(roles/spanner.databaseReaderWithDataBoost
). Pode
adicionar essa função a qualquer principal que precise de executar consultas federadas
com o Data Boost. Para saber mais acerca das funções predefinidas no Spanner, consulte o artigo Funções predefinidas. Para saber como criar uma função do IAM personalizada, consulte o artigo Crie uma função
personalizada.
Execute uma consulta de Data Boost federada
Para executar uma consulta do Data Boost a partir do BigQuery para uma origem externa, precisa de uma ligação do BigQuery à origem externa e do ID da ligação. Quando executa uma consulta federada do Spanner com o Data Boost, a origem externa é uma base de dados do Spanner. Depois de criar o ID da associação, o BigQuery usa-o para executar uma consulta de Data Boost de uma base de dados do Spanner.
Use uma das seguintes opções para criar um ID de ligação do BigQuery e, de seguida, use o ID de ligação para executar uma consulta do Data Boost a partir do BigQuery:
Comece no Spanner: crie o ID da ligação externa do BigQuery na consola do Spanner. Depois de o ID da ligação ser criado na consola do Spanner, é feito o redirecionamento para a consola do BigQuery para executar uma consulta federada do Data Boost numa base de dados do Spanner.
Comece no BigQuery: crie o ID da associação externa do Data Boost na consola do BigQuery ou através da ferramenta de linha de comandos
bq
. Depois de criar o ID da associação, permanece na consola do BigQuery para executar uma consulta de Data Boost federada a uma base de dados do Spanner.
Comece no Spanner para executar uma consulta do Data Boost
Para executar uma consulta federada do Data Boost a partir do Spanner Studio, faça o seguinte:
Aceda à página Instances do Spanner na Google Cloud consola.
A consola mostra uma lista das suas instâncias do Spanner.
Selecione uma instância do Spanner e, em seguida, selecione uma base de dados.
Na página Vista geral da base de dados, no menu de navegação, clique em Spanner Studio.
Clique em Ver no BigQuery.
Na caixa de diálogo Ver no BigQuery, introduza um ID da ligação.
O ID da associação é usado para criar uma nova associação externa do BigQuery à sua base de dados do Spanner. Faz referência à sua ligação externa através do seguinte padrão:
PROJECT-ID.LOCATION.CONNECTION-ID
Ocorre um erro se o ID já existir.
Preencha o resto da caixa de diálogo e faça o seguinte:
- Selecione Ler dados em paralelo.
- Selecione Usar otimização de dados do Spanner.
Clique em Ver no BigQuery.
O BigQuery Studio é aberto com a seguinte consulta:
SELECT * FROM EXTERNAL_QUERY("PROJECT-ID.LOCATION.CONNECTION-ID", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
Pode substituir isto pela sua consulta federada. Por exemplo, pode fazer uma consulta semelhante ao seguinte exemplo. Este exemplo faz uma consulta federada a partir de uma tabela denominada
orders
numa base de dados do Spanner e junta os resultados a uma tabela do BigQuery denominadamydataset.customers
.SELECT c.customer_id, c.name, rq.first_order_date FROM mydataset.customers AS c LEFT OUTER JOIN EXTERNAL_QUERY( 'my-project.us.example-db', '''SELECT customer_id, MIN(order_date) AS first_order_date FROM orders GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id GROUP BY c.customer_id, c.name, rq.first_order_date;
Comece no BigQuery para executar uma consulta do Data Boost
Para criar uma ligação de dados externa do BigQuery a uma base de dados do Spanner e usar essa ligação para executar uma consulta de Data Boost federada a partir do BigQuery, selecione uma das seguintes opções:
Consola
Aceda a Criar ligações do Spanner na documentação do BigQuery e siga as instruções no separador Consola.
No painel Origem de dados externa, faça o seguinte:
- Selecione Ler dados em paralelo.
- Selecione Usar otimização de dados do Spanner.
bq
Aceda a Criar associações do Spanner na documentação do BigQuery e siga as instruções no separador bq*.
Defina as seguintes propriedades da ligação como
true
:useParallelism
useDataBoost
O exemplo seguinte usa o comando bq
mk
para criar uma nova ligação denominada my_connection
com as duas propriedades necessárias para a otimização de dados:
bq mk --connection --connection_type='CLOUD_SPANNER' --location='us' \
--properties='{"database":"projects/my-project/instances/my-instance/databases/my-database", "useParallelism":true, "useDataBoost": true}' my_connection
O que se segue?
- Saiba mais sobre a Otimização de dados no artigo Vista geral da Otimização de dados
- Use a Otimização de dados nas suas aplicações
- Monitorize a utilização do aumento de dados
- Monitorize e faça a gestão da utilização da quota do Aumento de dados