Module: Google::Cloud::Bigtable::ReadOperations
- Included in:
- Table
- Defined in:
- lib/google/cloud/bigtable/read_operations.rb
Overview
ReadOperations
Collection of read-rows APIs.
- Sample row key
- Read row
- Read rows
Instance Method Summary collapse
-
#filter ⇒ Google::Cloud::Bigtable::RowRange
Gets a row filter.
-
#new_column_range(family) ⇒ Google::Cloud::Bigtable::ColumnRange
Gets a new instance of ColumnRange.
-
#new_row_range ⇒ Google::Cloud::Bigtable::RowRange
Gets a new instance of RowRange.
-
#new_value_range ⇒ Google::Cloud::Bigtable::ValueRange
Creates a new instance of ValueRange.
-
#read_row(key, filter: nil) ⇒ Google::Cloud::Bigtable::Row
Reads a single row by row key.
-
#read_rows(keys: nil, ranges: nil, filter: nil, limit: nil, &block) ⇒ Array<Google::Cloud::Bigtable::Row> | :yields: row
Reads rows.
-
#sample_row_keys ⇒ :yields: sample_row_key
Reads sample row keys.
Instance Method Details
#filter ⇒ Google::Cloud::Bigtable::RowRange
Gets a row filter.
303 304 305 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 303 def filter Google::Cloud::Bigtable::RowFilter end |
#new_column_range(family) ⇒ Google::Cloud::Bigtable::ColumnRange
Gets a new instance of ColumnRange.
256 257 258 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 256 def new_column_range family Google::Cloud::Bigtable::ColumnRange.new family end |
#new_row_range ⇒ Google::Cloud::Bigtable::RowRange
Gets a new instance of RowRange.
286 287 288 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 286 def new_row_range Google::Cloud::Bigtable::RowRange.new end |
#new_value_range ⇒ Google::Cloud::Bigtable::ValueRange
Creates a new instance of ValueRange.
225 226 227 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 225 def new_value_range Google::Cloud::Bigtable::ValueRange.new end |
#read_row(key, filter: nil) ⇒ Google::Cloud::Bigtable::Row
Reads a single row by row key.
195 196 197 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 195 def read_row key, filter: nil read_rows(keys: [key], filter: filter).first end |
#read_rows(keys: nil, ranges: nil, filter: nil, limit: nil, &block) ⇒ Array<Google::Cloud::Bigtable::Row> | :yields: row
Reads rows.
Streams back the contents of all requested rows in key order, optionally
applying the same Reader filter to each.
read_rows
, row_ranges
and filter
if not specified, reads from all rows.
See Google::Cloud::Bigtable::RowFilter for filter types.
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 149 def read_rows keys: nil, ranges: nil, filter: nil, limit: nil, &block return enum_for :read_rows, keys: keys, ranges: ranges, filter: filter, limit: limit unless block_given? row_set = build_row_set keys, ranges rows_limit = limit rows_filter = filter.to_grpc if filter rows_reader = RowsReader.new self begin rows_reader.read rows: row_set, filter: rows_filter, rows_limit: rows_limit, &block rescue *RowsReader::RETRYABLE_ERRORS => e rows_reader.retry_count += 1 raise Google::Cloud::Error.from_error(e) unless rows_reader.retryable? resumption_option = rows_reader. limit, row_set rows_limit = resumption_option.rows_limit row_set = resumption_option.row_set retry unless resumption_option.complete? end end |
#sample_row_keys ⇒ :yields: sample_row_key
Reads sample row keys.
Returns a sample of row keys in the table. The returned row keys will delimit contiguous sections of the table of approximately equal size. The sections can be used to break up the data for distributed tasks like MapReduces.
60 61 62 63 64 65 66 67 |
# File 'lib/google/cloud/bigtable/read_operations.rb', line 60 def sample_row_keys return enum_for :sample_row_keys unless block_given? response = service.sample_row_keys path, app_profile_id: @app_profile_id response.each do |grpc| yield SampleRowKey.from_grpc grpc end end |