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:

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?