E/S de Bigtable

Los SDK de Dataflow proporcionan una API para leer y escribir los datos en una base de datos de Google Cloud Bigtable. La fuente y el receptor BigtableIO te permiten leer o escribir una PCollection de objetos Row de un Bigtable determinado.

Cómo configurar opciones de Bigtable

Cuando lees o escribes en Bigtable, debes proporcionar un ID de tabla y un conjunto de opciones de Bigtable. Estas opciones contienen información necesaria para identificar el clúster de Bigtable de destino, que incluye lo siguiente:

  • ID del proyecto
  • ID de clúster
  • ID de zona

La forma más fácil de proporcionar estas opciones es construirlas con BigtableOptions.Builder en el paquete com.google.cloud.bigtable.config.BigtableOptions:

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

Cómo leer desde Bigtable

Para leer desde Bigtable, aplica la transformación BigtableIO.read() a tu objeto Pipeline. Deberás especificar un ID de tabla y BigtableOptions con .withTableId y .withBigtableOptions, respectivamente. De forma predeterminada, BigtableIO.read() analiza todo el Bigtable especificado y muestra PCollection de los objetos Row de Bigtable:

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

Si deseas escanear un subconjunto de las filas en el Bigtable especificado, puedes proporcionar un objeto RowFilter de Bigtable. Si proporcionas un RowFilter, BigtableIO.read() mostrará solo las Row que coincidan con el filtro:

  // 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));

Cómo escribir en Bigtable

Para escribir en Bigtable, aplica la transformación BigtableIO.write() a la PCollection que contiene tus datos de salida. Deberás especificar un ID de tabla y BigtableOptions con .withTableId y .withBigtableOptions, respectivamente.

Cómo formatear los datos de salida de Bigtable

El receptor de datos de BigtableIO realiza cada operación de escritura como un conjunto de mutaciones de fila al Bigtable de destino. Por lo tanto, debes formatear tus datos de salida como PCollection<KV<ByteString, Iterable<Mutation>>>. Cada elemento en PCollection debe contener lo siguiente:

  • La clave de la fila que se escribirá como ByteString.
  • Un Iterable de objetos Mutation que representan una serie de operaciones de mutación de fila idempotentes.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.