Column Families =============== When creating a :class:`ColumnFamily `, 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 :class:`MaxAgeGCRule `, :class:`MaxVersionsGCRule `, :class:`GarbageCollectionRuleUnion ` and :class:`GarbageCollectionRuleIntersection ` can all be used as the optional ``gc_rule`` argument in the :class:`ColumnFamily ` constructor. This value is then used in the :meth:`create() ` and :meth:`update() ` methods. These rules can be nested arbitrarily, with a :class:`MaxAgeGCRule ` or :class:`MaxVersionsGCRule ` at the lowest level of the nesting: .. code:: python import datetime max_age = datetime.timedelta(days=3) rule1 = MaxAgeGCRule(max_age) rule2 = MaxVersionsGCRule(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]) ---- .. automodule:: google.cloud.bigtable.column_family :members: :show-inheritance: