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 quase zero impacto nas cargas de trabalho 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 Spanner consultas federadas.

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

Antes de começar

Conclua as tarefas a seguir antes de tentar executar consultas federadas com 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 Conexão do BigQuery API.

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

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

Recomendamos que você crie um papel do IAM personalizado com base Spanner Database Reader (roles/spanner.databaseReader) e adicionar 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 no BigQuery. Para estabelecer uma conexão entre no BigQuery e no Spanner, você cria uma instância uma conexão com a Internet. Você pode executar consultas que unem os dados do BigQuery com Spanner dados.

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 instruções.

  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 especifica o uso dos Data Boost. Para mais informações, consulte Criar conexões do BigQuery para o Spanner com Data Boost (em inglês).

É 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 instâncias instâncias.

  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, selecione as opções Ler dados em paralelo e Use as caixas de seleçã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 exibe o BigQuery Studio. Execute sua consulta federada aqui.

A seguir