As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Client

Parent client for calling the Google Cloud Bigtable API.

This is the base from which all interactions with the API occur.

In the hierarchy of API concepts

google.cloud.bigtable.client.ADMIN_SCOPE = 'https://www.googleapis.com/auth/bigtable.admin'

Scope for interacting with the Cluster Admin and Table Admin APIs.

class google.cloud.bigtable.client.Client(project=None, credentials=None, read_only=False, admin=False, client_info=<google.api_core.gapic_v1.client_info.ClientInfo object>, client_options=None, admin_client_options=None, channel=None)[source]

Bases: google.cloud.client.ClientWithProject

Client for interacting with Google Cloud Bigtable API.

Note

Since the Cloud Bigtable API requires the gRPC transport, no _http argument is accepted by this class.

Parameters
  • project (str or unicode) – (Optional) The ID of the project which owns the instances, tables and data. If not provided, will attempt to determine from the environment.

  • credentials (Credentials) – (Optional) The OAuth2 Credentials to use for this client. If not passed, falls back to the default inferred from the environment.

  • read_only (bool) – (Optional) Boolean indicating if the data scope should be for reading only (or for writing as well). Defaults to False.

  • admin (bool) – (Optional) Boolean indicating if the client will be used to interact with the Instance Admin or Table Admin APIs. This requires the ADMIN_SCOPE. Defaults to False.

  • client_info – The client info used to send a user-agent string along with API requests. If None, then default info will be used. Generally, you only need to set this if you’re developing your own library or partner tool.

  • client_options (ClientOptions or dict) – (Optional) Client options used to set user options on the client. API Endpoint should be set through client_options.

  • admin_client_options (ClientOptions or dict) – (Optional) Client options used to set user options on the client. API Endpoint for admin operations should be set through admin_client_options.

  • (grpc.Channel) (channel) – (Optional) DEPRECATED: A Channel instance through which to make calls. This argument is mutually exclusive with credentials; providing both will raise an exception. No longer used.

Type

client_info: google.api_core.gapic_v1.client_info.ClientInfo

Raises

ValueError if both read_only and admin are True

instance(instance_id, display_name=None, instance_type=None, labels=None)[source]

Factory to create a instance associated with this client.

For example:

from google.cloud.bigtable import Client
from google.cloud.bigtable import enums

my_instance_id = "inst-my-" + UNIQUE_SUFFIX
my_cluster_id = "clus-my-" + UNIQUE_SUFFIX
location_id = "us-central1-f"
serve_nodes = 1
storage_type = enums.StorageType.SSD
production = enums.Instance.Type.PRODUCTION
labels = {"prod-label": "prod-label"}

client = Client(admin=True)
instance = client.instance(my_instance_id, instance_type=production, labels=labels)
cluster = instance.cluster(
    my_cluster_id,
    location_id=location_id,
    serve_nodes=serve_nodes,
    default_storage_type=storage_type,
)
operation = instance.create(clusters=[cluster])

# We want to make sure the operation completes.
operation.result(timeout=100)

Parameters
  • instance_id (str) – The ID of the instance.

  • display_name (str) – (Optional) The display name for the instance in the Cloud Console UI. (Must be between 4 and 30 characters.) If this value is not set in the constructor, will fall back to the instance ID.

  • instance_type (int) – (Optional) The type of the instance. Possible values are represented by the following constants: google.cloud.bigtable.instance.InstanceType.PRODUCTION. google.cloud.bigtable.instance.InstanceType.DEVELOPMENT, Defaults to google.cloud.bigtable.instance.InstanceType.UNSPECIFIED.

  • labels (dict) – (Optional) Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer’s organizational needs and deployment strategies. They can be used to filter resources and aggregate metrics. Label keys must be between 1 and 63 characters long. Maximum 64 labels can be associated with a given resource. Label values must be between 0 and 63 characters long. Keys and values must both be under 128 bytes.

Return type

Instance

Returns

an instance owned by this client.

property instance_admin_client

Getter for the gRPC stub used for the Table Admin API.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
instance_admin_client = client.instance_admin_client
Return type

bigtable_admin_pb2.BigtableInstanceAdmin

Returns

A BigtableInstanceAdmin instance.

Raises

ValueError if the current client is not an admin client or if it has not been start()-ed.

list_clusters()[source]

List the clusters in the project.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
(clusters_list, failed_locations_list) = client.list_clusters()
Return type

tuple

Returns

(clusters, failed_locations), where ‘clusters’ is list of google.cloud.bigtable.instance.Cluster, and ‘failed_locations’ is a list of strings representing locations which could not be resolved.

list_instances()[source]

List instances owned by the project.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
(instances_list, failed_locations_list) = client.list_instances()
Return type

tuple

Returns

(instances, failed_locations), where ‘instances’ is list of google.cloud.bigtable.instance.Instance, and ‘failed_locations’ is a list of locations which could not be resolved.

property project_path

Project name to be used with Instance Admin API.

Note

This property will not change if project does not, but the return value is not cached.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
project_path = client.project_path

The project name is of the form

"projects/{project}"

Return type

str

Returns

Return a fully-qualified project string.

property table_admin_client

Getter for the gRPC stub used for the Table Admin API.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
table_admin_client = client.table_admin_client
Return type

bigtable_admin_pb2.BigtableTableAdmin

Returns

A BigtableTableAdmin instance.

Raises

ValueError if the current client is not an admin client or if it has not been start()-ed.

property table_data_client

Getter for the gRPC stub used for the Table Admin API.

For example:

from google.cloud.bigtable import Client

client = Client(admin=True)
table_data_client = client.table_data_client
Return type

bigtable_v2.BigtableClient

Returns

A BigtableClient object.

google.cloud.bigtable.client.DATA_SCOPE = 'https://www.googleapis.com/auth/bigtable.data'

Scope for reading and writing table data.

google.cloud.bigtable.client.READ_ONLY_SCOPE = 'https://www.googleapis.com/auth/bigtable.data.readonly'

Scope for reading table data.