E/S Datastore

Les SDK Dataflow fournissent une API pour la lecture et l'écriture au sein d'une base de données Google Cloud Datastore. Les transformations de lecture et d'écriture d'E/S Datastore vous permettent de lire ou d'écrire une PCollection d'objets Datastore Entity semblables aux lignes d'une table de base de données traditionnelle.

Lire des données depuis Datastore

Pour lire des données depuis Datastore, vous devez appliquer la transformation de lecture Datastore et fournir l'ensemble de données Datastore cible ainsi que la requête à utiliser lors de la lecture. Vous pouvez également spécifier un espace de noms à partir duquel interroger les données. Votre lecture ne renverra que les entités Datastore dont la clé correspond à l'espace de noms fourni.

  • ID du projet : chaîne String contenant l'ID du projet Cloud Platform dans lequel se trouve votre base de données Datastore.
  • Requête : objet Query de datastore qui représente la requête à utiliser lors de la lecture.
  • Espace de noms (facultatif) : chaîne String contenant un espace de noms à partir duquel interroger les données.

Les opérations de lecture qui utilisent les E/S Datastore renvoient une PCollection d'objets Datastore Entity. Les entités sont des objets de données dans Cloud Datastore.

L'exemple de code suivant présente une lecture simple qui utilise 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));

Remarque : Les lectures qui utilisent DatastoreIO exploitent généralement plusieurs nœuds de calcul pour lire des données en parallèle. Toutefois, la parallélisation n'est pas possible pour toutes les requêtes (par exemple, lorsque vous spécifiez une limite ou que la requête contient certains filtres d'inégalité). Dans ce cas, le service Dataflow n'utilise qu'un seul nœud de calcul Dataflow afin de garantir l'exactitude des données. Ce comportement peut affecter le débit de votre pipeline.

Écrire des données dans Datastore

Pour écrire des données dans Datastore, vous devez mettre en forme votre sortie en tant que PCollection d'entités Datastore, puis appliquer une transformation d'écriture Datastore. Vous devez transmettre l'ID du projet Cloud Platform qui contient votre base de données Datastore.

L'exemple de code suivant présente une écriture simple qui utilise les E/S Datastore :

Java

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

Les entités que vous écrivez dans Datastore doivent posséder des clés Keys complètes. Une clé Key complète spécifie à la fois le nom name et l'identifiant id de l'entité. Si vous souhaitez écrire une entité dans un espace de noms namespace spécifique, vous devez spécifier la valeur namespace dans la propriété correspondante de la clé key de votre entité.

Les entités que vous écrivez à l'aide de Dataflow sont validées dans Datastore en tant qu'opérations de mutation "upsert" ("update or insert", mettre à jour ou insérer). Cela signifie que toutes les entités existantes dans Datastore sont écrasées et que toutes les autres entités sont insérées.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.