Executar consultas federadas com o Data Boost

Nesta página, explicamos como usar o Spanner Data Boost ao executar consultas federadas do BigQuery para o Spanner. Com o Data Boost, as consultas federadas são executadas com impacto quase zero nas cargas de trabalho atuais na instância provisionada do Spanner.

A federação do Spanner permite que o BigQuery consulte dados que residem no Spanner em tempo real, sem copiar ou mover dados.

Saiba mais sobre as consultas federadas do Spanner em Consultas federadas do Spanner.

Para saber mais sobre o Data Boost, consulte Visão geral do Data Boost.

Antes de começar

Conclua as tarefas a seguir antes de tentar executar consultas federadas com o Data Boost.

Ativar a API BigQuery Connection

Com a API BigQuery Connection, você gerencia conexões do BigQuery com fontes de dados externas.

  • Ative a BigQuery connection API.

    Ative a API

Para mais informações, consulte API BigQuery Connection.

Conceder permissões do IAM para o Data Boost aos principais

Os principais precisam das permissões do Identity and Access Management (IAM) spanner.instances.get e spanner.databases.useDataBoost para executar consultas e exportações com o Data Boost.

Recomendamos que você crie um papel personalizado do IAM com base em Spanner Database Reader (roles/spanner.databaseReader) e adicione spanner.instances.get e spanner.databases.useDataBoost a ele.

Para mais informações, consulte Papéis predefinidos.

Criar conexões do BigQuery para o Spanner com o Data Boost

Com as conexões do BigQuery, é possível consultar dados armazenados fora dele. Para estabelecer uma conexão entre o BigQuery e o Spanner, crie uma conexão de dados externa. Em seguida, é possível executar consultas que unem dados do BigQuery aos dados do Spanner.

Para criar uma conexão de dados externa com o Spanner que use o Data Boost, selecione uma das seguintes opções:

Console

  1. Acesse Criar conexões do Spanner na documentação do BigQuery e siga as instruções do Console.

  2. No painel Fonte de dados externa, marque as caixas de seleção Ler dados em paralelo e Usar o Data Boost do Spanner.

bq

  1. Acesse Criar conexões do Spanner na documentação do BigQuery e siga as instruções do bq.

  2. Defina as seguintes propriedades de conexão como true:

  • useParallelism
  • useDataBoost

O exemplo a seguir usa o comando bq mk para criar uma nova conexão chamada my_connection com as duas propriedades obrigatórias para o Data Boost:

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

Executar uma consulta federada

Para executar uma consulta federada com o Data Boost, use uma conexão do BigQuery que especifique o uso dele. Para mais informações, consulte Criar conexões do BigQuery para o Spanner com o Data Boost.

É possível começar na página do Spanner do console do Google Cloud ou no BigQuery.

Comece pela página do Spanner no console

  1. Acesse a página Instâncias do Spanner no console do Google Cloud.

    Acessar a página "Instâncias"

    O console mostra uma lista de instâncias do Spanner.

  2. Selecione uma instância do Spanner e, em seguida, um banco de dados.

  3. Na página Visão geral do banco de dados, no menu de navegação, clique em Spanner Studio.

  4. Clique na guia Visualizar no BigQuery.

  5. Na caixa de diálogo Ver no BigQuery, insira um ID de conexão.

    Isso cria uma nova conexão. Se o ID já existir, ocorrerá um erro.

  6. Preencha o restante da caixa de diálogo e marque as caixas de seleção Ler dados em paralelo e Usar o Data Boost do Spanner.

  7. Clique em Ver no BigQuery.

    O BigQuery Studio vai ser aberto. Insira e execute a consulta federada.

    O exemplo a seguir faz uma consulta federada a um banco de dados do Spanner chamado orders e mescla os resultados com uma tabela do BigQuery denominada mydataset.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;
    

Começar pelo BigQuery

  • Digite o seguinte URL no seu navegador:

    https://console.cloud.google.com/bigquery

    O BigQuery será aberto no projeto acessado mais recentemente e exibe o BigQuery Studio. Execute sua consulta federada aqui.

A seguir