Visão geral
Consultas federadas do BigQuery: neste laboratório, você vai descobrir o potencial das consultas federadas para gerar insights em tempo real, consultando diretamente um banco de dados operacional no BigQuery. Você vai aprender a conectar o BigQuery a um banco de dados AlloyDB para PostgreSQL. Isso permite unir dados analíticos históricos a dados transacionais em tempo real sem a necessidade de pipelines de ETL complexos e demorados. Essa experiência prática demonstra um recurso fundamental de um data lakehouse moderno: a capacidade de unificar dados em sistemas distintos para uma análise abrangente.
Você vai começar configurando uma conexão externa no BigQuery que se vincula de forma segura a uma instância de amostra do AlloyDB que contém dados de registros da Web. Em seguida, dê permissão para consultar o AlloyDB à conexão que você acabou de criar. Por fim, crie uma consulta SQL usando a função EXTERNAL_QUERY. Com essa função avançada, você pode executar uma consulta no banco de dados do AlloyDB e tratar os resultados como uma tabela temporária no ambiente do BigQuery.
A tarefa principal envolve escrever uma única consulta federada que mescla um conjunto de dados de clientes armazenado nativamente no BigQuery com dados de registro da Web em tempo real no AlloyDB. Ao dominar essa técnica, você pode desbloquear casos de uso sofisticados em tempo real que combinam um contexto histórico profundo com uma consciência operacional imediata. Por exemplo, a Cymbal E-commerce pode usar essa abordagem para responder à pergunta comercial: "O que nossos clientes com maior histórico de gastos têm visualizado no nosso site?"
Atividades deste laboratório
- Criar uma conexão com o AlloyDB no BigQuery
- Conceder permissão à conta de serviço conectado para o AlloyDB usando um papel do IAM
- Escrever uma consulta com a função
EXTERNAL_QUERY SQL
- Executar a consulta a seguir e analisar os resultados.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
O que é necessário
Veja os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
- tempo disponível para concluir as atividades.
Observação: não use seu projeto ou conta pessoal do Google Cloud neste laboratório.
Observação: se você estiver usando um Pixelbook, faça o laboratório em uma janela anônima.
Fazer login no console do Google Cloud
- Na guia ou janela do navegador desta sessão de laboratório, copie o Nome de usuário do painel Detalhes da conexão e clique no botão Abrir console do Google.
Observação: se precisar escolher uma conta, clique em Usar outra conta.
- Cole o nome de usuário e a senha quando solicitado.
- Clique em Próxima.
- Aceite os Termos e Condições.
Como a conta é temporária, ela só dura até o final deste laboratório:
- não adicione opções de recuperação.
- não se inscreva em testes.
- Assim que o console abrir, clique no menu de navegação (
) no canto superior esquerdo para acessar a lista de serviços.

