Sincronize conjuntos de dados online e offline com DataFrames do BigQuery
Ao usar o Bigtable com o BigQuery, pode criar uma base de dados de estatísticas em tempo real e usá-la em pipelines de aprendizagem automática (AA). Isto permite-lhe manter os seus dados sincronizados, suportando a manipulação de dados e o desenvolvimento de modelos (acesso offline) e o fornecimento de aplicações de baixa latência (acesso online).
Para criar a sua base de dados de estatísticas em tempo real, pode usar os DataFrames do BigQuery, um conjunto de bibliotecas Python de código aberto para o tratamento de dados do BigQuery. O BigQuery DataFrames permite-lhe desenvolver e preparar modelos no BigQuery e replicar automaticamente uma cópia dos valores de dados mais recentes usados para os seus modelos de ML no Bigtable para publicação online.
Este documento apresenta uma vista geral da utilização da bigframes.streaming API
para criar tarefas do BigQuery que replicam e sincronizam automaticamente conjuntos de dados no BigQuery e Bigtable. Antes de
ler este documento, certifique-se de que compreende os seguintes documentos:
- Vista geral do Bigtable
- Vista geral do BigQuery
- Crie uma base de dados de estatísticas em tempo real com o Bigtable e o BigQuery
DataFrames do BigQuery
Os DataFrames do BigQuery ajudam a desenvolver e formar modelos no BigQuery e replicam automaticamente uma cópia dos valores de dados mais recentes usados para os seus modelos de ML no Bigtable para serviços online. Permite-lhe fazer o seguinte:
- Desenvolva transformações de dados numa interface compatível com o Pandas (
bigframes.pandas
) diretamente com dados do BigQuery - Forme modelos com uma API semelhante à scikit-learn (
bigframes.ML
) - Sincronize os dados necessários para a inferência de baixa latência com o Bigtable (
bigframes.streaming
) para suportar aplicações orientadas para o utilizador
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame
é um tipo DataFrame no pacote BigQuery DataFrames. Permite-lhe criar um objeto StreamingDataFrame
que pode ser usado para gerar uma tarefa de execução contínua que transmite dados de uma tabela do BigQuery designada para o Bigtable para publicação online. Isto é feito através da geração de
consultas contínuas do BigQuery.
Um BigFrames StreamingDataFrame
pode fazer o seguinte:
- Crie um
StreamingDataFrame
a partir de uma tabela do BigQuery designada - Opcionalmente, execute operações adicionais do Pandas, como selecionar, filtrar e pré-visualizar o conteúdo
- Crie e faça a gestão de trabalhos de streaming para o Bigtable
Funções necessárias
Para receber as autorizações de que precisa para usar os DataFrames do BigQuery num bloco de notas do BigQuery, peça ao seu administrador para lhe conceder as seguintes funções do IAM:
Para receber as autorizações de que precisa para escrever dados numa tabela do Bigtable, peça ao seu administrador para lhe conceder as seguintes funções do IAM:
Começar
O BigQuery DataFrames é um pacote de código aberto. Para instalar a versão mais recente, execute pip install --upgrade bigframes
.
Para criar o seu primeiro BigFrames StreamingDataFrame
e sincronizar dados entre o BigQuery e o Bigtable, execute o seguinte fragmento de código.
Para ver o exemplo de código completo, consulte o bloco de notas 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 o seguinte:
- PROJECT: o ID do seu Google Cloud projeto
- BIGTABLE_INSTANCE: o ID da instância do Bigtable que contém a tabela na qual está a escrever
- TABLE: o ID da tabela do Bigtable na qual está a escrever
Assim que a tarefa é inicializada, é executada como uma consulta contínua no BigQuery e transmite todas as alterações de dados para o Bigtable.
Custos
Não existem custos adicionais pela utilização da API BigFrames do BigQuery, mas são cobrados os recursos subjacentes utilizados para consultas contínuas, o Bigtable e o BigQuery.
As consultas contínuas usam a determinação de preços de computação de capacidade do BigQuery, que é medida em slots. Para executar consultas contínuas, tem de ter uma reserva que use a edição Enterprise ou Enterprise Plus e uma atribuição de reserva que use o tipo de tarefa CONTINUOUS
.
A utilização de outros recursos do BigQuery, como o carregamento de dados e o armazenamento, é cobrada às taxas apresentadas nos preços do BigQuery.
A utilização de serviços do Bigtable que recebem resultados de consultas contínuas é cobrada às taxas de preços do Bigtable.
Limitações
Todas as limitações de funcionalidades e localização associadas a consultas contínuas também se aplicam a DataFrames de streaming.
O que se segue?
- Começar a usar o Feast on Google Cloud
- Simplificar o desenvolvimento de AA com o Feast
- Consultar dados do Bigtable armazenados numa tabela externa.
- Exporte dados do BigQuery para o Bigtable.