Consulte e analise dados do Bigtable com o BigQuery

O BigQuery é um armazém de dados gerido que pode ajudar a consultar e analisar os dados do Bigtable através de consultas SQL. O BigQuery é útil para analistas de dados, engenheiros de dados, cientistas de dados ou qualquer pessoa que queira usar dados do Bigtable para responder a perguntas empresariais.

O BigQuery permite-lhe consultar os seus dados do Bigtable a partir do BigQuery. Esta funcionalidade é útil quando quer juntar os seus dados do Bigtable a tabelas do BigQuery.

Este documento apresenta uma vista geral da consulta de dados do Bigtable com o BigQuery. Antes de ler esta página, deve estar familiarizado com a vista geral do Bigtable e a vista geral do BigQuery

A utilização do BigQuery para consultar uma tabela do Bigtable é ideal para tabelas que têm as mesmas famílias de colunas e qualificadores de colunas em todas as linhas.

Criação de tabelas externas

Antes de poder consultar os seus dados do Bigtable, tem de criar uma tabela externa, que é uma tabela do BigQuery que contém ponteiros de metadados para a sua tabela do Bigtable para a qual envia as consultas. Esta tarefa tem de ser realizada por si ou por um administrador na sua organização. Para mais informações sobre tabelas externas, consulte o artigo Introdução a origens de dados externas.

Tem de criar a tabela externa na mesma região que a tabela do Bigtable. Isto significa, por exemplo, que se a tabela estiver numa instância que tenha clusters em europe-central2-a (Varsóvia), europe-west1-c (Bélgica) e asia-east1-a (Tóquio), tem de criar a tabela externa em Varsóvia, na Bélgica ou em Tóquio.

Recomendamos as seguintes práticas recomendadas quando criar a sua tabela externa:

  • Para evitar afetar o tráfego de publicação de aplicações, use a computação sem servidor do Data Boost quando lê dados do Bigtable com tabelas externas do BigQuery. A utilização do Data Boost é especialmente rentável para consultas ad hoc. Para usar o Data Boost, especifique o perfil da app do Data Boost quando criar a definição da tabela externa. Para mais informações sobre o Data Boost, consulte o artigo Vista geral do Data Boost do Bigtable.

  • Na maioria dos casos, quando cria uma tabela externa, defina readRowkeyAsString e ignoreUnspecifiedColumnFamilies como verdadeiro.

  • Quando ignoreUnspecifiedColumnFamilies é verdadeiro, quando cria uma definição de tabela que inclui apenas algumas colunas numa família de colunas, apenas as colunas selecionadas são promovidas como colunas na tabela externa. Os dados nas colunas não selecionadas são agrupados numa coluna column geral.

Para criar a 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 a sua tabela do Bigtable, pode enviar-lhe consultas SQL através de um dos seguintes métodos:

Para saber como compor e executar uma consulta, consulte o artigo Execute uma consulta. Para instruções específicas do Bigtable, incluindo autorizações necessárias e exemplos de código, consulte o artigo Consultar dados do Bigtable.

Consultas agendadas

As consultas agendadas são úteis quando quer importar dados do Bigtable para o BigQuery de forma recorrente. Também são úteis para exemplos de utilização que, de outra forma, podem exigir a criação de um pipeline de dados e o streaming dos dados para o BigQuery. Para ver instruções sobre como gerir consultas agendadas, consulte Agendar consultas.

Análises completas de tabelas

Se usar o Data Boost para ler os seus dados, não precisa de evitar analisar toda a tabela. No entanto, se usar nós aprovisionados para computação, tem de o fazer. Tal como quando envia pedidos de leitura diretamente para a sua tabela do Bigtable, quando consulta a tabela externa para a tabela e não está a usar o Data Boost, geralmente, quer evitar as verificações completas da tabela. As análises completas de tabelas aumentam a utilização da CPU e demoram consideravelmente mais tempo do que as consultas seletivas. Também requerem um débito do BigQuery mais elevado.

Se a consulta envolver todas as linhas, aciona uma verificação completa da tabela. Por outro lado, se limitar a consulta e pedir um intervalo de linhas ou linhas não contíguas especificadas, a tabela inteira não é analisada. Seguem-se exemplos na sintaxe do GoogleSQL de como limitar a consulta:

  • WHERE rowkey = "abc123"
  • WHERE rowkey BETWEEN "abc123" PRECEDING AND "abc999" FOLLOWING
  • WHERE rowkey > 999999 (se ler a chave da linha como uma string)

Aderir

Se planeia usar uma junção para analisar os dados da tabela do Bigtable em conjunto com dados de outra origem, deve criar uma subconsulta que extraia os campos relevantes do Bigtable para a junção planeada. Para ver mais práticas recomendadas ao juntar tabelas, consulte o artigo Otimize o cálculo de consultas.

Custos

Quando cria uma tabela externa e a consulta, são-lhe cobrados os custos do BigQuery e um aumento no número de nós do Bigtable necessários para processar o tráfego. Uma vez que a tabela externa está na mesma região que a tabela do Bigtable, não são incorridos custos de rede.

Se costuma executar as suas consultas durante o horário de funcionamento normal, considere ativar o dimensionamento automático do Bigtable para que o número de nós aumente quando necessário e, em seguida, diminua quando as tarefas estiverem concluídas. O dimensionamento automático também é uma tática eficaz se executar consultas agendadas que não tenham prazos definidos.

Outra forma de limitar os custos é evitar uma análise completa da tabela.

Para mais informações sobre a otimização de custos do BigQuery, consulte o artigo Estime e controle os custos.

Limitações

Aplica-se a seguinte limitação:

  • Os resultados da consulta que contêm dados serializados com tipos aninhados, como buffers de protocolo (protobufs) e formatos Avro, podem ser renderizados incorretamente ou ser difíceis de ler na Google Cloud consola.

O que se segue?