E/S Bigtable

Les SDK Dataflow fournissent une API pour la lecture et l'écriture de données dans Google Cloud Bigtable. La source et le récepteur BigtableIO vous permettent de lire ou d'écrire une PCollection d'objets Bigtable Row dans une table BigTable donnée.

Définir les options Bigtable

Lorsque vous lisez ou écrivez des données dans Bigtable, vous devez fournir un ID de table et un ensemble d'options Bigtable. Ces options contiennent les informations nécessaires à l'identification du cluster Bigtable cible, telles que les suivantes :

  • ID du projet
  • ID du cluster
  • ID de zone

Le moyen le plus simple de fournir ces options est de les définir à l'aide de BigtableOptions.Builder dans le package com.google.cloud.bigtable.config.BigtableOptions :

  BigtableOptions.Builder optionsBuilder =
     new BigtableOptions.Builder()
         .setProjectId("project")
         .setClusterId("cluster")
         .setZoneId("zone");

Lire des données depuis Bigtable

Pour lire des données depuis Bigtable, appliquez la transformation BigtableIO.read() à votre objet Pipeline. Vous devez spécifier l'ID de table et les options BigtableOptions à l'aide de .withTableId et de .withBigtableOptions. Par défaut, BigtableIO.read() analyse l'ensemble de la table Bigtable spécifiée et renvoie une PCollection d'objets Bigtable Row :

  // Scan the entire table.
  PCollection <Row> btRows = p.apply("read",
      BigtableIO.read()
          .withBigtableOptions(optionsBuilder)
          .withTableId("table"));

Si vous souhaitez analyser un sous-ensemble des lignes de la table Bigtable spécifiée, vous pouvez fournir un objet RowFilter. Si vous spécifiez l'objet RowFilter, BigtableIO.read() ne renvoie que les lignes Row qui correspondent au filtre :

  // Read only rows that match the specified filter.

  RowFilter filter = ...;

  PCollection <Row> filteredBtRows = p.apply("filtered read",
      BigtableIO.read()
          .withBigtableOptions(optionsBuilder)
          .withTableId("table")
          .withRowFilter(filter));

Écrire des données dans Bigtable

Pour écrire des données dans Bigtable, appliquez la transformation BigtableIO.write() à la PCollection qui contient vos données de sortie. Vous devez spécifier l'ID de table et les options BigtableOptions à l'aide de .withTableId et de .withBigtableOptions.

Mettre en forme les données de sortie Bigtable

Le récepteur de données BigtableIO exécute chaque opération d'écriture sous la forme d'un ensemble de mutations de lignes appliquées à la table Bigtable cible. C'est pourquoi vous devez présenter vos données de sortie au format PCollection<KV<ByteString, Iterable<Mutation>>>. Chaque élément de la PCollection doit contenir les paramètres suivants :

  • La clé de la ligne à écrire en tant que chaîne d'octets ByteString.
  • Une valeur Iterable des objets Mutation représentant une série d'opérations de mutation de lignes idempotentes.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

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