Sincronizar conjuntos de dados on-line e off-line com o BigQuery DataFrames
Usando o Bigtable com 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 manter os dados sincronizados, oferecendo suporte à manipulação de dados e ao desenvolvimento de modelos (acesso off-line) e ao serviço de aplicativos de baixa latência (acesso on-line).
Para criar seu banco de dados de análise em tempo real, use BigQuery DataFrames, um conjunto de bibliotecas Python de código aberto para processamento de dados do BigQuery. O BigQuery DataFrames permite 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 oferece uma visão geral do uso da 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:
- Aspectos gerais 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 BigQuery DataFrames ajuda 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) - Sincronizar os dados necessários para inferência de baixa latência com o 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
StreamingDataFramede uma tabela designada do BigQuery - Opcionalmente, realizar 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 BigQuery DataFrames 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 BigQuery DataFrames é 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 (em inglês).
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 seu Google Cloud projeto
- 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 em que você está gravando
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 BigQuery BigFrames, mas você é cobrado pelos recursos subjacentes usados para consultas contínuas, Bigtable e BigQuery.
As consultas contínuas usam 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 serviço 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 consultas contínuas é cobrado de acordo com as taxas de preços do Bigtable.
Limitações
Todas as limitações de recursos e locais associadas a consultas contínuas também são aplicáveis a DataFrames de streaming.
A seguir
- Como começar a usar o Feast em 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.