Showing content from https://cloud.google.com/cpp/docs/reference/bigtable/2.18.0/bigtable-hello-instance-admin below:
C++ Client Libraries | Google Cloud
Skip to main content
- Overview
-
Library reference docs
- Google Cloud Platform Bigtable C++ Client Library
-
Namespaces
-
google::cloud::bigtable
- Overview
-
Classes
-
AsyncRowReader<Unused1, Unused2>
-
Cell
- Overview
-
Constructors
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, ValueType &&, std::vector< std::string >)
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, std::int64_t, std::vector< std::string >)
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, ValueType &&)
-
DataClient
- Overview
-
Functions
- MutateRow(grpc::ClientContext *, google::bigtable::v2::MutateRowRequest const &, google::bigtable::v2::MutateRowResponse *)
- AsyncMutateRow(grpc::ClientContext *, google::bigtable::v2::MutateRowRequest const &, grpc::CompletionQueue *)
- CheckAndMutateRow(grpc::ClientContext *, google::bigtable::v2::CheckAndMutateRowRequest const &, google::bigtable::v2::CheckAndMutateRowResponse *)
- AsyncCheckAndMutateRow(grpc::ClientContext *, google::bigtable::v2::CheckAndMutateRowRequest const &, grpc::CompletionQueue *)
- ReadModifyWriteRow(grpc::ClientContext *, google::bigtable::v2::ReadModifyWriteRowRequest const &, google::bigtable::v2::ReadModifyWriteRowResponse *)
- AsyncReadModifyWriteRow(grpc::ClientContext *, google::bigtable::v2::ReadModifyWriteRowRequest const &, grpc::CompletionQueue *)
- ReadRows(grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &)
- AsyncReadRows(grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &, grpc::CompletionQueue *, void *)
- PrepareAsyncReadRows(::grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &, grpc::CompletionQueue *)
- SampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &)
- AsyncSampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &, grpc::CompletionQueue *, void *)
- virtual PrepareAsyncSampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &, grpc::CompletionQueue *)
- MutateRows(grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &)
- AsyncMutateRows(::grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &, grpc::CompletionQueue *, void *)
- PrepareAsyncMutateRows(grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &, grpc::CompletionQueue *)
- project_id() const
- instance_id() const
- Channel()
- reset()
- BackgroundThreadsFactory()
-
DataConnection
- Overview
-
Functions
- virtual options()
- virtual Apply(std::string const &, SingleRowMutation)
- virtual AsyncApply(std::string const &, SingleRowMutation)
- virtual BulkApply(std::string const &, BulkMutation)
- virtual AsyncBulkApply(std::string const &, BulkMutation)
- virtual ReadRows(std::string const &, RowSet, std::int64_t, Filter)
- virtual ReadRowsFull(ReadRowsParams)
- virtual ReadRow(std::string const &, std::string, Filter)
- virtual CheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual AsyncCheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual SampleRows(std::string const &)
- virtual AsyncSampleRows(std::string const &)
- virtual ReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadRows(std::string const &, std::function< future< bool >(Row)>, std::function< void(Status)>, RowSet, std::int64_t, Filter)
- virtual AsyncReadRow(std::string const &, std::string, Filter)
-
DataLimitedErrorCountRetryPolicy
-
Filter
- Overview
-
Functions
- static ValueRangeLeftOpen(std::string, std::string)
- static ValueRangeRightOpen(std::string, std::string)
- static ValueRangeClosed(std::string, std::string)
- static ValueRangeOpen(std::string, std::string)
- static ColumnRangeRightOpen(std::string, std::string, std::string)
- static ColumnRangeLeftOpen(std::string, std::string, std::string)
- static ColumnRangeClosed(std::string, std::string, std::string)
- static ColumnRangeOpen(std::string, std::string, std::string)
- static Condition(Filter, Filter, Filter)
- static Chain(FilterTypes &&...)
- static ChainFromRange(Iterator, Iterator)
- static Interleave(FilterTypes &&...)
- static InterleaveFromRange(Iterator, Iterator)
- static Sink()
- as_proto() const &
- as_proto() &&
- static PassAllFilter()
- static BlockAllFilter()
- static Latest(std::int32_t)
- static FamilyRegex(std::string)
- static ColumnRegex(std::string)
- static ColumnRange(std::string, std::string, std::string)
- static ColumnName(std::string, std::string)
- static TimestampRangeMicros(std::int64_t, std::int64_t)
- static TimestampRange(std::chrono::duration< Rep1, Period1 >, std::chrono::duration< Rep2, Period2 >)
- static RowKeysRegex(std::string)
- static ValueRegex(std::string)
- static ValueRange(std::string, std::string)
- static CellsRowLimit(std::int32_t)
- static CellsRowOffset(std::int32_t)
- static RowSample(double)
- static StripValueTransformer()
- static ApplyLabelTransformer(std::string)
-
GenericPollingPolicy<Retry, Backoff>
-
InstanceAdmin
- Overview
-
Functions
- project_name() const
- project_id() const
- WithNewTarget(std::string) const
- InstanceName(std::string const &) const
- ClusterName(std::string const &, std::string const &) const
- AppProfileName(std::string const &, std::string const &) const
- CreateInstance(InstanceConfig)
- CreateCluster(ClusterConfig, std::string const &, std::string const &)
- UpdateInstance(InstanceUpdateConfig)
- ListInstances()
- GetInstance(std::string const &)
- DeleteInstance(std::string const &)
- ListClusters()
- ListClusters(std::string const &)
- UpdateCluster(ClusterConfig)
- DeleteCluster(std::string const &, std::string const &)
- GetCluster(std::string const &, std::string const &)
- CreateAppProfile(std::string const &, AppProfileConfig)
- GetAppProfile(std::string const &, std::string const &)
- UpdateAppProfile(std::string const &, std::string const &, AppProfileUpdateConfig)
- ListAppProfiles(std::string const &)
- DeleteAppProfile(std::string const &, std::string const &, bool)
- GetNativeIamPolicy(std::string const &)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &)
- TestIamPermissions(std::string const &, std::vector< std::string > const &)
-
RowReader
- Overview
-
Constructors
- RowReader()
- RowReader(std::shared_ptr< DataClient >, std::string, RowSet, std::int64_t, Filter, std::unique_ptr< RPCRetryPolicy >, std::unique_ptr< RPCBackoffPolicy >, MetadataUpdatePolicy, std::unique_ptr< internal::ReadRowsParserFactory >)
- RowReader(std::shared_ptr< DataClient >, std::string, std::string, RowSet, std::int64_t, Filter, std::unique_ptr< RPCRetryPolicy >, std::unique_ptr< RPCBackoffPolicy >, MetadataUpdatePolicy, std::unique_ptr< internal::ReadRowsParserFactory >)
- RowReader(RowReader &&)
-
Table
- Overview
-
Constructors
- Table(std::shared_ptr< bigtable::DataConnection >, TableResource, Options)
- Table(std::shared_ptr< DataClient >, std::string const &)
- Table(std::shared_ptr< DataClient >, std::string, std::string const &)
- Table(std::shared_ptr< DataClient >, std::string const &, Policies &&...)
- Table(std::shared_ptr< DataClient >, std::string, std::string const &, Policies &&...)
-
Functions
- table_name() const
- app_profile_id() const
- project_id() const
- instance_id() const
- table_id() const
- WithNewTarget(std::string, std::string, std::string) const
- WithNewTarget(std::string, std::string, std::string, std::string) const
- Apply(SingleRowMutation, Options)
- AsyncApply(SingleRowMutation, Options)
- BulkApply(BulkMutation, Options)
- AsyncBulkApply(BulkMutation, Options)
- ReadRows(RowSet, Filter, Options)
- ReadRows(RowSet, std::int64_t, Filter, Options)
- ReadRow(std::string, Filter, Options)
- CheckAndMutateRow(std::string, Filter, std::vector< Mutation >, std::vector< Mutation >, Options)
- AsyncCheckAndMutateRow(std::string, Filter, std::vector< Mutation >, std::vector< Mutation >, Options)
- SampleRows(Options)
- AsyncSampleRows(Options)
- ReadModifyWriteRow(std::string, bigtable::ReadModifyWriteRule, Args &&...)
- AsyncReadModifyWriteRow(std::string, bigtable::ReadModifyWriteRule, Args &&...)
- AsyncReadRows(RowFunctor, FinishFunctor, RowSet, Filter, Options)
- AsyncReadRows(RowFunctor, FinishFunctor, RowSet, std::int64_t, Filter, Options)
- AsyncReadRow(std::string, Filter, Options)
-
TableAdmin
- Overview
-
Functions
- project() const
- instance_id() const
- instance_name() const
- WithNewTarget(std::string, std::string) const
- CreateTable(std::string, TableConfig)
- ListTables(::google::bigtable::admin::v2::Table::View)
- GetTable(std::string const &, TableView)
- DeleteTable(std::string const &)
- CreateBackup(CreateBackupParams const &)
- GetBackup(std::string const &, std::string const &)
- UpdateBackup(UpdateBackupParams const &)
- DeleteBackup(std::string const &, std::string const &)
- DeleteBackup(google::bigtable::admin::v2::Backup const &)
- ListBackups(ListBackupsParams const &)
- RestoreTable(RestoreTableParams const &)
- RestoreTable(RestoreTableFromInstanceParams)
- ModifyColumnFamilies(std::string const &, std::vector< ColumnFamilyModification >)
- DropRowsByPrefix(std::string const &, std::string)
- GenerateConsistencyToken(std::string const &)
- CheckConsistency(std::string const &, std::string const &)
- WaitForConsistency(std::string const &, std::string const &)
- DropAllRows(std::string const &)
- GetIamPolicy(std::string const &)
- GetIamPolicy(std::string const &, std::string const &)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &)
- SetIamPolicy(std::string const &, std::string const &, google::iam::v1::Policy const &)
- TestIamPermissions(std::string const &, std::vector< std::string > const &)
- TestIamPermissions(std::string const &, std::string const &, std::vector< std::string > const &)
- TableName(std::string const &) const
- ClusterName(std::string const &) const
- BackupName(std::string const &, std::string const &) const
-
Functions
- DeleteFromColumn(std::string, ColumnType &&, std::chrono::duration< Rep1, Period1 >, std::chrono::duration< Rep2, Period2 >)
- DeleteFromColumnStartingFrom(std::string, ColumnType &&, std::chrono::duration< Rep1, Period1 >)
- DeleteFromColumnEndingAt(std::string, ColumnType &&, std::chrono::duration< Rep2, Period2 >)
- DeleteFromColumn(std::string, ColumnType &&)
- MakeAdminClient(std::string, Options)
- CreateDefaultAdminClient(std::string, ClientOptions)
- SetCell(Cell)
- MakeDataClient(std::string, std::string, Options)
- CreateDefaultDataClient(std::string, std::string, ClientOptions)
- InstanceName(std::shared_ptr< DataClient > const &)
- MakeDataConnection(Options)
- Expression(std::string, std::string, std::string, std::string)
- IamBinding(std::string, InputIt, InputIt)
- IamBinding(std::string, InputIt, InputIt, google::type::Expr)
- IamBinding(std::string, std::initializer_list< std::string >)
- IamBinding(std::string, std::initializer_list< std::string >, google::type::Expr)
- IamBinding(std::string, std::vector< std::string >)
- IamBinding(std::string, std::vector< std::string >, google::type::Expr)
- IamBindingAppendMembers(google::iam::v1::Binding, InputIt, InputIt)
- IamBindingSetCondition(google::iam::v1::Binding, google::type::Expr)
- IamPolicy(InputIt, InputIt, std::string, std::int32_t)
- IamPolicy(std::initializer_list< google::iam::v1::Binding >, std::string, std::int32_t)
- IamPolicy(std::vector< google::iam::v1::Binding >, std::string, std::int32_t)
- RemoveBindingsFromPolicyIf(google::iam::v1::Policy &, Functor)
- RemoveBindingFromPolicy(google::iam::v1::Policy &, google::protobuf::RepeatedPtrField< google::iam::v1::Binding >::iterator)
- DefaultIdempotentMutationPolicy()
- MakeInstanceAdminClient(std::string, Options)
- CreateDefaultInstanceAdminClient(std::string, ClientOptions)
- MakeInstanceResource(std::string const &)
- ServerSetTimestamp()
- SetCell(std::string, ColumnType &&, std::chrono::milliseconds, ValueType &&)
- SetCell(std::string, ColumnType &&, std::chrono::milliseconds, std::int64_t)
- SetCell(std::string, ColumnType &&, ValueType &&)
- SetCell(std::string, ColumnType &&, std::int64_t)
- DeleteFromFamily(std::string)
- DeleteFromRow()
- DefaultPollingPolicy(internal::RPCPolicyParameters)
- InstanceName(std::string const &, std::string const &)
- TableName(std::string const &, std::string const &, std::string const &)
- ClusterName(std::string const &, std::string const &, std::string const &)
- AppProfileName(std::string const &, std::string const &, std::string const &)
- BackupName(std::string const &, std::string const &, std::string const &, std::string const &)
- DefaultRPCBackoffPolicy(internal::RPCPolicyParameters)
- DefaultRPCRetryPolicy(internal::RPCPolicyParameters)
- TableName(std::shared_ptr< DataClient > const &, std::string const &)
- MakeTableResource(std::string const &)
- version_major()
- version_minor()
- version_patch()
- version_pre_release()
- version()
- version_string()
-
google::cloud::bigtable_admin
- Overview
-
Classes
-
BigtableInstanceAdminClient
- Overview
-
Functions
- CreateInstance(std::string const &, std::string const &, google::bigtable::admin::v2::Instance const &, std::map< std::string, google::bigtable::admin::v2::Cluster > const &, Options)
- CreateInstance(google::bigtable::admin::v2::CreateInstanceRequest const &, Options)
- GetInstance(std::string const &, Options)
- GetInstance(google::bigtable::admin::v2::GetInstanceRequest const &, Options)
- ListInstances(std::string const &, Options)
- ListInstances(google::bigtable::admin::v2::ListInstancesRequest const &, Options)
- UpdateInstance(google::bigtable::admin::v2::Instance const &, Options)
- PartialUpdateInstance(google::bigtable::admin::v2::Instance const &, google::protobuf::FieldMask const &, Options)
- PartialUpdateInstance(google::bigtable::admin::v2::PartialUpdateInstanceRequest const &, Options)
- DeleteInstance(std::string const &, Options)
- DeleteInstance(google::bigtable::admin::v2::DeleteInstanceRequest const &, Options)
- CreateCluster(std::string const &, std::string const &, google::bigtable::admin::v2::Cluster const &, Options)
- CreateCluster(google::bigtable::admin::v2::CreateClusterRequest const &, Options)
- GetCluster(std::string const &, Options)
- GetCluster(google::bigtable::admin::v2::GetClusterRequest const &, Options)
- ListClusters(std::string const &, Options)
- ListClusters(google::bigtable::admin::v2::ListClustersRequest const &, Options)
- UpdateCluster(google::bigtable::admin::v2::Cluster const &, Options)
- PartialUpdateCluster(google::bigtable::admin::v2::Cluster const &, google::protobuf::FieldMask const &, Options)
- PartialUpdateCluster(google::bigtable::admin::v2::PartialUpdateClusterRequest const &, Options)
- DeleteCluster(std::string const &, Options)
- DeleteCluster(google::bigtable::admin::v2::DeleteClusterRequest const &, Options)
- CreateAppProfile(std::string const &, std::string const &, google::bigtable::admin::v2::AppProfile const &, Options)
- CreateAppProfile(google::bigtable::admin::v2::CreateAppProfileRequest const &, Options)
- GetAppProfile(std::string const &, Options)
- GetAppProfile(google::bigtable::admin::v2::GetAppProfileRequest const &, Options)
- ListAppProfiles(std::string const &, Options)
- ListAppProfiles(google::bigtable::admin::v2::ListAppProfilesRequest, Options)
- UpdateAppProfile(google::bigtable::admin::v2::AppProfile const &, google::protobuf::FieldMask const &, Options)
- UpdateAppProfile(google::bigtable::admin::v2::UpdateAppProfileRequest const &, Options)
- DeleteAppProfile(google::bigtable::admin::v2::DeleteAppProfileRequest const &, Options)
- GetIamPolicy(std::string const &, Options)
- GetIamPolicy(google::iam::v1::GetIamPolicyRequest const &, Options)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &, Options)
- SetIamPolicy(std::string const &, IamUpdater const &, Options)
- SetIamPolicy(google::iam::v1::SetIamPolicyRequest const &, Options)
- TestIamPermissions(std::string const &, std::vector< std::string > const &, Options)
- TestIamPermissions(google::iam::v1::TestIamPermissionsRequest const &, Options)
- ListHotTablets(std::string const &, Options)
- ListHotTablets(google::bigtable::admin::v2::ListHotTabletsRequest, Options)
-
BigtableInstanceAdminConnection
-
BigtableInstanceAdminConnectionIdempotencyPolicy
-
BigtableInstanceAdminLimitedErrorCountRetryPolicy
-
BigtableInstanceAdminLimitedTimeRetryPolicy
-
BigtableInstanceAdminRetryPolicy
-
BigtableTableAdminClient
- Overview
-
Functions
- CreateTable(std::string const &, std::string const &, google::bigtable::admin::v2::Table const &, Options)
- CreateTable(google::bigtable::admin::v2::CreateTableRequest const &, Options)
- ListTables(std::string const &, Options)
- ListTables(google::bigtable::admin::v2::ListTablesRequest, Options)
- GetTable(std::string const &, Options)
- GetTable(google::bigtable::admin::v2::GetTableRequest const &, Options)
- UpdateTable(google::bigtable::admin::v2::Table const &, google::protobuf::FieldMask const &, Options)
- UpdateTable(google::bigtable::admin::v2::UpdateTableRequest const &, Options)
- DeleteTable(std::string const &, Options)
- DeleteTable(google::bigtable::admin::v2::DeleteTableRequest const &, Options)
- UndeleteTable(std::string const &, Options)
- UndeleteTable(google::bigtable::admin::v2::UndeleteTableRequest const &, Options)
- ModifyColumnFamilies(std::string const &, std::vector< google::bigtable::admin::v2::ModifyColumnFamiliesRequest::Modification > const &, Options)
- ModifyColumnFamilies(google::bigtable::admin::v2::ModifyColumnFamiliesRequest const &, Options)
- DropRowRange(google::bigtable::admin::v2::DropRowRangeRequest const &, Options)
- GenerateConsistencyToken(std::string const &, Options)
- GenerateConsistencyToken(google::bigtable::admin::v2::GenerateConsistencyTokenRequest const &, Options)
- CheckConsistency(std::string const &, std::string const &, Options)
- CheckConsistency(google::bigtable::admin::v2::CheckConsistencyRequest const &, Options)
- CreateBackup(std::string const &, std::string const &, google::bigtable::admin::v2::Backup const &, Options)
- CreateBackup(google::bigtable::admin::v2::CreateBackupRequest const &, Options)
- GetBackup(std::string const &, Options)
- GetBackup(google::bigtable::admin::v2::GetBackupRequest const &, Options)
- UpdateBackup(google::bigtable::admin::v2::Backup const &, google::protobuf::FieldMask const &, Options)
- UpdateBackup(google::bigtable::admin::v2::UpdateBackupRequest const &, Options)
- DeleteBackup(std::string const &, Options)
- DeleteBackup(google::bigtable::admin::v2::DeleteBackupRequest const &, Options)
- ListBackups(std::string const &, Options)
- ListBackups(google::bigtable::admin::v2::ListBackupsRequest, Options)
- RestoreTable(google::bigtable::admin::v2::RestoreTableRequest const &, Options)
- CopyBackup(std::string const &, std::string const &, std::string const &, google::protobuf::Timestamp const &, Options)
- CopyBackup(google::bigtable::admin::v2::CopyBackupRequest const &, Options)
- GetIamPolicy(std::string const &, Options)
- GetIamPolicy(google::iam::v1::GetIamPolicyRequest const &, Options)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &, Options)
- SetIamPolicy(std::string const &, IamUpdater const &, Options)
- SetIamPolicy(google::iam::v1::SetIamPolicyRequest const &, Options)
- TestIamPermissions(std::string const &, std::vector< std::string > const &, Options)
- TestIamPermissions(google::iam::v1::TestIamPermissionsRequest const &, Options)
- AsyncCheckConsistency(std::string const &, std::string const &, Options)
- AsyncCheckConsistency(google::bigtable::admin::v2::CheckConsistencyRequest const &, Options)
-
BigtableTableAdminConnectionIdempotencyPolicy
-
BigtableTableAdminLimitedErrorCountRetryPolicy
-
BigtableTableAdminLimitedTimeRetryPolicy
-
Structs
-
BigtableInstanceAdminBackoffPolicyOption
-
BigtableInstanceAdminConnectionIdempotencyPolicyOption
-
BigtableInstanceAdminPollingPolicyOption
-
BigtableInstanceAdminRetryPolicyOption
-
BigtableTableAdminBackoffPolicyOption
-
BigtableTableAdminConnectionIdempotencyPolicyOption
-
BigtableTableAdminPollingPolicyOption
-
BigtableTableAdminRetryPolicyOption
-
google::cloud::bigtable_admin_mocks
-
google::cloud::bigtable_mocks
- Overview
-
Classes
-
MockDataConnection
- Overview
-
Functions
- virtual options()
- virtual Apply(std::string const &, SingleRowMutation)
- virtual AsyncApply(std::string const &, SingleRowMutation)
- virtual BulkApply(std::string const &, BulkMutation)
- virtual AsyncBulkApply(std::string const &, BulkMutation)
- virtual ReadRows(std::string const &, RowSet, std::int64_t, Filter)
- virtual ReadRowsFull(ReadRowsParams)
- virtual ReadRow(std::string const &, std::string, Filter)
- virtual CheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual AsyncCheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual SampleRows(std::string const &)
- virtual AsyncSampleRows(std::string const &)
- virtual ReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadRows(std::string const &, std::function< future< bool >(Row)>, std::function< void(Status)>, RowSet, std::int64_t, Filter)
- virtual AsyncReadRow(std::string const &, std::string, Filter)
Stay organized with collections Save and categorize content based on your preferences.
Getting Started with Bigtable Instance Administrative Operations
This example is a very simple "Instance Admin" application, which illustrates how to:
- Create a production instance.
- List the existing instances.
- Get the metadata for an instance.
- List all the clusters in an instance.
- Delete an instance.
Run the example
This example uses the Cloud Bigtable C++ Client Library to communicate with Cloud Bigtable.
To run the example program, follow the instructions for the example on GitHub.
The example uses the following headers:
#include "google/cloud/bigtable/admin/bigtable_instance_admin_client.h"
Define aliases
To make the example less verbose we define some aliases:
namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::future;
using ::google::cloud::Location;
using ::google::cloud::Project;
using ::google::cloud::Status;
using ::google::cloud::StatusOr;
Connect to the Cloud Bigtable Instance Admin Endpoint.
Create an object of type bigtable_admin::BigtableInstanceAdminClient
to obtain information about Instances, Clusters, Application Profiles, and to change the IAM permissions in a Cloud Bigtable instance:
auto instance_admin = cbta::BigtableInstanceAdminClient(
cbta::MakeBigtableInstanceAdminConnection());
See Also
https://cloud.google.com/bigtable/docs/instances-clusters-nodes for more information about Cloud Bigtable instances, clusters, and nodes.
See Also
https://cloud.google.com/bigtable/docs/app-profiles for more information about Cloud Bigtable application profiles.
See Also
https://cloud.google.com/bigtable/docs/access-control for more information about access controls via IAM permissions on Cloud Bigtable.
Check if an Instance already exists
std::cout << "\nCheck Instance exists:\n";
auto const project = Project(project_id);
std::string const project_name = project.FullName();
StatusOr<google::bigtable::admin::v2::ListInstancesResponse> instances =
instance_admin.ListInstances(project_name);
if (!instances) throw std::move(instances).status();
if (!instances->failed_locations().empty()) {
std::cerr
<< "The service tells us it has no information about these locations:";
for (auto const& failed_location : instances->failed_locations()) {
std::cerr << " " << failed_location;
}
std::cerr << ". Continuing anyway\n";
}
std::string const instance_name = cbt::InstanceName(project_id, instance_id);
auto is_instance =
[&instance_name](google::bigtable::admin::v2::Instance const& i) {
return i.name() == instance_name;
};
auto const& ins = instances->instances();
auto instance_exists =
std::find_if(ins.begin(), ins.end(), is_instance) != ins.end();
std::cout << "The instance " << instance_id
<< (instance_exists ? " already exists" : " does not exist")
<< "\n";
See Also
BigtableInstanceAdminClient::GetInstance()
for another operation to query if an instance exists.
Create a Production Instance
Use BigtableInstanceAdminClient::CreateInstance()
to create a new instance:
std::cout << "\nCreating a PRODUCTION Instance: ";
// production instance needs at least 3 nodes
google::bigtable::admin::v2::Cluster c;
c.set_location(Location(project, zone).FullName());
c.set_serve_nodes(3);
c.set_default_storage_type(google::bigtable::admin::v2::HDD);
google::bigtable::admin::v2::Instance in;
in.set_display_name("Sample Instance");
in.set_type(google::bigtable::admin::v2::Instance::PRODUCTION);
future<void> creation_done =
instance_admin
.CreateInstance(project_name, instance_id, std::move(in),
{{cluster_id, std::move(c)}})
.then(
[instance_id](
future<StatusOr<google::bigtable::admin::v2::Instance>> f) {
auto instance = f.get();
if (!instance) {
std::cerr << "Could not create instance " << instance_id
<< "\n";
throw std::move(instance).status();
}
std::cout << "Successfully created instance: "
<< instance->DebugString() << "\n";
});
// Note how this blocks until the instance is created. In production code
// you may want to perform this task asynchronously.
creation_done.get();
std::cout << "DONE\n";
List Instances in a Project
Use BigtableInstanceAdminClient::ListInstances()
to list all the instances in the project:
std::cout << "\nListing Instances:\n";
instances = instance_admin.ListInstances(project_name);
if (!instances) throw std::move(instances).status();
if (!instances->failed_locations().empty()) {
std::cerr
<< "The service tells us it has no information about these locations:";
for (auto const& failed_location : instances->failed_locations()) {
std::cerr << " " << failed_location;
}
std::cerr << ". Continuing anyway\n";
}
for (auto const& instance : instances->instances()) {
std::cout << " " << instance.name() << "\n";
}
std::cout << "DONE\n";
See Also
The gRPC API documentation for ListInstances has more details on when failed_locations
might be populated.
Get an Instance Metadata
Use BigtableInstanceAdminClient::GetInstance()
to retrieve the metadata of an instance:
std::cout << "\nGet Instance:\n";
auto instance = instance_admin.GetInstance(instance_name);
if (!instance) throw std::move(instance).status();
std::cout << "Instance details :\n" << instance->DebugString() << "\n";
List clusters in an Instance
Use BigtableInstanceAdminClient::ListClusters()
to list all the clusters in an instance (or all the clusters in a project):
std::cout << "\nListing Clusters:\n";
StatusOr<google::bigtable::admin::v2::ListClustersResponse> cluster_list =
instance_admin.ListClusters(instance_name);
if (!cluster_list) throw std::move(cluster_list).status();
if (!cluster_list->failed_locations().empty()) {
std::cout << "The Cloud Bigtable service reports that the following "
"locations are temporarily unavailable and no information "
"about clusters in these locations can be obtained:\n";
for (auto const& failed_location : cluster_list->failed_locations()) {
std::cout << failed_location << "\n";
}
}
std::cout << "Cluster Name List:\n";
for (auto const& cluster : cluster_list->clusters()) {
std::cout << "Cluster Name: " << cluster.name() << "\n";
}
std::cout << "DONE\n";
See Also
The bigtable_admin::BigtableInstanceAdminClient
class also has functions to create, update, delete, and retrieve the metadata of a Cluster.
See Also
The gRPC API documentation for ListClusters has more details on when failed_locations
might be populated.
Delete an instance
Finally, use BigtableInstanceAdminClient::DeleteInstance()
to delete an instance:
std::cout << "Deleting instance " << instance_id << "\n";
Status delete_status = instance_admin.DeleteInstance(instance_name);
if (!delete_status.ok()) throw std::runtime_error(delete_status.message());
std::cout << "DONE\n";
Warning: Note that this function will delete the instance even if it contains tables with data in them. For mission critical data you must ensure that the data is backed up before calling this function. Put it all together
Here is the full example
#include "google/cloud/bigtable/admin/bigtable_instance_admin_client.h"
#include "google/cloud/bigtable/examples/bigtable_examples_common.h"
#include "google/cloud/bigtable/resource_names.h"
#include "google/cloud/bigtable/testing/cleanup_stale_resources.h"
#include "google/cloud/bigtable/testing/random_names.h"
#include "google/cloud/internal/getenv.h"
#include "google/cloud/internal/random.h"
#include "google/cloud/location.h"
#include "google/cloud/log.h"
#include "google/cloud/project.h"
#include <algorithm>
#include <iostream>
namespace {
using ::google::cloud::bigtable::examples::Usage;
void BigtableHelloInstance(std::vector<std::string> const& argv) {
if (argv.size() != 4) {
throw Usage{
"bigtable-hello-instance <project-id> <instance-id> <cluster-id> "
"<zone>"};
}
std::string const& project_id = argv[0];
std::string const& instance_id = argv[1];
std::string const& cluster_id = argv[2];
std::string const& zone = argv[3];
namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::future;
using ::google::cloud::Location;
using ::google::cloud::Project;
using ::google::cloud::Status;
using ::google::cloud::StatusOr;
// Connect to the Cloud Bigtable admin endpoint.
auto instance_admin = cbta::BigtableInstanceAdminClient(
cbta::MakeBigtableInstanceAdminConnection());
std::cout << "\nCheck Instance exists:\n";
auto const project = Project(project_id);
std::string const project_name = project.FullName();
StatusOr<google::bigtable::admin::v2::ListInstancesResponse> instances =
instance_admin.ListInstances(project_name);
if (!instances) throw std::move(instances).status();
if (!instances->failed_locations().empty()) {
std::cerr
<< "The service tells us it has no information about these locations:";
for (auto const& failed_location : instances->failed_locations()) {
std::cerr << " " << failed_location;
}
std::cerr << ". Continuing anyway\n";
}
std::string const instance_name = cbt::InstanceName(project_id, instance_id);
auto is_instance =
[&instance_name](google::bigtable::admin::v2::Instance const& i) {
return i.name() == instance_name;
};
auto const& ins = instances->instances();
auto instance_exists =
std::find_if(ins.begin(), ins.end(), is_instance) != ins.end();
std::cout << "The instance " << instance_id
<< (instance_exists ? " already exists" : " does not exist")
<< "\n";
// Create instance if it does not exist
if (!instance_exists) {
std::cout << "\nCreating a PRODUCTION Instance: ";
// production instance needs at least 3 nodes
google::bigtable::admin::v2::Cluster c;
c.set_location(Location(project, zone).FullName());
c.set_serve_nodes(3);
c.set_default_storage_type(google::bigtable::admin::v2::HDD);
google::bigtable::admin::v2::Instance in;
in.set_display_name("Sample Instance");
in.set_type(google::bigtable::admin::v2::Instance::PRODUCTION);
future<void> creation_done =
instance_admin
.CreateInstance(project_name, instance_id, std::move(in),
{{cluster_id, std::move(c)}})
.then(
[instance_id](
future<StatusOr<google::bigtable::admin::v2::Instance>> f) {
auto instance = f.get();
if (!instance) {
std::cerr << "Could not create instance " << instance_id
<< "\n";
throw std::move(instance).status();
}
std::cout << "Successfully created instance: "
<< instance->DebugString() << "\n";
});
// Note how this blocks until the instance is created. In production code
// you may want to perform this task asynchronously.
creation_done.get();
std::cout << "DONE\n";
}
std::cout << "\nListing Instances:\n";
instances = instance_admin.ListInstances(project_name);
if (!instances) throw std::move(instances).status();
if (!instances->failed_locations().empty()) {
std::cerr
<< "The service tells us it has no information about these locations:";
for (auto const& failed_location : instances->failed_locations()) {
std::cerr << " " << failed_location;
}
std::cerr << ". Continuing anyway\n";
}
for (auto const& instance : instances->instances()) {
std::cout << " " << instance.name() << "\n";
}
std::cout << "DONE\n";
std::cout << "\nGet Instance:\n";
auto instance = instance_admin.GetInstance(instance_name);
if (!instance) throw std::move(instance).status();
std::cout << "Instance details :\n" << instance->DebugString() << "\n";
std::cout << "\nListing Clusters:\n";
StatusOr<google::bigtable::admin::v2::ListClustersResponse> cluster_list =
instance_admin.ListClusters(instance_name);
if (!cluster_list) throw std::move(cluster_list).status();
if (!cluster_list->failed_locations().empty()) {
std::cout << "The Cloud Bigtable service reports that the following "
"locations are temporarily unavailable and no information "
"about clusters in these locations can be obtained:\n";
for (auto const& failed_location : cluster_list->failed_locations()) {
std::cout << failed_location << "\n";
}
}
std::cout << "Cluster Name List:\n";
for (auto const& cluster : cluster_list->clusters()) {
std::cout << "Cluster Name: " << cluster.name() << "\n";
}
std::cout << "DONE\n";
std::cout << "Deleting instance " << instance_id << "\n";
Status delete_status = instance_admin.DeleteInstance(instance_name);
if (!delete_status.ok()) throw std::runtime_error(delete_status.message());
std::cout << "DONE\n";
}
void RunAll(std::vector<std::string> const& argv) {
namespace examples = ::google::cloud::bigtable::examples;
namespace cbta = ::google::cloud::bigtable_admin;
if (!argv.empty()) throw Usage{"auto"};
if (!examples::RunAdminIntegrationTests()) return;
examples::CheckEnvironmentVariablesAreSet({
"GOOGLE_CLOUD_PROJECT",
"GOOGLE_CLOUD_CPP_BIGTABLE_TEST_ZONE_A",
});
auto const project_id =
google::cloud::internal::GetEnv("GOOGLE_CLOUD_PROJECT").value();
auto const zone_a =
google::cloud::internal::GetEnv("GOOGLE_CLOUD_CPP_BIGTABLE_TEST_ZONE_A")
.value();
auto generator = google::cloud::internal::DefaultPRNG(std::random_device{}());
google::cloud::bigtable::testing::CleanupStaleInstances(
cbta::MakeBigtableInstanceAdminConnection(), project_id);
auto const instance_id =
google::cloud::bigtable::testing::RandomInstanceId(generator);
auto const cluster_id = instance_id + "-c1";
std::cout << "\nRunning the BigtableHelloInstance() example" << std::endl;
BigtableHelloInstance({project_id, instance_id, cluster_id, zone_a});
}
} // namespace
int main(int argc, char* argv[]) try {
google::cloud::bigtable::examples::Example example({
{"auto", RunAll},
{"hello-instance", BigtableHelloInstance},
});
return example.Run(argc, argv);
} catch (std::exception const& ex) {
std::cerr << ex.what() << "\n";
::google::cloud::LogSink::Instance().Flush();
return 1;
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["This page provides a guide on managing Cloud Bigtable instances using the C++ Client Library, including examples of how to create, list, retrieve metadata, and delete instances."],["The latest version of the documentation available is version 2.37.0-rc, with the list including multiple past versions available up to and including 2.11.0."],["The provided example code demonstrates how to check for the existence of an instance, create a production instance with specific configurations, and manage clusters within that instance."],["The examples also show how to use the `BigtableInstanceAdminClient` class to interact with Cloud Bigtable, including listing instances and clusters, and getting instance details."],["The guide warns that deleting an instance is permanent, even if data is stored within, so backing up any critical data is essential before deletion."]]],[]]
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4