After creating an Instance <google.cloud.bigtable.instance.Instance>
, you can interact with individual tables, groups of tables or column families within a table.
If you want a comprehensive list of all existing tables in a instance, make a ListTables API request with Instance.list_tables() <google.cloud.bigtable.instance.Instance.list_tables>
:
>>> instance.list_tables()
[<google.cloud.bigtable.table.Table at 0x7ff6a1de8f50>,
<google.cloud.bigtable.table.Table at 0x7ff6a1de8350>]
To create a Table <google.cloud.bigtable.table.Table>
object:
table = instance.table(table_id)
Even if this Table <google.cloud.bigtable.table.Table>
already has been created with the API, you'll want this object to use as a parent of a ColumnFamily <google.cloud.bigtable.column_family.ColumnFamily>
or Row <google.cloud.bigtable.row.Row>
.
After creating the table object, make a CreateTable API request with create() <google.cloud.bigtable.table.Table.create>
:
table.create()
If you would like to initially split the table into several tablets (tablets are similar to HBase regions):
table.create(initial_split_keys=['s1', 's2'])
Make a DeleteTable API request with delete() <google.cloud.bigtable.table.Table.delete>
:
table.delete()
Though there is no official method for retrieving column families associated with a table, the GetTable API method returns a table object with the names of the column families.
To retrieve the list of column families use list_column_families() <google.cloud.bigtable.table.Table.list_column_families>
:
column_families = table.list_column_families()
To create a ColumnFamily <google.cloud.bigtable.column_family.ColumnFamily>
object:
column_family = table.column_family(column_family_id)
There is no real reason to use this factory unless you intend to create or delete a column family.
In addition, you can specify an optional gc_rule
(a GarbageCollectionRule <google.cloud.bigtable.column_family.GarbageCollectionRule>
or similar):
column_family = table.column_family(column_family_id,
gc_rule=gc_rule)
This rule helps the backend determine when and how to clean up old cells in the column family.
See column-family
for more information about GarbageCollectionRule <google.cloud.bigtable.column_family.GarbageCollectionRule>
and related classes.
After creating the column family object, make a CreateColumnFamily API request with ColumnFamily.create() <google.cloud.bigtable.column_family.ColumnFamily.create>
column_family.create()
Make a DeleteColumnFamily API request with ColumnFamily.delete() <google.cloud.bigtable.column_family.ColumnFamily.delete>
column_family.delete()
Make an UpdateColumnFamily API request with ColumnFamily.delete() <google.cloud.bigtable.column_family.ColumnFamily.update>
column_family.update()
Now we go down the final step of the hierarchy from Table <google.cloud.bigtable.table.Table>
to Row <google.cloud.bigtable.row.Row>
as well as streaming data directly via a Table <google.cloud.bigtable.table.Table>
.
Head next to learn about the data-api
.