E/S de Datastore

Los SDK de Dataflow proporcionan una API para leer y escribir los datos en una base de datos de Google Cloud Datastore. Las transformaciones de lectura y escritura de la E/S de Datastore te permiten leer o escribir una PCollection de objetos Entity de Datastore, que son similares a las filas de una tabla de la base de datos tradicional.

Cómo leer desde Datastore

Para leer desde Datastore, deberás aplicar la transformación de lectura de Datastore y proporcionar el conjunto de datos de destino de Datastore y la consulta que se usará durante la lectura. De manera opcional, puedes proporcionar un espacio de nombres dentro de la consulta. La lectura solo mostrará las entidades de Datastore cuya clave coincida con el espacio de nombres proporcionado.

  • ID del proyecto: Una String que contiene el ID del proyecto de Cloud Platform con la base de datos de Datastore.
  • Consulta: Un objeto Query de Datastore que representa la consulta que se usará durante la lectura.
  • Espacio de nombres (opcional): Una String que contiene un espacio de nombres para hacer una consulta.

Las operaciones de lectura mediante la E/S de Datastore muestran una PCollection de objetos Entity de Datastore. Las entidades son los objetos de datos en Cloud Datastore.

En el siguiente código de ejemplo, se muestra una lectura simple mediante DatastoreIO:

Java

PipelineOptions options = PipelineOptionsFactory.fromArgs(args).create();
Query query = ...;
String projectId = "...";

Pipeline p = Pipeline.create(options);
PCollection<Entity> entities = p.apply(
   DatastoreIO.v1().read()
       .withProjectId(projectId)
       .withQuery(query));

Nota: Las lecturas mediante DatastoreIO suelen usar varios trabajadores para leer en paralelo. Sin embargo, no todas las consultas se pueden ejecutar en paralelo, por ejemplo, si especificas un límite o si la consulta contiene determinados filtros de desigualdad. Para este tipo de consultas, el servicio de Dataflow usará un trabajador de Dataflow único con el objetivo de garantizar la precisión de los datos. Este comportamiento puede repercutir en el rendimiento de tu canalización.

Cómo escribir en Datastore

Para escribir en Datastore, deberás dar formato a tu salida como una PCollection de objetos de entidad de Datastore y, luego, aplicar una transformación de escritura de Datastore. Deberás pasar el ID del proyecto de Cloud Platform que contiene la base de datos de Datastore.

En el siguiente código de ejemplo se muestra una escritura simple mediante la E/S de Datastore:

Java

PCollection<Entity> entities = ...;
entities.apply(DatastoreIO.v1().write().withProjectId(projectId));

Las entidades que escribes en Datastore deben tener Keys completas. Una Key completa especifica tanto el name como el id de la entidad. Si deseas escribir una entidad en un namespace específico, deberás especificar ese namespace en la propiedad correspondiente de la key de la entidad.

Las entidades que escribes con Dataflow se confirman en Datastore como operaciones de mutación upsert (actualizar o insertar), lo que significa que las entidades que ya existen en Datastore se reemplazan y las demás entidades se insertan.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.