List column families
Stay organized with collections
Save and categorize content based on your preferences.
List column families.
Code sample
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.
[[["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"]],[],[[["\u003cp\u003eThis content demonstrates how to list column families within a Bigtable table using various programming languages such as C++, Java, Node.js, PHP, Python, and Ruby.\u003c/p\u003e\n"],["\u003cp\u003eThe code samples provided show how to retrieve and display column family names and their associated metadata, including garbage collection (GC) rules.\u003c/p\u003e\n"],["\u003cp\u003eInstructions on setting up authentication for Bigtable using Application Default Credentials are included and links to further details are provided.\u003c/p\u003e\n"],["\u003cp\u003eInstructions for accessing client libraries are provided, linking to the documentation.\u003c/p\u003e\n"],["\u003cp\u003eThe content also directs users to the Google Cloud sample browser for more code samples related to other Google Cloud products.\u003c/p\u003e\n"]]],[],null,["List column families.\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::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 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 for (auto const& kv : schema-\u003ecolumn_families()) {\n std::string const& column_family_name = kv.first;\n google::bigtable::admin::v2::ColumnFamily const& family = kv.second;\n std::cout \u003c\u003c \"Column family name: \" \u003c\u003c column_family_name \u003c\u003c \"\\n\"\n \u003c\u003c \"Column family metadata: \" \u003c\u003c family.DebugString() \u003c\u003c \"\\n\";\n }\n }\n\nJava\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 // Lists all families in the table with GC rules.\n try {\n Table table = adminClient.getTable(tableId);\n Collection\u003cColumnFamily\u003e columnFamilies = table.getColumnFamilies();\n for (ColumnFamily columnFamily : columnFamilies) {\n System.out.printf(\n \"Column family: %s%nGC Rule: %s%n\",\n columnFamily.getId(), columnFamily.getGCRule().toString());\n }\n } catch (NotFoundException e) {\n System.err.println(\n \"Failed to list column families from a non-existent table: \" + e.getMessage());\n }\n\nNode.js\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 // List all families in the table with GC rules\n const [families] = await table.getFamilies();\n // Print ID, GC Rule for each column family\n families.forEach(family =\u003e {\n const metadata = JSON.stringify(family.metadata);\n console.log(`Column family: ${family.id}, Metadata: ${metadata}`);\n /* Sample output:\n Column family: projects/{{projectId}}/instances/my-instance/tables/my-table/columnFamilies/cf4,\n Metadata: {\"gcRule\":{\"intersection\":{\"rules\":[{\"maxAge\":{\"seconds\":\"432000\",\"nanos\":0},\"rule\":\"maxAge\"},{\"maxNumVersions\":2,\"rule\":\"maxNumVersions\"}]},\"rule\":\"intersection\"}}\n */\n });\n\nPHP\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 use Google\\Cloud\\Bigtable\\Admin\\V2\\Client\\BigtableTableAdminClient;\n use Google\\Cloud\\Bigtable\\Admin\\V2\\GetTableRequest;\n\n /**\n * List column families of a table\n *\n * @param string $projectId The Google Cloud project ID\n * @param string $instanceId The ID of the Bigtable instance\n * @param string $tableId The ID of the table for which the families need to be displayed\n */\n function list_column_families(\n string $projectId,\n string $instanceId,\n string $tableId\n ): void {\n $tableAdminClient = new BigtableTableAdminClient();\n\n $tableName = $tableAdminClient-\u003etableName($projectId, $instanceId, $tableId);\n $getTableRequest = (new GetTableRequest())\n -\u003esetName($tableName);\n\n $table = $tableAdminClient-\u003egetTable($getTableRequest);\n $columnFamilies = $table-\u003egetColumnFamilies()-\u003egetIterator();\n\n foreach ($columnFamilies as $k =\u003e $columnFamily) {\n printf('Column Family: %s' . PHP_EOL, $k);\n print('GC Rule:' . PHP_EOL);\n printf('%s' . PHP_EOL, $columnFamily-\u003eserializeToJsonString());\n }\n }\n\nPython\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 print(\"Printing Column Family and GC Rule for all column families...\")\n column_families = table.list_column_families()\n for column_family_name, gc_rule in sorted(column_families.items()):\n print(\"Column Family:\", column_family_name)\n print(\"GC Rule:\")\n print(gc_rule.to_pb())\n # Sample output:\n # Column Family: cf4\n # GC Rule:\n # gc_rule {\n # intersection {\n # rules {\n # max_age {\n # seconds: 432000\n # }\n # }\n # rules {\n # max_num_versions: 2\n # }\n # }\n # }\n\nRuby\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 table = bigtable.table(\n instance_id,\n table_id,\n view: :FULL,\n perform_lookup: true\n )\n table.column_families.each do |name, family|\n puts \"Column family name: #{name}\"\n puts \"GC Rule:\"\n p family.gc_rule\n end\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)."]]