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 analítica 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 crear tu base de datos de analítica 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 repliquen y sincronicen automáticamente
conjuntos de datos entre 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:
- Desarrollar transformaciones de datos en una interfaz compatible con Pandas (
bigframes.pandas
) directamente en 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 que se ejecuta de forma continua y que transmite datos de una tabla de BigQuery designada a Bigtable para la publicación en línea. Para ello, se generan
consultas continuas de BigQuery.
Un 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 Google Cloud proyecto.
- BIGTABLE_INSTANCE: Es el ID de la instancia de Bigtable que contiene la tabla a la que escribes.
- TABLE: Es el ID de la tabla de Bigtable a la que estás escribiendo.
Una vez que se inicializa el trabajo, se ejecuta como una consulta continua en BigQuery y transmite los cambios de datos a Bigtable.
Costos
No se aplican cargos adicionales por usar la API de BigFrames de BigQuery, 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
ejecutes 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 componentes y ubicación asociadas con las consultas continuas también se aplican a los DataFrames de transmisión.
¿Qué sigue?
- Comienza a usar Feast en Google Cloud
- Optimiza el desarrollo de AA con Feast
- Consulta los datos de Bigtable almacenados en una tabla externa.
- Exporta datos de BigQuery a Bigtable.