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
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
.
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
bytes
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
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
`.table.TooManyMutationsError
google.rpc.status_pb2.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: 4delete_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: 4column_family_id
str
The column family that contains the column or columns with cells being deleted. Must be of the form <code>_a-zA-Z0-9][-_.a-zA-Z0-9]</code>*
.
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: 4column_family_id
str
The column family that contains the column or columns with cells being deleted. Must be of the form <code>_a-zA-Z0-9][-_.a-zA-Z0-9]</code>*
.
columns
list
of str
/ unicode
, or object
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
).
column_family_id
str
The column family that contains the column. Must be of the form <code>_a-zA-Z0-9][-_.a-zA-Z0-9]</code>*
.
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.