Consultar e analisar dados do Bigtable com Google BigQuery
O BigQuery é um data warehouse gerenciado que pode ajudar você a consultar e analisar seus dados do Bigtable usando consultas SQL. O BigQuery é útil para analistas de dados, engenheiros de dados, cientistas ou qualquer pessoa que queira usar os dados do Bigtable para responder a de negócios.
O BigQuery permite consultar seus dados do Bigtable no BigQuery. Esse recurso é útil quando você quer mesclar seus dados do Bigtable com tabelas do BigQuery.
Este documento apresenta uma visão geral da consulta de dados do Bigtable com no BigQuery. Antes de ler esta página, você precisa conhecer as Visão geral do Bigtable e Visão geral do BigQuery
O uso do BigQuery para consultar uma tabela do Bigtable é ideal para tabelas que têm as mesmas famílias e qualificadores de coluna em cada linha.
Criação de tabela externa
Antes de poder consultar os dados do Bigtable, você ou um administrador do sua organização, precisam criar Tabela externa, que é uma tabela do BigQuery que contém metadados ponteiros para a tabela do Bigtable à qual as consultas serão enviadas. Para saber mais sobre tabelas externas, consulte Introdução às fontes de dados externas.
É necessário criar a tabela externa na mesma região que a tabela Bigtable. Isso significa, por exemplo, que, se a tabela estiver em uma instância que tem clusters em europe-central2-a
(Varsóvia), europe-west1-c
(Bélgica) e asia-east1-a
(Tóquio), é necessário criar a tabela externa em Varsóvia, na Bélgica ou em Tóquio.
Na maioria dos casos, ao criar uma tabela externa, defina readRowkeyAsString
e
ignoreUnspecifiedColumnFamilies
como verdadeiro.
Quando ignoreUnspecifiedColumnFamilies
for verdadeiro, ao criar uma definição de tabela que inclua apenas algumas colunas em um grupo de colunas, apenas as colunas selecionadas serão promovidas como colunas na tabela externa. Dados no não selecionado
são agrupadas em uma coluna geral column
.
Para criar sua tabela externa, siga as instruções em Crie uma tabela externa do Bigtable.
Consultar dados na tabela externa
Depois de ter uma tabela externa para sua tabela do Bigtable, é possível enviar consultas SQL para ela usando um dos seguintes métodos:
- Na linha de comando usando
bq
, a CLI do BigQuery - Chamadas para a API BigQuery
- Qualquer uma das bibliotecas de cliente do BigQuery
Para saber como compor e executar uma consulta, consulte Executar uma consulta. Para instruções específicas do Bigtable, incluindo as permissões necessárias e exemplos de código, consulte Consulte os dados do Bigtable.
Consultas programadas
As consultas programadas são úteis para importar o Bigtable para o BigQuery de forma recorrente. Eles também são úteis para casos de uso que exigiriam a criação de um pipeline de dados e, transmitir os dados para o BigQuery. Para instruções sobre como gerenciar consultas programadas, consulte Como programar consultas.
Evitar verificações completas de tabelas
Semelhante a quando você envia solicitações de leitura diretamente para o Bigtable ao consultar a tabela externa, geralmente você quer evitar verificações completas de tabelas. As verificações de tabelas completas aumentam a utilização da CPU e levam consideravelmente mais tempo do que as consultas seletivas. Elas também exigem mais Capacidade de processamento do BigQuery.
Se a consulta envolver todas as linhas, ela acionará uma verificação completa da tabela. No outro se você limitar a consulta e solicitar um intervalo de linhas ou especificar não contíguas, a tabela inteira não é verificada. Exemplos em A sintaxe do GoogleSQL para limitar a consulta inclui o seguinte:
WHERE rowkey = "abc123"
WHERE rowkey BETWEEN "abc123" PRECEDING AND "abc999" FOLLOWING
WHERE rowkey > 999999
(se você ler a chave de linha como uma string)
Mesclagens
Se você planeja usar uma mesclagem para analisar os dados da tabela do Bigtable em conjunto com os dados de outra fonte, crie uma subconsulta que extraia os campos relevantes do Bigtable para a mesclagem planejada. Para conferir mais práticas recomendadas ao combinar tabelas, consulte Otimizar a computação de consultas.
Custos
Quando você cria e consulta uma tabela externa, recebe cobranças por os custos do BigQuery e um aumento no número de Nós do Bigtable necessários para lidar com o tráfego. Devido ao se a tabela externa está na mesma região que a tabela do Bigtable não são gerados custos de rede.
Se você tende a executar suas consultas em horário comercial, considere ativar o escalonamento automático do Bigtable para que o número de nós aumenta quando necessário e diminui quando os jobs são concluídos. O escalonamento automático também é uma tática eficaz se você executar consultas programadas que não têm prazos fixos.
Outra maneira de limitar os custos é evitar uma verificação completa da tabela.
Para mais informações sobre otimização de custos do BigQuery, consulte Estimar e controlar custos.
Limitações
Considere as seguintes limitações:
- Não é possível usar o BigQuery para consultar o Bigtable dados armazenados no formato JSON.
- Resultados de consulta que contêm dados serializados com tipos aninhados, como buffer de protocolo (protobufs) e formatos Avro, podem ser renderizados incorretamente ou ser difíceis de ler no console do Google Cloud.
A seguir
- Saiba a diferença entre tabelas externas e consultas federadas.
- Criar uma tabela externa do Bigtable.
- Consultar dados do Bigtable armazenados em uma tabela externa.
- Exportar dados do BigQuery para o Bigtable.