Obtenir ou créer une famille de colonnes
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Créer automatiquement une famille de colonnes si elle n'existe pas.
Exemple de code
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis code snippet demonstrates how to automatically create a column family in Bigtable if it does not already exist.\u003c/p\u003e\n"],["\u003cp\u003eThe code uses the Bigtable Admin client library to check for the existence of a specified column family.\u003c/p\u003e\n"],["\u003cp\u003eIf the column family is not found, the code proceeds to create it with a maximum of 5 versions.\u003c/p\u003e\n"],["\u003cp\u003eThe sample also shows you how to retrieve the column family details.\u003c/p\u003e\n"],["\u003cp\u003eThe code sample can be used to learn about installing and using the Bigtable client library, and setting up authentication for a local development environment.\u003c/p\u003e\n"]]],[],null,["Autocreate a column family if it does not exist.\n\nCode sample \n\nC++\n\n\nTo learn how to install and use the client library for Bigtable, see\n[Bigtable client libraries](/bigtable/docs/reference/libraries).\n\n\nTo authenticate to Bigtable, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n namespace cbt = ::google::cloud::bigtable;\n namespace cbta = ::google::cloud::bigtable_admin;\n using ::google::bigtable::admin::v2::ModifyColumnFamiliesRequest;\n using ::google::cloud::StatusOr;\n [](cbta::BigtableTableAdminClient admin, std::string const& project_id,\n std::string const& instance_id, std::string const& table_id,\n std::string const& family_name) {\n std::string table_name = cbt::TableName(project_id, instance_id, table_id);\n\n google::bigtable::admin::v2::GetTableRequest r;\n r.set_name(table_name);\n r.set_view(google::bigtable::admin::v2::Table::FULL);\n\n StatusOr\u003cgoogle::bigtable::admin::v2::Table\u003e schema =\n admin.GetTable(std::move(r));\n\n if (!schema) throw std::move(schema).status();\n auto pos = schema-\u003ecolumn_families().find(family_name);\n if (pos == schema-\u003ecolumn_families().end()) {\n // Try to create the column family instead:\n ModifyColumnFamiliesRequest::Modification mod;\n mod.set_id(family_name);\n mod.mutable_create()-\u003emutable_gc_rule()-\u003eset_max_num_versions(5);\n\n auto modified = admin.ModifyColumnFamilies(table_name, {std::move(mod)});\n if (!modified) throw std::move(schema).status();\n schema = *std::move(modified);\n pos = schema-\u003ecolumn_families().find(family_name);\n }\n\n if (pos == schema-\u003ecolumn_families().end()) {\n throw std::runtime_error(\"GetOrCreateFamily failed\");\n }\n\n google::bigtable::admin::v2::ColumnFamily family = pos-\u003esecond;\n std::cout \u003c\u003c \"Column family name: \" \u003c\u003c pos-\u003efirst\n \u003c\u003c \"\\nColumn family details: \" \u003c\u003c family.DebugString() \u003c\u003c \"\\n\";\n }\n\nWhat's next\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=bigtable)."]]