Table Column Families¶
When creating a Table
,
it is possible to set garbage collection rules for expired data.
By setting a rule, cells in the table matching the rule will be deleted during periodic garbage collection (which executes opportunistically in the background).
The types
GarbageCollectionRule
,
GarbageCollectionRuleUnion
and
GarbageCollectionRuleIntersection
can all be used as the optional gc_rule
argument in the
ColumnFamily
constructor. This value is then used in the
create
and
update
methods.
These rules can be nested arbitrarily, with
GarbageCollectionRule
at the lowest level of the nesting:
import datetime
max_age = datetime.timedelta(days=3)
rule1 = GarbageCollectionRule(max_age=max_age)
rule2 = GarbageCollectionRule(max_num_versions=1)
# Make a composite that matches anything older than 3 days **AND**
# with more than 1 version.
rule3 = GarbageCollectionIntersection(rules=[rule1, rule2])
# Make another composite that matches our previous intersection
# **OR** anything that has more than 3 versions.
rule4 = GarbageCollectionRule(max_num_versions=3)
rule5 = GarbageCollectionUnion(rules=[rule3, rule4])
Column Family Module¶
User friendly container for Google Cloud Bigtable Column Family.
-
class
gcloud_bigtable.column_family.
ColumnFamily
(column_family_id, table, gc_rule=None)[source]¶ Bases:
object
Representation of a Google Cloud Bigtable Column Family.
We can use a
ColumnFamily
to:Parameters: - column_family_id (string) – The ID of the column family.
- table (
table.Table
) – The table that owns the column family. - gc_rule (
GarbageCollectionRule
,GarbageCollectionRuleUnion
orGarbageCollectionRuleIntersection
) – (Optional) The garbage collection settings for this column family.
-
client
¶ Getter for column family’s client.
Return type: client.Client
Returns: The client that owns this column family.
-
create
(timeout_seconds=None)[source]¶ Create this column family.
Parameters: timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to value set on column family.
-
delete
(timeout_seconds=None)[source]¶ Delete this column family.
Parameters: timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to value set on column family.
-
name
¶ Column family name used in requests.
Note
This property will not change if
column_family_id
does not, but the return value is not cached.The table name is of the form
"projects/../zones/../clusters/../tables/../columnFamilies/.."
Return type: string Returns: The column family name.
-
table
¶ Getter for column family’s table.
Return type: table.Table
Returns: The table stored on the column family.
-
timeout_seconds
¶ Getter for column family’s default timeout seconds.
Return type: integer Returns: The timeout seconds default.
-
update
(timeout_seconds=None)[source]¶ Update this column family.
Note
The Bigtable Table Admin API currently returns
BigtableTableService.UpdateColumnFamily is not yet implemented
when this method is used. It’s unclear when this method will actually be supported by the API.
Parameters: timeout_seconds (integer) – Number of seconds for request time-out. If not passed, defaults to value set on column family.
-
class
gcloud_bigtable.column_family.
GarbageCollectionRule
(max_num_versions=None, max_age=None)[source]¶ Bases:
object
Table garbage collection rule.
Cells in the table fitting the rule will be deleted during garbage collection.
These values can be combined via
GarbageCollectionRuleUnion
andGarbageCollectionRuleIntersection
.Note
At most one of
max_num_versions
andmax_age
can be specified at once.Note
A string
gc_expression
can also be used with API requests, but that value would be superceded by agc_rule
. As a result, we don’t support that feature and instead support via this native object.Parameters: - max_num_versions (integer) – The maximum number of versions
- max_age (
datetime.timedelta
) – The maximum age allowed for a cell in the table.
Raises: ValueError
if bothmax_num_versions
andmax_age
are set.-
to_pb
()[source]¶ Converts the
GarbageCollectionRule
to a protobuf.Return type: data_pb2.GcRule
Returns: The converted current object.
-
class
gcloud_bigtable.column_family.
GarbageCollectionRuleIntersection
(rules=None)[source]¶ Bases:
object
Intersection of garbage collection rules.
Parameters: rules (list) – List of garbage collection rules, unions and/or intersections.