Read using an interleave filter
Stay organized with collections
Save and categorize content based on your preferences.
Creates a composite filter using interleaving.
Explore further
For detailed documentation that includes this code sample, see the following:
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 code demonstrates how to create a composite filter using the interleaving technique in Bigtable.\u003c/p\u003e\n"],["\u003cp\u003eInterleaving allows combining multiple filters, such as matching a specific value or column qualifier, into a single filter.\u003c/p\u003e\n"],["\u003cp\u003eThe examples showcase filtering for cells with the value "true" or with the column qualifier "os_build".\u003c/p\u003e\n"],["\u003cp\u003eMultiple programming languages are used, like C++, C#, Go, Java, Node.js, PHP, Python, and Ruby to show how to apply this type of filter.\u003c/p\u003e\n"],["\u003cp\u003eTo use this functionality, it requires setting up Application Default Credentials and using the Bigtable client libraries, as detailed in the documentation.\u003c/p\u003e\n"]]],[],null,["# Read using an interleave filter\n\nCreates a composite filter using interleaving.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Use filters](/bigtable/docs/using-filters)\n\nCode sample\n-----------\n\n### C++\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 using ::google::cloud::StatusOr;\n [](cbt::Table table) {\n cbt::Filter filter = cbt::Filter::Interleave(\n cbt::Filter::ValueRegex(\"true\"), cbt::Filter::ColumnRegex(\"os_build\"));\n // Read and print the rows.\n for (StatusOr\u003ccbt::Row\u003e& row :\n table.ReadRows(cbt::RowSet(cbt::RowRange::InfiniteRange()), filter)) {\n if (!row) throw std::move(row).status();\n std::cout \u003c\u003c row-\u003erow_key() \u003c\u003c \" = \";\n for (auto const& cell : row-\u003ecells()) {\n std::cout \u003c\u003c \"[\" \u003c\u003c cell.family_name() \u003c\u003c \", \"\n \u003c\u003c cell.column_qualifier() \u003c\u003c \", \" \u003c\u003c cell.value() \u003c\u003c \"],\";\n }\n std::cout \u003c\u003c \"\\n\";\n }\n }\n\n### C#\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 /// \u003csummary\u003e\n /// /// Read using an interleave filter from an existing table.\n ///\u003c/summary\u003e\n /// \u003cparam name=\"projectId\"\u003eYour Google Cloud Project ID.\u003c/param\u003e\n /// \u003cparam name=\"instanceId\"\u003eYour Google Cloud Bigtable Instance ID.\u003c/param\u003e\n /// \u003cparam name=\"tableId\"\u003eYour Google Cloud Bigtable table ID.\u003c/param\u003e\n\n public Task\u003cstring\u003e FilterComposingInterleave(string projectId, string instanceId, string tableId)\n {\n // A filter that matches cells with the value true OR with the column qualifier os_build\n RowFilter filter = RowFilters.Interleave(RowFilters.ValueExact(\"true\"), RowFilters.ColumnQualifierExact(\"os_build\"));\n return ReadFilter(projectId, instanceId, tableId, filter);\n }\n\n### Go\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 func filterComposingInterleave(w io.Writer, projectID, instanceID string, tableName string) error {\n \tfilter := bigtable.InterleaveFilters(bigtable.ValueFilter(\"true\"), bigtable.ColumnFilter(\"os_build\"))\n \treturn readWithFilter(w, projectID, instanceID, tableName, filter)\n }\n\n### Java\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 public static void filterComposingInterleave() {\n // TODO(developer): Replace these variables before running the sample.\n String projectId = \"my-project-id\";\n String instanceId = \"my-instance-id\";\n String tableId = \"mobile-time-series\";\n filterComposingInterleave(projectId, instanceId, tableId);\n }\n\n public static void filterComposingInterleave(\n String projectId, String instanceId, String tableId) {\n // A filter that matches cells with the value true OR with the column qualifier os_build\n Filter filter =\n FILTERS\n .interleave()\n .filter(FILTERS.value().exactMatch(\"true\"))\n .filter(FILTERS.qualifier().exactMatch(\"os_build\"));\n readFilter(projectId, instanceId, tableId, filter);\n }\n\n### Node.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 const filter = {\n interleave: [\n {\n value: 'true',\n },\n {column: 'os_build'},\n ],\n };\n readWithFilter(filter);\n\n### PHP\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\\BigtableClient;\n use Google\\Cloud\\Bigtable\\Filter;\n\n /**\n * Create a composite filter using interleaving\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 to read from\n */\n function filter_composing_interleave(\n string $projectId,\n string $instanceId,\n string $tableId\n ): void {\n // Connect to an existing table with an existing instance.\n $dataClient = new BigtableClient([\n 'projectId' =\u003e $projectId,\n ]);\n $table = $dataClient-\u003etable($instanceId, $tableId);\n\n $filter = Filter::interleave()\n -\u003eaddFilter(Filter::value()-\u003eexactMatch('1'))\n -\u003eaddFilter(Filter::qualifier()-\u003eexactMatch('os_build'));\n\n $rows = $table-\u003ereadRows([\n 'filter' =\u003e $filter\n ]);\n\n foreach ($rows as $key =\u003e $row) {\n // The \"print_row\" helper function is defined in https://cloud.google.com/bigtable/docs/samples/bigtable-reads-print\n print_row($key, $row);\n }\n }\n\n### Python\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 def filter_composing_interleave(project_id, instance_id, table_id):\n from google.cloud import https://cloud.google.com/python/docs/reference/bigtable/latest/\n from google.cloud.bigtable import row_filters\n\n client = https://cloud.google.com/python/docs/reference/bigtable/latest/.https://cloud.google.com/python/docs/reference/bigtable/latest/google.cloud.bigtable.client.Client.html(project=project_id, admin=True)\n instance = https://cloud.google.com/python/docs/reference/bigtable/latest/google.cloud.bigtable.client.html.https://cloud.google.com/python/docs/reference/bigtable/latest/google.cloud.bigtable.client.Client.html#google_cloud_bigtable_client_Client_instance(instance_id)\n table = instance.table(table_id)\n\n rows = table.read_rows(\n filter_=row_filters.RowFilterUnion(\n filters=[\n row_filters.ValueRegexFilter(\"true\"),\n row_filters.ColumnQualifierRegexFilter(\"os_build\"),\n ]\n )\n )\n for row in rows:\n print_row(row)\n\n### Ruby\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 # instance_id = \"my-instance\"\n # table_id = \"my-table\"\n filter = Google::Cloud::Bigtable::RowFilter.interleave.value(\"true\").qualifier(\"os_build\")\n read_with_filter instance_id, table_id, filter\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=bigtable)."]]