Verificar ou ativar as APIs necessárias
-
No console do Google Cloud, digite API BigQuery Connection na barra de pesquisa superior.
-
Clique no resultado API BigQuery Connection.
-
Se a API ainda não estiver ativada, clique em Ativar.
Tarefa 1: criar uma conexão com o AlloyDB
Nesta tarefa, você vai criar uma nova conexão com o AlloyDB para o BigQuery usar.
Criar a conexão
-
No console do Google Cloud, no Menu de navegação
, acesse BigQuery > Studio.
-
Em Explorador, clique em + Adicionar dados.
-
No menu suspenso à esquerda, em Tipo de fonte de dados, selecione Bancos de dados.
-
À direita do menu suspenso em Fontes de dados em destaque, clique no card do Google Cloud AlloyDB.
-
Na seleção de cards resultante, clique em Federação do BigQuery.
-
Na tela de entrada Fonte de dados externa, use os seguintes valores:
| Propriedade |
Valor |
| Tipo de conexão |
AlloyDB |
| Código da conexão |
AlloyDB-weblog |
| Tipo de local |
Região |
| Região |
{{{project_0.default_region | Region}}} |
| Nome de exibição |
deixe em branco |
| Descrição |
deixe em branco |
| Criptografia |
Padrão |
| Nome de usuário |
postgres |
| Senha |
{{{user_0.password | Password}}} |
| Banco de dados |
postgres |
| Instância do AlloyDB |
//alloydb.googleapis.com/projects/{{{project_0.project_id | Project ID}}}/locations/{{{project_0.default_region | Region}}}/clusters/cymbal-cluster/instances/cymbal-instance
|
- Clique em Criar conexão.
Clique em Verificar meu progresso para conferir o objetivo.
Criar uma conexão com o AlloyDB
Tarefa 2: definir permissões do IAM para a conta de serviço conectado
Para acessar os dados no AlloyDB, a conta de serviço criada de forma automática quando você fez a conexão precisa receber permissão para o AlloyDB.
Definir as permissões do IAM
-
No painel "Análises clássicas" do BigQuery, abra a entrada que é o ID do projeto do laboratório.
-
Agora abra a entrada Conexões.
-
Clique na entrada que você acabou de criar. Os detalhes da conexão vão aparecer no painel principal à direita. Copie a entrada listada para o ID da conta de serviço. Este é um exemplo de como ela aparece: service-164632061610@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
-
No menu de navegação, selecione IAM e Admin e, no submenu, selecione IAM.
-
Clique em + Conceder acesso.
-
Em Novos principais, cole o ID da conta de serviço conectado que você copiou na etapa 3.
-
Clique na lista suspensa Selecionar um papel. Na área Filtro que aparece, digite AlloyDB. Role até encontrar Cliente do AlloyDB e selecione essa opção.
-
Clique em Adicionar outro papel.
-
Clique na nova lista suspensa Selecionar um papel. Na área Filtro que aparece, insira BigQuery. Role a tela até encontrar Usuário de conexão do BigQuery e selecione essa opção.
-
Clique na caixa Salvar na parte inferior da tela.
Clique em Verificar meu progresso para conferir o objetivo.
Definir permissões do IAM para a conta de serviço da conexão
Tarefa 3: como executar uma consulta federada no BigQuery
Nesta tarefa, você vai executar uma consulta que combina as informações de clientes da Cymbal no BigQuery com as informações de weblog no AlloyDB.
-
No Menu de navegação
do console do Google Cloud, acesse BigQuery > Studio.
-
No painel "Análises clássicas" do BigQuery, abra a entrada que é o ID do projeto do laboratório.
-
Agora abra a entrada Conexões.
-
Clique nos três pontos verticais à direita da conexão que você criou. Selecione Consulta
-
Atualize a consulta substituindo a instrução SELECT na parte EXTERNAL_QUERY da consulta pelo código a seguir. Não substitua a consulta inteira, apenas a parte dentro do bloco EXTERNAL_QUERY entre as marcas " ":
SELECT customer_id, CAST(log_id AS VARCHAR(200)) AS log_id, timestamp, url FROM web_log LIMIT 100
-
Clique em Executar. Os dados retornados são do AlloyDB, mesmo que você esteja no BigQuery.
-
Agora vamos estender a consulta para combinar dados em tabelas nativas do BigQuery com os dados no AlloyDB.
-
Substitua a consulta atual pelo seguinte código:
WITH log AS (
SELECT customer_id, log_id, timestamp, url FROM EXTERNAL_QUERY("{{{project_0.project_id | Project ID}}}.{{{project_0.default_region | Region}}}.AlloyDB-weblog", "SELECT customer_id, CAST(log_id AS VARCHAR(200)) AS log_id, timestamp, url FROM web_log LIMIT 100"))
SELECT log.customer_id
, log.timestamp
, log.url
, C.*
FROM customers.customer_details AS C
INNER JOIN log
ON C.id = log.customer_id
ORDER BY C.id
LIMIT 100;
-
Clique em Executar. Os dados retornados combinam dados do AlloyDB e do BigQuery.
Clique em Verificar meu progresso para conferir o objetivo.
Como executar uma consulta federada no BigQuery
Parabéns!
Você configurou e usou uma conexão externa do BigQuery para permitir que o BigQuery acesse e processe dados armazenados no AlloyDB.