Class DirectRow (2.10.0)

DirectRow(row_key, table=None)

Google Cloud Bigtable Row for sending "direct" mutations.

These mutations directly set or delete cell contents:

  • set_cell
  • delete
  • delete_cell
  • delete_cells

These methods can be used directly::

row = table.row(b'row-key1') row.set_cell(u'fam', b'col1', b'cell-val') row.delete_cell(u'fam', b'col2')

Parameters

NameDescription
row_key bytes

The key for the current row.

table Table

(Optional) The table that owns the row. This is used for the :meth: commit only. Alternatively, DirectRows can be persisted via mutate_rows.

Inheritance

builtins.object > Row > google.cloud.bigtable.row._SetDeleteRow > DirectRow

Properties

row_key

Row key.

For example:

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_row_key] :end-before: [END bigtable_api_row_row_key] :dedent: 4

Returns
TypeDescription
bytesThe key for the current row.

table

Row table.

For example:

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_table] :end-before: [END bigtable_api_row_table] :dedent: 4

Returns
TypeDescription
table: Tabletable: The table that owns the row.

Methods

clear

clear()

Removes all currently accumulated mutations on the current row.

For example:

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_clear] :end-before: [END bigtable_api_row_clear] :dedent: 4

commit

commit()

Makes a MutateRow API request.

If no mutations have been created in the row, no request is made.

Mutations are applied atomically and in order, meaning that earlier mutations can be masked / negated by later ones. Cells already present in the row are left unchanged unless explicitly changed by a mutation.

After committing the accumulated mutations, resets the local mutations to an empty list.

For example:

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_commit] :end-before: [END bigtable_api_row_commit] :dedent: 4

Exceptions
TypeDescription
`.table.TooManyMutationsErrorif the number of mutations is greater than 100,000.
Returns
TypeDescription
`google.rpc.status_pb2.Status`A response status (`google.rpc.status_pb2.Status`) representing success or failure of the row committed.

delete

delete()

Deletes this row from the table.

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_delete] :end-before: [END bigtable_api_row_delete] :dedent: 4

delete_cell

delete_cell(column_family_id, column, time_range=None)

Deletes cell in this row.

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_delete_cell] :end-before: [END bigtable_api_row_delete_cell] :dedent: 4

Parameters
NameDescription
column_family_id str

The column family that contains the column or columns with cells being deleted. Must be of the form `_a-zA-Z0-9][-_.a-zA-Z0-9]`*.

column bytes

The column within the column family that will have a cell deleted.

time_range `TimestampRange`

(Optional) The range of time within which cells should be deleted.

delete_cells

delete_cells(column_family_id, columns, time_range=None)

Deletes cells in this row.

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_delete_cells] :end-before: [END bigtable_api_row_delete_cells] :dedent: 4

Parameters
NameDescription
column_family_id str

The column family that contains the column or columns with cells being deleted. Must be of the form `_a-zA-Z0-9][-_.a-zA-Z0-9]`*.

columns `list` of `str` / `unicode

The columns within the column family that will have cells deleted. If ALL_COLUMNS is used then the entire column family will be deleted from the row.

time_range `TimestampRange`

(Optional) The range of time within which cells should be deleted.

get_mutations_size

get_mutations_size()

Gets the total mutations size for current row

For example:

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_get_mutations_size] :end-before: [END bigtable_api_row_get_mutations_size] :dedent: 4

set_cell

set_cell(column_family_id, column, value, timestamp=None)

Sets a value in this row.

The cell is determined by the row_key of this DirectRow and the column. The column must be in an existing .ColumnFamily (as determined by column_family_id).

.. literalinclude:: snippets_table.py :start-after: [START bigtable_api_row_set_cell] :end-before: [END bigtable_api_row_set_cell] :dedent: 4

Parameters
NameDescription
column_family_id str

The column family that contains the column. Must be of the form `_a-zA-Z0-9][-_.a-zA-Z0-9]`*.

column bytes

The column within the column family where the cell is located.

value bytes or `int`

The value to set in the cell. If an integer is used, will be interpreted as a 64-bit big-endian signed integer (8 bytes).

timestamp `datetime.datetime`

(Optional) The timestamp of the operation.