bigtable/api/Snippets/Reads.cs (118 lines of code) (raw):

// Copyright (c) 2020 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. // [START bigtable_reads_print] // [START bigtable_reads_imports] using Google.Cloud.Bigtable.Common.V2; using Google.Cloud.Bigtable.V2; using System; using System.Linq; using System.Threading.Tasks; // [END bigtable_reads_imports] namespace Reads { public class ReadSnippets { // Write your code here. // [START_EXCLUDE] // [START bigtable_reads_row] /// <summary> /// /// Reads one row from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public string ReadRow( string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); Row row = bigtableClient.ReadRow(tableName, rowKey: "phone#4c410523#20190501"); return PrintRow(row); } // [END bigtable_reads_row] // [START bigtable_reads_row_partial] /// <summary> /// /// Reads part of one row from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public string ReadRowPartial(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); string rowkey = "phone#4c410523#20190501"; RowFilter filter = RowFilters.ColumnQualifierExact("os_build"); Row row = bigtableClient.ReadRow(tableName, rowkey, filter); return PrintRow(row); } // [END bigtable_reads_row_partial] // [START bigtable_reads_rows] /// <summary> /// /// Reads multiple rows from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public async Task<string> ReadRows(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); RowSet rowSet = RowSet.FromRowKeys("phone#4c410523#20190501", "phone#4c410523#20190502"); ReadRowsStream readRowsStream = bigtableClient.ReadRows(tableName, rowSet); string result = ""; await foreach(var row in readRowsStream) { result += PrintRow(row); } return result; } // [END bigtable_reads_rows] // [START bigtable_reads_row_range] /// <summary> /// /// Reads a range of rows from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public async Task<string> ReadRowRange(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { string start = "phone#4c410523#20190501"; string end = "phone#4c410523#201906201"; BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); RowSet rowSet = RowSet.FromRowRanges(RowRange.ClosedOpen(start, end)); ReadRowsStream readRowsStream = bigtableClient.ReadRows(tableName, rowSet); string result = ""; await foreach (var row in readRowsStream) { result += PrintRow(row); } return result; } // [END bigtable_reads_row_range] // [START bigtable_reads_row_ranges] /// <summary> /// /// Reads multiple ranges of rows from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public async Task<string> ReadRowRanges(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); RowSet rowSet = RowSet.FromRowRanges(RowRange.ClosedOpen("phone#4c410523#20190501", "phone#4c410523#20190601"), RowRange.ClosedOpen("phone#5c10102#20190501", "phone#5c10102#20190601")); ReadRowsStream readRowsStream = bigtableClient.ReadRows(tableName, rowSet); string result = ""; await foreach (var row in readRowsStream) { result += PrintRow(row); } return result; } // [END bigtable_reads_row_ranges] // [START bigtable_reads_prefix] /// <summary> /// /// Reads rows starting with a prefix from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public async Task<string> ReadPrefix(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); string prefix = "phone"; char prefixEndChar = prefix[prefix.Length - 1]; prefixEndChar++; string end = prefix.Substring(0, prefix.Length - 1) + prefixEndChar; RowSet rowSet = RowSet.FromRowRanges(RowRange.Closed(prefix, end)); ReadRowsStream readRowsStream = bigtableClient.ReadRows(tableName, rowSet); string result = ""; await foreach (var row in readRowsStream) { result += PrintRow(row); } return result; } // [END bigtable_reads_prefix] // [START bigtable_reads_filter] /// <summary> /// /// Reads using a filter from an existing table. ///</summary> /// <param name="projectId">Your Google Cloud Project ID.</param> /// <param name="instanceId">Your Google Cloud Bigtable Instance ID.</param> /// <param name="tableId">Your Google Cloud Bigtable table ID.</param> public async Task<string> ReadFilter(string projectId = "YOUR-PROJECT-ID", string instanceId = "YOUR-INSTANCE-ID", string tableId = "YOUR-TABLE-ID") { BigtableClient bigtableClient = BigtableClient.Create(); TableName tableName = new TableName(projectId, instanceId, tableId); RowFilter filter = RowFilters.ValueRegex("PQ2A.*"); ReadRowsStream readRowsStream = bigtableClient.ReadRows(tableName, filter: filter); string result = ""; await foreach (var row in readRowsStream) { result += PrintRow(row); } return result; } // [END bigtable_reads_filter] // [END_EXCLUDE] public string PrintRow(Row row) { string result = $"Reading data for {row.Key.ToStringUtf8()}\n"; foreach (Family family in row.Families) { result += $"Column Family {family.Name}\n"; foreach (Column column in family.Columns) { foreach (Cell cell in column.Cells) { result += $"\t{column.Qualifier.ToStringUtf8()}: {cell.Value.ToStringUtf8()} @{cell.TimestampMicros} {cell.Labels}\n"; } } } result += "\n"; Console.WriteLine(result); return result; } } } // [END bigtable_reads_print]