Sincronizar conjuntos de dados on-line e off-line com BigQuery DataFrames
Com o Bigtable e o BigQuery, é possível criar um banco de dados de análise em tempo real e usá-lo em pipelines de machine learning (ML). Isso permite que você mantenha seus dados sincronizados, oferecendo suporte à manipulação de dados e ao desenvolvimento de modelos (acesso off-line) e à veiculação de aplicativos de baixa latência (acesso on-line).
Para criar seu banco de dados de análise em tempo real, use o BigQuery DataFrames, um conjunto de bibliotecas Python de código aberto para processamento de dados do BigQuery. Com o BigQuery DataFrames, você pode desenvolver e treinar modelos no BigQuery e replicar automaticamente uma cópia dos valores de dados mais recentes usados para seus modelos de ML no Bigtable para veiculação on-line.
Este documento apresenta uma visão geral do uso de bigframes.streaming API
para
criar jobs do BigQuery que replicam e sincronizam automaticamente
conjuntos de dados no BigQuery e no Bigtable. Antes de
ler este documento, confira se você entendeu os seguintes documentos:
- Visão geral do Bigtable
- Informações gerais do BigQuery
- Criar um banco de dados de análise em tempo real com o Bigtable e o BigQuery
BigQuery DataFrames
O DataFrames do BigQuery ajuda você a desenvolver e treinar modelos no BigQuery e replicar automaticamente uma cópia dos valores de dados mais recentes usados para seus modelos de ML no Bigtable para veiculação on-line. Ele permite que você faça o seguinte:
- Desenvolver transformações de dados em uma interface compatível com o Pandas
(
bigframes.pandas
) diretamente nos dados do BigQuery - Treinar modelos usando uma API semelhante ao scikit-learn (
bigframes.ML
) - Sincronize os dados necessários para inferência de baixa latência com
Bigtable (
bigframes.streaming
) para oferecer suporte a aplicativos voltados ao usuário
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame
é um tipo de DataFrame no
pacote BigQuery DataFrames. Ele permite criar um objeto StreamingDataFrame
que pode ser usado para gerar um job em execução contínua que transmite dados de uma tabela do BigQuery designada para o Bigtable para veiculação on-line. Isso é feito gerando
consultas contínuas do BigQuery.
Um BigFrames StreamingDataFrame
pode fazer o seguinte:
- Criar um
StreamingDataFrame
usando uma tabela do BigQuery - Opcionalmente, realize outras operações do Pandas, como selecionar, filtrar e visualizar o conteúdo.
- Criar e gerenciar jobs de streaming para o Bigtable
Funções exigidas
Para receber as permissões necessárias para usar o DataFrames do BigQuery em um notebook do BigQuery, peça ao administrador para conceder a você os seguintes papéis do IAM:
Para receber as permissões necessárias para gravar dados em uma tabela do Bigtable, peça ao administrador para conceder a você os seguintes papéis do IAM:
Primeiros passos
O DataFrames do BigQuery é um pacote de código aberto. Para instalar a
versão mais recente, execute pip install --upgrade bigframes
.
Para criar seu primeiro BigFrames StreamingDataFrame
e sincronizar dados entre o BigQuery e o Bigtable, execute o snippet de código a seguir.
Para conferir o exemplo de código completo, consulte o notebook do GitHub BigFrames
StreamingDataFrame.
import bigframes.streaming as bst
bigframes.options._bigquery_options.project = "PROJECT"
sdf = bst.read_gbq_table("birds.penguins_bigtable_streaming")
job = sdf.to_bigtable(instance="BIGTABLE_INSTANCE",
table="TABLE",
app_profile=None,
truncate=True,
overwrite=True,`
auto_create_column_families=True,
bigtable_options={},
job_id=None,
job_id_prefix= "test_streaming_",)
print(job.running())
print(job.error_result)
Substitua:
- PROJECT: o ID do projeto Google Cloud
- BIGTABLE_INSTANCE: o ID da instância do Bigtable que contém a tabela em que você está gravando.
- TABLE: o ID da tabela do Bigtable para a qual você está escrevendo.
Depois que o job é inicializado, ele é executado como uma consulta contínua no BigQuery e transmite todas as mudanças de dados para o Bigtable.
Custos
Não há cobranças adicionais pelo uso da API BigFrames do BigQuery, mas você é cobrado pelos recursos usados para consultas contínuas, Bigtable e BigQuery.
As consultas contínuas usam os preços de computação de capacidade do
BigQuery,
que são medidos em slots. Para
executar consultas contínuas, é preciso ter uma
reserva
que use a edição Enterprise ou Enterprise Plus e uma
atribuição de reserva
que use o tipo de job CONTINUOUS
.
O uso de outros recursos do BigQuery, como ingestão de dados e armazenamento, é cobrado conforme as taxas mostradas nos Preços do BigQuery.
O uso de serviços do Bigtable que recebem resultados de consulta contínua é cobrado de acordo com as taxas de preços do Bigtable.
Limitações
Todas as limitações de recurso e de localização associadas a consultas contínuas também se aplicam a DataFrames de streaming.
A seguir
- Primeiros passos com o Feast no Google Cloud
- Como simplificar o desenvolvimento de ML com o Feast
- Consultar dados do Bigtable armazenados em uma tabela externa.
- Exportar dados do BigQuery para o Bigtable.