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 permite que o BigQuery consulte dados que residem no Spanner em tempo real, sem copiar ou mover dados.

Para saber mais sobre as consultas federadas do Spanner, consulte 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

A API BigQuery Connection permite gerenciar conexões do BigQuery com fontes de dados externas.

  • Ative a BigQuery connection API.

    Ative a API

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

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

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

Recomendamos que você crie um papel do IAM personalizado 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

As conexões do BigQuery permitem consultar dados armazenados fora do BigQuery. 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 os dados do BigQuery aos dados do Spanner.

Para criar uma conexão de dados externa com o Spanner que usa 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 Spanner Data Boost.

bq

  1. Acesse Criar conexões do Spanner na documentação do BigQuery e siga as instruções da 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 do Data Boost. 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 no console do Google Cloud ou no BigQuery.

Iniciar na 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 das suas instâncias do Spanner.

  2. Selecione uma instância do Spanner e 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 Ver 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 Spanner Data Boost.

  7. Clique em Ver no BigQuery.

    O BigQuery Studio vai abrir. Insira e execute sua 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;
    

Comece pelo BigQuery

  • Digite o seguinte URL no seu navegador:

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

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

A seguir