Sincroniza conjuntos de datos en línea y sin conexión con BigQuery DataFrames
Con Bigtable y BigQuery, puedes crear una base de datos de análisis en tiempo real y usarla en canalizaciones de aprendizaje automático (AA). Esto te permite mantener tus datos sincronizados, lo que admite la manipulación de datos y el desarrollo de modelos (acceso sin conexión) y la entrega de aplicaciones con latencia baja (acceso en línea).
Para compilar tu base de datos de análisis en tiempo real, puedes usar BigQuery DataFrames, un conjunto de bibliotecas de Python de código abierto para el procesamiento de datos de BigQuery. BigQuery DataFrames te permite desarrollar y entrenar modelos en BigQuery, y replicar automáticamente una copia de los valores de datos más recientes que se usan para tus modelos de AA en Bigtable para la publicación en línea.
En este documento, se proporciona una descripción general del uso de bigframes.streaming API
para crear trabajos de BigQuery que replican y sincronizan automáticamente conjuntos de datos en BigQuery y Bigtable. Antes de leer este documento, asegúrate de comprender los siguientes documentos:
- Descripción general de Bigtable
- Descripción general de BigQuery
- Crea una base de datos de analítica en tiempo real con Bigtable y BigQuery
Permite trabajar con BigQuery DataFrames.
BigQuery DataFrames te ayuda a desarrollar y entrenar modelos en BigQuery, y a replicar automáticamente una copia de los valores de datos más recientes que se usan para tus modelos de AA en Bigtable para la publicación en línea. Te permite realizar las siguientes acciones:
- Desarrolla transformaciones de datos en una interfaz compatible con Pandas (
bigframes.pandas
) directamente con los datos de BigQuery. - Entrena 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 al usuario.
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame
es un tipo de DataFrame en el paquete de BigQuery DataFrames. Te permite crear un objeto StreamingDataFrame
que se puede usar para generar un trabajo en ejecución continua que transmita datos desde una tabla de BigQuery designada a Bigtable para la publicación en línea. Esto se hace generando
consultas continuas de BigQuery.
Un objeto BigFrames StreamingDataFrame
puede hacer lo siguiente:
- Crea un
StreamingDataFrame
a partir de una tabla de BigQuery designada - De manera opcional, realiza operaciones adicionales de Pandas, como seleccionar, filtrar y obtener una vista previa del contenido.
- Crea y administra trabajos de transmisión a Bigtable
Roles obligatorios
Para obtener los permisos que necesitas para usar BigQuery DataFrames en un notebook de BigQuery, pídele a tu administrador que te otorgue los siguientes roles de IAM:
Para obtener los permisos que necesitas para escribir datos en una tabla de Bigtable, pídele a tu administrador que te otorgue los siguientes roles de IAM:
Comenzar
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 la muestra de código completa, consulta el notebook 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)
Reemplaza lo siguiente:
- PROJECT: Es el ID de tu proyecto Google Cloud .
- BIGTABLE_INSTANCE: Es el ID de la instancia de Bigtable que contiene la tabla en la que escribes.
- TABLE: Es el ID de la tabla de Bigtable en la que escribes.
Una vez que se inicializa el trabajo, se ejecuta como una consulta continua en BigQuery y transmite cualquier cambio de datos a Bigtable.
Costos
No se aplican cargos adicionales por usar la API de BigQuery BigFrames, pero se te cobra por los recursos subyacentes que se usan para las consultas continuas, Bigtable y BigQuery.
Las consultas continuas usan los precios de procesamiento de la capacidad de BigQuery, que se miden 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 transferencia y el almacenamiento de datos, se cobra según las tarifas que se muestran en los 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 con las consultas continuas también se aplican a los DataFrames de transmisión.
¿Qué sigue?
- Comienza a usar Feast en Google Cloud
- Optimización del desarrollo del AA con Feast
- Consulta datos de Bigtable almacenados en una tabla externa.
- Exporta datos de BigQuery a Bigtable.