Cloud Bigtable API - Class Google::Cloud::Bigtable::MutationEntry (v2.8.0)

Reference documentation and code samples for the Cloud Bigtable API class Google::Cloud::Bigtable::MutationEntry.

MutationEntry

MutationEntry is a chainable structure that holds data for different type of mutations. MutationEntry is used in following data operations:

  • Mutate row. See Table#mutate_row
  • Mutate rows. See Table#mutate_rows
  • Check and mutate row using a predicate. See Table#check_and_mutate_row

Inherits

  • Object

Examples

entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
timestamp_micros = (Time.now.to_f * 1_000_000).round(-3)
entry.set_cell(
  "cf1", "fiel01", "XYZ", timestamp: timestamp_micros
).delete_cells(
  "cf2",
  "field02",
  timestamp_from: timestamp_micros - 5_000_000,
  timestamp_to: timestamp_micros
).delete_from_family("cf3").delete_from_row

Create using a table.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

entry = table.new_mutation_entry "user-1"
timestamp_micros = (Time.now.to_f * 1_000_000).round(-3)
entry.set_cell(
  "cf1", "fiel01", "XYZ", timestamp: timestamp_micros
)

Methods

#delete_cells

def delete_cells(family, qualifier, timestamp_from: nil, timestamp_to: nil) -> MutationEntry

Adds a DeleteFromColumn to the list of mutations.

A DeleteFromColumn is a mutation that deletes cells from the specified column, optionally restricting the deletions to a given timestamp range.

Parameters
  • family (String) — Table column family name. The name of the column family from which cells should be deleted. Must match [-_.a-zA-Z0-9]+
  • qualifier (String) — Column qualifier name. The qualifier of the column from which cells should be deleted. Can be any byte string, including an empty string.
  • timestamp_from (Integer) (defaults to: nil) — Timestamp lower boundary in microseconds. Optional. Begins the range of timestamps from which cells should be deleted. Values are in microseconds but must match the granularity of the table. Therefore, if Table#granularity is MILLIS (the default), the given value must be a multiple of 1000 (millisecond granularity). For example: 1564257960168000.
  • timestamp_to (Integer) (defaults to: nil) — Timestamp upper boundary in microseconds. Optional. Ends the range of timestamps from which cells should be deleted. Values are in microseconds but must match the granularity of the table. Therefore, if Table#granularity is MILLIS (the default), the given value must be a multiple of 1000 (millisecond granularity). For example: 1564257960168000.
Returns
Examples

Without timestamp range.

entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
entry.delete_cells "cf1", "field1"

With timestamp range.

entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
timestamp_micros = (Time.now.to_f * 1_000_000).round(-3)
entry.delete_cells(
  "cf1",
  "field1",
  timestamp_from: timestamp_micros - 5_000_000,
  timestamp_to: timestamp_micros
)

With timestamp range with lower boundary only.

entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
timestamp_micros = (Time.now.to_f * 1_000_000).round(-3)
entry.delete_cells(
  "cf1",
  "field1",
  timestamp_from: timestamp_micros - 5_000_000
)

#delete_from_family

def delete_from_family(family) -> MutationEntry

Adds a DeleteFromFamily to the list of mutations.

A DeleteFromFamily is a mutation that deletes all cells from the specified column family.

Parameter
  • family (String) — Table column family name. The name of the column family from which cells should be deleted. Must match [-_.a-zA-Z0-9]+
Returns
Example
entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
entry.delete_from_family "cf1"

#delete_from_row

def delete_from_row() -> MutationEntry

Adds a DeleteFromRow to the list of mutations.

A DeleteFromRow is a mutation which deletes all cells from the containing row.

Returns
Example
entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
entry.delete_from_row

#initialize

def initialize(row_key = nil) -> MutationEntry

Creates a mutation entry instance.

Parameter
  • row_key (String)
Returns

#length

def length() -> Integer

The number of mutations.

Returns
  • (Integer)

#retryable?

def retryable?() -> Boolean

If the mutation entry is retryable or not based on set_cell value.

Returns
  • (Boolean)

#row_key

def row_key()

Returns the value of attribute row_key.

#row_key=

def row_key=(value)

Sets the attribute row_key

#set_cell

def set_cell(family, qualifier, value, timestamp: nil) -> MutationEntry

Adds a SetCell to the list of mutations.

A SetCell is a mutation that sets the value of the specified cell.

Parameters
  • family (String) — Table column family name. The name of the family into which new data should be written. Must match [-_.a-zA-Z0-9]+
  • qualifier (String) — Column qualifier name. The qualifier of the column into which new data should be written. Can be any byte string, including an empty string.
  • value (String, Integer) — Cell value data. The value to be written into the specified cell. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.
  • timestamp (Integer) (defaults to: nil) — Timestamp value in microseconds. The timestamp of the cell into which new data should be written. Use -1 for current Bigtable server time. Otherwise, the client should set this value itself, noting that the default value is a timestamp of zero if the field is left unspecified. Values are in microseconds but must match the granularity of the table. Therefore, if Table#granularity is MILLIS (the default), the given value must be a multiple of 1000 (millisecond granularity). For example: 1564257960168000.
Returns
Examples
entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
entry.set_cell "cf1", "field01", "XYZ"

With timestamp.

entry = Google::Cloud::Bigtable::MutationEntry.new "user-1"
entry.set_cell(
  "cf1",
  "field1",
  "XYZ",
  timestamp: (Time.now.to_f * 1_000_000).round(-3) # microseconds
)