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:
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 and GarbageCollectionRuleIntersection.

Note

At most one of max_num_versions and max_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 a gc_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 both max_num_versions and max_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.
to_pb()[source]

Converts the intersection into a single gc rule as a protobuf.

Return type:data_pb2.GcRule
Returns:The converted current object.
class gcloud_bigtable.column_family.GarbageCollectionRuleUnion(rules=None)[source]

Bases: object

Union of garbage collection rules.

Parameters:rules (list) – List of garbage collection rules, unions and/or intersections.
to_pb()[source]

Converts the union into a single gc rule as a protobuf.

Return type:data_pb2.GcRule
Returns:The converted current object.