获取或创建列族
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","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)."]]