Obtenir ou créer une famille de colonnes

Créer automatiquement une famille de colonnes si elle n'existe pas.

Exemple de code

C++

Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la page Bibliothèques clientes Bigtable.

Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::bigtable::admin::v2::ModifyColumnFamiliesRequest;
using ::google::cloud::StatusOr;
[](cbta::BigtableTableAdminClient admin, std::string const& project_id,
   std::string const& instance_id, std::string const& table_id,
   std::string const& family_name) {
  std::string table_name = cbt::TableName(project_id, instance_id, table_id);

  google::bigtable::admin::v2::GetTableRequest r;
  r.set_name(table_name);
  r.set_view(google::bigtable::admin::v2::Table::FULL);

  StatusOr<google::bigtable::admin::v2::Table> schema =
      admin.GetTable(std::move(r));

  if (!schema) throw std::move(schema).status();
  auto pos = schema->column_families().find(family_name);
  if (pos == schema->column_families().end()) {
    // Try to create the column family instead:
    ModifyColumnFamiliesRequest::Modification mod;
    mod.set_id(family_name);
    mod.mutable_create()->mutable_gc_rule()->set_max_num_versions(5);

    auto modified = admin.ModifyColumnFamilies(table_name, {std::move(mod)});
    if (!modified) throw std::move(schema).status();
    schema = *std::move(modified);
    pos = schema->column_families().find(family_name);
  }

  if (pos == schema->column_families().end()) {
    throw std::runtime_error("GetOrCreateFamily failed");
  }

  google::bigtable::admin::v2::ColumnFamily family = pos->second;
  std::cout << "Column family name: " << pos->first
            << "\nColumn family details: " << family.DebugString() << "\n";
}

Étapes suivantes

Pour rechercher et filtrer des exemples de code pour d'autres produits Google Cloud, consultez l'exemple de navigateur Google Cloud.