Sincronizar conjuntos de datos online y offline con BigQuery DataFrames

Si usas Bigtable con BigQuery, puedes crear una base de datos de analíticas en tiempo real y usarla en flujos de trabajo de aprendizaje automático. De esta forma, puedes mantener tus datos sincronizados, lo que te permite manipular datos y desarrollar modelos (acceso sin conexión) y ofrecer aplicaciones con baja latencia (acceso online).

Para crear tu base de datos de analíticas en tiempo real, puedes usar BigQuery DataFrames, un conjunto de bibliotecas de Python de código abierto para procesar datos de BigQuery. BigQuery DataFrames te permite desarrollar y entrenar modelos en BigQuery, así como replicar automáticamente una copia de los valores de datos más recientes que se usan en tus modelos de aprendizaje automático en Bigtable para ofrecerlos online.

En este documento se ofrece una descripción general del uso de la bigframes.streaming API para crear tareas de BigQuery que repliquen y sincronicen automáticamente conjuntos de datos entre BigQuery y Bigtable. Antes de leer este documento, asegúrate de que conoces los siguientes:

BigQuery DataFrames

BigQuery DataFrames te ayuda a desarrollar y entrenar modelos en BigQuery, así como a replicar automáticamente una copia de los valores de datos más recientes que se usan en tus modelos de aprendizaje automático en Bigtable para el servicio online. Te permite hacer lo siguiente:

  • Desarrolla transformaciones de datos en una interfaz compatible con Pandas (bigframes.pandas) directamente con los datos de BigQuery
  • Entrenar modelos con una API similar a scikit-learn (bigframes.ML)
  • Sincroniza los datos necesarios para la inferencia de baja latencia con Bigtable (bigframes.streaming) para admitir aplicaciones orientadas a los usuarios

BigFrames StreamingDataFrame

bigframes.streaming.StreamingDataFrame es un tipo de DataFrame del paquete BigQuery DataFrames. Te permite crear un objeto StreamingDataFrame que se puede usar para generar un trabajo que se ejecute continuamente y que transmita datos de una tabla de BigQuery designada a Bigtable para ofrecerlos online. Para ello, se generan consultas continuas de BigQuery.

Un BigFrames StreamingDataFrame puede hacer lo siguiente:

  • Crear un StreamingDataFrame a partir de una tabla de BigQuery designada
  • Opcionalmente, puedes realizar otras operaciones de Pandas, como seleccionar y filtrar, y obtener una vista previa del contenido.
  • Crear y gestionar tareas de streaming en Bigtable

Roles obligatorios

Para obtener los permisos que necesitas para usar DataFrames de BigQuery en un cuaderno de BigQuery, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

Para obtener los permisos que necesitas para escribir datos en una tabla de Bigtable, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

Empezar

BigQuery DataFrames es un paquete de código abierto. Para instalar la versión más reciente, ejecuta pip install --upgrade bigframes.

Para crear tu primer BigFrames StreamingDataFrame y sincronizar datos entre BigQuery y Bigtable, ejecuta el siguiente fragmento de código. Para ver el código de muestra completo, consulta el cuaderno de 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)

Haz los cambios siguientes:

  • PROJECT: el ID de tu Google Cloud proyecto
  • BIGTABLE_INSTANCE: el ID de la instancia de Bigtable que contiene la tabla en la que estás escribiendo
  • TABLE: el ID de la tabla de Bigtable en la que vas a escribir

Una vez que se inicializa el trabajo, se ejecuta como una consulta continua en BigQuery y transmite cualquier cambio de datos a Bigtable.

Costes

No se aplican cargos adicionales por usar la API BigQuery BigFrames, pero sí se te cobrarán los recursos subyacentes que se utilicen para las consultas continuas, Bigtable y BigQuery.

Las consultas continuas usan la tarifa de computación de capacidad de BigQuery, que se mide en ranuras. Para ejecutar consultas continuas, debes tener una reserva que use la edición Enterprise o Enterprise Plus y una asignación de reserva que use el tipo de trabajo CONTINUOUS.

El uso de otros recursos de BigQuery, como la ingestión y el almacenamiento de datos, se cobra según las tarifas que se muestran en la página de precios de BigQuery.

El uso de los servicios de Bigtable que reciben resultados de consultas continuas se cobra según las tarifas de precios de Bigtable.

Limitaciones

Todas las limitaciones de funciones y ubicaciones asociadas a las consultas continuas también se aplican a los DataFrames de streaming.

Siguientes pasos