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:
- Descripción general de Bigtable
- Descripción general de BigQuery
- Crea una base de datos de analíticas en tiempo real con Bigtable y BigQuery
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
- Empezar a usar Feast en Google Cloud
- Optimizar el desarrollo de aprendizaje automático con Feast
- Consultar datos de Bigtable almacenados en una tabla externa.
- Exportar datos de BigQuery a Bigtable