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:

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?