Class RowMutation

java.lang.Object
com.google.cloud.bigtable.data.v2.models.RowMutation
All Implemented Interfaces:
MutationApi<RowMutation>, Serializable

public final class RowMutation extends Object implements MutationApi<RowMutation>, Serializable
Represents a list of mutations targeted at a single row. It's meant to be used as an parameter for BigtableDataClient.mutateRowAsync(RowMutation).
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    create(String tableId, com.google.protobuf.ByteString key)
    Creates a new instance of the mutation builder.
    create(String tableId, com.google.protobuf.ByteString key, Mutation mutation)
    Creates new instance of mutation builder by wrapping existing set of row mutations.
    create(String tableId, String key)
    Creates a new instance of the mutation builder.
    create(String tableId, String key, Mutation mutation)
    Creates new instance of mutation builder by wrapping existing set of row mutations.
    deleteCells(String familyName, com.google.protobuf.ByteString qualifier)
    Adds a mutation which deletes cells from the specified column.
    deleteCells(String familyName, com.google.protobuf.ByteString qualifier, Range.TimestampRange timestampRange)
    Adds a mutation which deletes cells from the specified column, restricted to a given timestamp range.
    deleteCells(String familyName, String qualifier)
    Adds a mutation which deletes cells from the specified column.
    deleteFamily(String familyName)
    Adds a mutation which deletes all cells from the specified column family.
    Adds a mutation which deletes all cells from the containing row.
    fromProto(com.google.bigtable.v2.MutateRowRequest request)
    Wraps the protobuf MutateRowRequest.
    setCell(String familyName, com.google.protobuf.ByteString qualifier, long value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, com.google.protobuf.ByteString qualifier, long timestamp, long value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, com.google.protobuf.ByteString qualifier, long timestamp, com.google.protobuf.ByteString value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, com.google.protobuf.ByteString qualifier, com.google.protobuf.ByteString value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, String qualifier, long value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, String qualifier, long timestamp, long value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, String qualifier, long timestamp, String value)
    Adds a mutation which sets the value of the specified cell.
    setCell(String familyName, String qualifier, String value)
    Adds a mutation which sets the value of the specified cell.
    com.google.bigtable.v2.MutateRowsRequest
    toBulkProto(com.google.cloud.bigtable.data.v2.internal.RequestContext requestContext)
    Creates a single entry bulk MutateRowsRequest, which will be merged by the batching logic in the callable chain.
    com.google.bigtable.v2.MutateRowRequest
    toProto(com.google.cloud.bigtable.data.v2.internal.RequestContext requestContext)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • create

      public static RowMutation create(@Nonnull String tableId, @Nonnull String key)
      Creates a new instance of the mutation builder.
    • create

      public static RowMutation create(@Nonnull String tableId, @Nonnull com.google.protobuf.ByteString key)
      Creates a new instance of the mutation builder.
    • create

      public static RowMutation create(@Nonnull String tableId, @Nonnull String key, @Nonnull Mutation mutation)
      Creates new instance of mutation builder by wrapping existing set of row mutations. The builder will be owned by this RowMutation and should not be used by the caller after this call. This functionality is intended for advanced usage.

      Sample code:

      
       Mutation mutation = Mutation.create()
           .setCell("[FAMILY_NAME]", "[QUALIFIER]", [TIMESTAMP], "[VALUE]");
       RowMutation rowMutation = RowMutation.create("[TABLE]", "[ROW_KEY]", mutation);
       
    • create

      public static RowMutation create(@Nonnull String tableId, @Nonnull com.google.protobuf.ByteString key, @Nonnull Mutation mutation)
      Creates new instance of mutation builder by wrapping existing set of row mutations. The builder will be owned by this RowMutation and should not be used by the caller after this call. This functionality is intended for advanced usage.

      Sample code:

      
       Mutation mutation = Mutation.create()
           .setCell("[FAMILY_NAME]", "[QUALIFIER]", [TIMESTAMP], "[VALUE]");
       RowMutation rowMutation = RowMutation.create("[TABLE]", [BYTE_STRING_ROW_KEY], mutation);
       
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull String qualifier, @Nonnull String value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      This a convenience method that converts Strings to ByteStrings and uses microseconds since epoch as the timestamp.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull String qualifier, long timestamp, @Nonnull String value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      This is a convenience override that converts Strings to ByteStrings.

      Note: The timestamp values are in microseconds but must match the granularity of the table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond granularity). For example: `1571902339435000`.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier, @Nonnull com.google.protobuf.ByteString value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      Uses microseconds since epoch as the timestamp.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier, long timestamp, @Nonnull com.google.protobuf.ByteString value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      Note: The timestamp values are in microseconds but must match the granularity of the table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond granularity). For example: `1571902339435000`.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull String qualifier, long value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      This a convenience method that converts Strings to ByteStrings and uses microseconds since epoch as the timestamp. Also it accepts long value.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull String qualifier, long timestamp, long value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      This is a convenience override that converts Strings to ByteStrings.

      Note: The timestamp values are in microseconds but must match the granularity of the table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond granularity). For example: `1571902339435000`.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier, long value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      Uses microseconds since epoch as the timestamp.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • setCell

      public RowMutation setCell(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier, long timestamp, long value)
      Description copied from interface: MutationApi
      Adds a mutation which sets the value of the specified cell.

      Note: The timestamp values are in microseconds but must match the granularity of the table(defaults to `MILLIS`). Therefore, the given value must be a multiple of 1000 (millisecond granularity). For example: `1571902339435000`.

      Specified by:
      setCell in interface MutationApi<RowMutation>
    • deleteCells

      public RowMutation deleteCells(@Nonnull String familyName, @Nonnull String qualifier)
      Description copied from interface: MutationApi
      Adds a mutation which deletes cells from the specified column.
      Specified by:
      deleteCells in interface MutationApi<RowMutation>
    • deleteCells

      public RowMutation deleteCells(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier)
      Description copied from interface: MutationApi
      Adds a mutation which deletes cells from the specified column.
      Specified by:
      deleteCells in interface MutationApi<RowMutation>
    • deleteCells

      public RowMutation deleteCells(@Nonnull String familyName, @Nonnull com.google.protobuf.ByteString qualifier, @Nonnull Range.TimestampRange timestampRange)
      Description copied from interface: MutationApi
      Adds a mutation which deletes cells from the specified column, restricted to a given timestamp range.
      Specified by:
      deleteCells in interface MutationApi<RowMutation>
      Parameters:
      familyName - The family name.
      qualifier - The qualifier.
      timestampRange - The timestamp range in microseconds.
    • deleteFamily

      public RowMutation deleteFamily(@Nonnull String familyName)
      Description copied from interface: MutationApi
      Adds a mutation which deletes all cells from the specified column family.
      Specified by:
      deleteFamily in interface MutationApi<RowMutation>
    • deleteRow

      public RowMutation deleteRow()
      Description copied from interface: MutationApi
      Adds a mutation which deletes all cells from the containing row.
      Specified by:
      deleteRow in interface MutationApi<RowMutation>
    • toProto

      @InternalApi public com.google.bigtable.v2.MutateRowRequest toProto(com.google.cloud.bigtable.data.v2.internal.RequestContext requestContext)
    • toBulkProto

      @InternalApi public com.google.bigtable.v2.MutateRowsRequest toBulkProto(com.google.cloud.bigtable.data.v2.internal.RequestContext requestContext)
      Creates a single entry bulk MutateRowsRequest, which will be merged by the batching logic in the callable chain.
    • fromProto

      @BetaApi public static RowMutation fromProto(@Nonnull com.google.bigtable.v2.MutateRowRequest request)
      Wraps the protobuf MutateRowRequest.

      This is meant for advanced usage only. Please ensure that the MutateRowRequest does not use server side timestamps. The BigtableDataClient assumes that RowMutations are idempotent and is configured to enable retries by default. If serverside timestamps are enabled, this can lead to duplicate mutations.

      WARNING: when applied, the resulting mutation object will ignore the project id and instance id in the table_name and instead apply the configuration in the client.