Executar consultas federadas com o Data Boost

Nesta página, explicamos como usar o Data Boost do Spanner 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.

Com a federação do Spanner, o BigQuery pode consultar dados residir 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 Data Boost geral.

Antes de começar

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

Ativar a API BigQuery Connection

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

  • Enable the BigQuery connection API.

    Enable the API

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

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

Os administradores 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 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 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 combinam dados do BigQuery com 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 instruções.

  2. No painel Fonte de dados externa, selecione a opçã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 do bq.

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

  • useParallelism
  • useDataBoost

O exemplo a seguir usa o bq mk para criar uma nova conexão chamada my_connection com os dois 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.

Você pode 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 instâncias instâncias.

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

  3. Na página Informações gerais 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 Visualizar 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 selecione 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 abrir. Insira e execute seu 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 mostra o BigQuery Studio. Execute sua consulta federada aqui.

A seguir