google-cloud-bigtable 0.6.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +4 -26
- data/CHANGELOG.md +85 -0
- data/CONTRIBUTING.md +1 -1
- data/OVERVIEW.md +388 -19
- data/lib/google-cloud-bigtable.rb +19 -22
- data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +1 -1
- data/lib/google/bigtable/v2/bigtable_pb.rb +3 -0
- data/lib/google/bigtable/v2/bigtable_services_pb.rb +1 -1
- data/lib/google/cloud/bigtable.rb +11 -17
- data/lib/google/cloud/bigtable/admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +42 -21
- data/lib/google/cloud/bigtable/app_profile.rb +162 -96
- data/lib/google/cloud/bigtable/app_profile/job.rb +5 -8
- data/lib/google/cloud/bigtable/app_profile/list.rb +18 -12
- data/lib/google/cloud/bigtable/chunk_processor.rb +24 -36
- data/lib/google/cloud/bigtable/cluster.rb +45 -18
- data/lib/google/cloud/bigtable/cluster/job.rb +3 -7
- data/lib/google/cloud/bigtable/cluster/list.rb +22 -20
- data/lib/google/cloud/bigtable/column_family.rb +18 -231
- data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
- data/lib/google/cloud/bigtable/column_range.rb +15 -7
- data/lib/google/cloud/bigtable/convert.rb +12 -4
- data/lib/google/cloud/bigtable/errors.rb +4 -1
- data/lib/google/cloud/bigtable/gc_rule.rb +188 -69
- data/lib/google/cloud/bigtable/instance.rb +209 -189
- data/lib/google/cloud/bigtable/instance/cluster_map.rb +17 -13
- data/lib/google/cloud/bigtable/instance/job.rb +6 -5
- data/lib/google/cloud/bigtable/instance/list.rb +18 -13
- data/lib/google/cloud/bigtable/longrunning_job.rb +7 -1
- data/lib/google/cloud/bigtable/mutation_entry.rb +36 -39
- data/lib/google/cloud/bigtable/mutation_operations.rb +90 -73
- data/lib/google/cloud/bigtable/policy.rb +9 -5
- data/lib/google/cloud/bigtable/project.rb +87 -196
- data/lib/google/cloud/bigtable/read_modify_write_rule.rb +15 -10
- data/lib/google/cloud/bigtable/read_operations.rb +42 -59
- data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
- data/lib/google/cloud/bigtable/row.rb +32 -21
- data/lib/google/cloud/bigtable/row_filter.rb +80 -35
- data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +119 -68
- data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +8 -2
- data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +117 -66
- data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +24 -9
- data/lib/google/cloud/bigtable/row_range.rb +5 -0
- data/lib/google/cloud/bigtable/rows_mutator.rb +14 -21
- data/lib/google/cloud/bigtable/rows_reader.rb +23 -18
- data/lib/google/cloud/bigtable/sample_row_key.rb +6 -3
- data/lib/google/cloud/bigtable/service.rb +200 -253
- data/lib/google/cloud/bigtable/status.rb +76 -0
- data/lib/google/cloud/bigtable/table.rb +158 -262
- data/lib/google/cloud/bigtable/table/cluster_state.rb +17 -6
- data/lib/google/cloud/bigtable/table/list.rb +16 -9
- data/lib/google/cloud/bigtable/v2.rb +1 -1
- data/lib/google/cloud/bigtable/v2/bigtable_client.rb +12 -12
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +16 -13
- data/lib/google/cloud/bigtable/value_range.rb +19 -13
- data/lib/google/cloud/bigtable/version.rb +1 -1
- metadata +67 -25
- data/lib/google/cloud/bigtable/table/column_family_map.rb +0 -70
@@ -18,24 +18,29 @@
|
|
18
18
|
module Google
|
19
19
|
module Cloud
|
20
20
|
module Bigtable
|
21
|
+
##
|
21
22
|
# # Row
|
22
23
|
#
|
23
24
|
# Row structure based on merged cells using read row state.
|
25
|
+
#
|
24
26
|
class Row
|
27
|
+
##
|
25
28
|
# Cell
|
26
29
|
#
|
27
30
|
# Row cell built from data chunks.
|
31
|
+
#
|
28
32
|
class Cell
|
29
33
|
attr_reader :family, :qualifier, :value, :labels, :timestamp
|
30
34
|
|
35
|
+
##
|
31
36
|
# Creates a row cell instance.
|
32
37
|
#
|
33
|
-
# @param family [String] Column family name
|
34
|
-
# @param qualifier [String] Column cell qualifier name
|
35
|
-
# @param timestamp [Integer] Timestamp in microseconds
|
36
|
-
# @param value [String] Cell value
|
37
|
-
# @param labels [Array<String>] List of label array
|
38
|
-
|
38
|
+
# @param family [String] Column family name.
|
39
|
+
# @param qualifier [String] Column cell qualifier name.
|
40
|
+
# @param timestamp [Integer] Timestamp in microseconds.
|
41
|
+
# @param value [String] Cell value.
|
42
|
+
# @param labels [Array<String>] List of label array.
|
43
|
+
#
|
39
44
|
def initialize family, qualifier, timestamp, value, labels = []
|
40
45
|
@family = family
|
41
46
|
@qualifier = qualifier
|
@@ -44,30 +49,32 @@ module Google
|
|
44
49
|
@labels = labels
|
45
50
|
end
|
46
51
|
|
52
|
+
##
|
47
53
|
# Converts timestamp to Time instance.
|
48
54
|
#
|
49
|
-
# @param granularity [Symbol] Optional
|
50
|
-
# Valid granularity types are `:micros`,
|
51
|
-
# Default
|
55
|
+
# @param granularity [Symbol] Optional.
|
56
|
+
# Valid granularity types are `:micros`, `:millis`.
|
57
|
+
# Default is `:millis`.
|
52
58
|
# @return [Time | nil]
|
53
59
|
#
|
54
60
|
def to_time granularity = nil
|
55
61
|
return nil if @timestamp.zero?
|
56
|
-
return Time.at
|
57
|
-
Time.at
|
62
|
+
return Time.at @timestamp / 1_000_000.0 if granularity == :micros
|
63
|
+
Time.at @timestamp / 1000.0
|
58
64
|
end
|
59
65
|
|
66
|
+
##
|
60
67
|
# Converts a value to an integer.
|
61
68
|
#
|
62
69
|
# @return [Integer]
|
63
70
|
#
|
64
71
|
def to_i
|
65
|
-
@value.
|
72
|
+
@value.unpack1 "q>"
|
66
73
|
end
|
67
74
|
|
68
75
|
# @private
|
69
76
|
#
|
70
|
-
# Cell object comparator
|
77
|
+
# Cell object comparator.
|
71
78
|
#
|
72
79
|
# @return [Boolean]
|
73
80
|
#
|
@@ -80,22 +87,28 @@ module Google
|
|
80
87
|
end
|
81
88
|
end
|
82
89
|
|
83
|
-
|
90
|
+
##
|
91
|
+
# @return [String] Row key.
|
92
|
+
#
|
84
93
|
attr_accessor :key
|
85
94
|
|
86
|
-
|
95
|
+
##
|
96
|
+
# @return [Hash{String => Array<Google::Cloud::Bigtable::Row::Cell>}] Row cells.
|
97
|
+
#
|
87
98
|
attr_accessor :cells
|
88
99
|
|
100
|
+
##
|
89
101
|
# Creates a flat row object.
|
90
102
|
#
|
91
|
-
# @param key [String] Row key name
|
103
|
+
# @param key [String] Row key name.
|
92
104
|
#
|
93
105
|
def initialize key = nil
|
94
106
|
@key = key
|
95
107
|
@cells = Hash.new { |h, k| h[k] = [] }
|
96
108
|
end
|
97
109
|
|
98
|
-
|
110
|
+
##
|
111
|
+
# List of column families names.
|
99
112
|
#
|
100
113
|
# @return [Array<String>]
|
101
114
|
#
|
@@ -105,15 +118,13 @@ module Google
|
|
105
118
|
|
106
119
|
# @private
|
107
120
|
#
|
108
|
-
# FlatRow object comparator
|
121
|
+
# FlatRow object comparator.
|
109
122
|
#
|
110
123
|
# @return [Boolean]
|
111
124
|
#
|
112
125
|
def == other
|
113
126
|
return false unless self.class == other.class
|
114
|
-
if key != other.key || column_families != other.column_families
|
115
|
-
return false
|
116
|
-
end
|
127
|
+
return false if key != other.key || column_families != other.column_families
|
117
128
|
|
118
129
|
cells.all? do |family, list|
|
119
130
|
list == other.cells[family]
|
@@ -26,6 +26,7 @@ require "google/cloud/bigtable/row_filter/condition_filter"
|
|
26
26
|
module Google
|
27
27
|
module Cloud
|
28
28
|
module Bigtable
|
29
|
+
##
|
29
30
|
# # RowFilter
|
30
31
|
#
|
31
32
|
# Takes a row as input and produces an alternate view of the row based on
|
@@ -120,6 +121,7 @@ module Google
|
|
120
121
|
# while the other does not.
|
121
122
|
#
|
122
123
|
# @example
|
124
|
+
# require "google/cloud/bigtable"
|
123
125
|
#
|
124
126
|
# # Pass filter
|
125
127
|
# Google::Cloud::Bigtable::RowFilter.pass
|
@@ -145,11 +147,12 @@ module Google
|
|
145
147
|
|
146
148
|
private_constant :PASS, :BLOCK, :SINK, :STRIP_VALUE
|
147
149
|
|
150
|
+
##
|
148
151
|
# Creates a chain filter instance.
|
149
152
|
#
|
150
153
|
# A chain RowFilter that sends rows through several RowFilters in sequence.
|
151
154
|
#
|
152
|
-
# See {Google::Cloud::Bigtable::RowFilter::ChainFilter}
|
155
|
+
# See {Google::Cloud::Bigtable::RowFilter::ChainFilter}.
|
153
156
|
#
|
154
157
|
# The elements of "filters" are chained together to process the input row:
|
155
158
|
# in row -> f(0) -> intermediate row -> f(1) -> ... -> f(N) -> out row
|
@@ -158,6 +161,7 @@ module Google
|
|
158
161
|
# @return [Google::Cloud::Bigtable::RowFilter::ChainFilter]
|
159
162
|
#
|
160
163
|
# @example Create chain filter with simple filter.
|
164
|
+
# require "google/cloud/bigtable"
|
161
165
|
#
|
162
166
|
# chain = Google::Cloud::Bigtable::RowFilter.chain
|
163
167
|
#
|
@@ -166,9 +170,10 @@ module Google
|
|
166
170
|
# chain.strip_value
|
167
171
|
#
|
168
172
|
# # OR
|
169
|
-
# chain.key("user-*).strip_value
|
173
|
+
# chain.key("user-*").strip_value
|
170
174
|
#
|
171
175
|
# @example Create complex chain filter.
|
176
|
+
# require "google/cloud/bigtable"
|
172
177
|
#
|
173
178
|
# chain = Google::Cloud::Bigtable::RowFilter.chain
|
174
179
|
#
|
@@ -176,12 +181,13 @@ module Google
|
|
176
181
|
# chain_1.label("users").qualifier("name").cells_per_row(5)
|
177
182
|
#
|
178
183
|
# # Add to main chain filter
|
179
|
-
# chain.chain(chain_1).value("xyz*).key("user-*")
|
184
|
+
# chain.chain(chain_1).value("xyz*").key("user-*")
|
180
185
|
#
|
181
186
|
def self.chain
|
182
187
|
ChainFilter.new
|
183
188
|
end
|
184
189
|
|
190
|
+
##
|
185
191
|
# Creates an interleave filter.
|
186
192
|
#
|
187
193
|
# A RowFilter that sends each row to each of several component
|
@@ -216,6 +222,7 @@ module Google
|
|
216
222
|
# @return [Google::Cloud::Bigtable::RowFilter::InterleaveFilter]
|
217
223
|
#
|
218
224
|
# @example Create an interleave filter with simple filter.
|
225
|
+
# require "google/cloud/bigtable"
|
219
226
|
#
|
220
227
|
# interleave = Google::Cloud::Bigtable::RowFilter.interleave
|
221
228
|
#
|
@@ -224,9 +231,10 @@ module Google
|
|
224
231
|
# interleave.sink
|
225
232
|
#
|
226
233
|
# # OR
|
227
|
-
# interleave.key("user-*).sink
|
234
|
+
# interleave.key("user-*").sink
|
228
235
|
#
|
229
236
|
# @example Create complex interleave filter.
|
237
|
+
# require "google/cloud/bigtable"
|
230
238
|
#
|
231
239
|
# interleave = Google::Cloud::Bigtable::RowFilter.interleave
|
232
240
|
#
|
@@ -234,12 +242,13 @@ module Google
|
|
234
242
|
# chain_1.label("users").qualifier("name").cells_per_row(5)
|
235
243
|
#
|
236
244
|
# # Add to main chain filter
|
237
|
-
# interleave.chain(chain_1).value("xyz*).key("user-*")
|
245
|
+
# interleave.chain(chain_1).value("xyz*").key("user-*")
|
238
246
|
#
|
239
247
|
def self.interleave
|
240
248
|
InterleaveFilter.new
|
241
249
|
end
|
242
250
|
|
251
|
+
##
|
243
252
|
# Creates a condition filter instance.
|
244
253
|
#
|
245
254
|
# A RowFilter that evaluates one of two possible RowFilters, depending on
|
@@ -250,12 +259,13 @@ module Google
|
|
250
259
|
# results. Additionally, condition filters have poor performance, especially
|
251
260
|
# when filters are set for the false condition.
|
252
261
|
#
|
253
|
-
# Cannot be used within the `predicate_filter`, `true_filter`, or `false_filter
|
262
|
+
# Cannot be used within the `predicate_filter`, `true_filter`, or `false_filter`.
|
254
263
|
#
|
255
264
|
# @param predicate [SimpleFilter, ChainFilter, InterleaveFilter, ConditionFilter]
|
256
265
|
# @return [Google::Cloud::Bigtable::RowFilter::ConditionFilter]
|
257
266
|
#
|
258
267
|
# @example
|
268
|
+
# require "google/cloud/bigtable"
|
259
269
|
#
|
260
270
|
# predicate = Google::Cloud::Bigtable::RowFilter.key("user-*")
|
261
271
|
# condition = Google::Cloud::Bigtable::RowFilter.condition(predicate)
|
@@ -267,9 +277,10 @@ module Google
|
|
267
277
|
# condition.on_match(label).otherwise(strip_value)
|
268
278
|
#
|
269
279
|
def self.condition predicate
|
270
|
-
ConditionFilter.new
|
280
|
+
ConditionFilter.new predicate
|
271
281
|
end
|
272
282
|
|
283
|
+
##
|
273
284
|
# Creates a pass filter instance.
|
274
285
|
#
|
275
286
|
# Matches all cells, regardless of input. Functionally equivalent to
|
@@ -278,6 +289,7 @@ module Google
|
|
278
289
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
279
290
|
#
|
280
291
|
# @example
|
292
|
+
# require "google/cloud/bigtable"
|
281
293
|
#
|
282
294
|
# filter = Google::Cloud::Bigtable::RowFilter.pass
|
283
295
|
#
|
@@ -285,6 +297,7 @@ module Google
|
|
285
297
|
PASS
|
286
298
|
end
|
287
299
|
|
300
|
+
##
|
288
301
|
# Creates a block-all filter instance.
|
289
302
|
#
|
290
303
|
# Does not match any cells, regardless of input. Useful for temporarily
|
@@ -293,6 +306,7 @@ module Google
|
|
293
306
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
294
307
|
#
|
295
308
|
# @example
|
309
|
+
# require "google/cloud/bigtable"
|
296
310
|
#
|
297
311
|
# filter = Google::Cloud::Bigtable::RowFilter.block
|
298
312
|
#
|
@@ -300,14 +314,16 @@ module Google
|
|
300
314
|
BLOCK
|
301
315
|
end
|
302
316
|
|
317
|
+
##
|
303
318
|
# Creates a sink filter instance.
|
304
319
|
#
|
305
320
|
# Outputs all cells directly to the output of the read rather than to any
|
306
|
-
# parent filter
|
321
|
+
# parent filter.
|
307
322
|
#
|
308
323
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
309
324
|
#
|
310
325
|
# @example
|
326
|
+
# require "google/cloud/bigtable"
|
311
327
|
#
|
312
328
|
# filter = Google::Cloud::Bigtable::RowFilter.sink
|
313
329
|
#
|
@@ -315,6 +331,7 @@ module Google
|
|
315
331
|
SINK
|
316
332
|
end
|
317
333
|
|
334
|
+
##
|
318
335
|
# Creates a strip value filter instance.
|
319
336
|
#
|
320
337
|
# Replaces each cell's value with an empty string.
|
@@ -322,6 +339,7 @@ module Google
|
|
322
339
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
323
340
|
#
|
324
341
|
# @example
|
342
|
+
# require "google/cloud/bigtable"
|
325
343
|
#
|
326
344
|
# filter = Google::Cloud::Bigtable::RowFilter.strip_value
|
327
345
|
#
|
@@ -329,6 +347,7 @@ module Google
|
|
329
347
|
STRIP_VALUE
|
330
348
|
end
|
331
349
|
|
350
|
+
##
|
332
351
|
# Creates a key filter instance to match a row key using a regular expression.
|
333
352
|
#
|
334
353
|
# Matches only cells from rows whose row keys satisfy the given RE2 regex. In
|
@@ -339,37 +358,40 @@ module Google
|
|
339
358
|
# will not match the new line character `\n`, which may be present in a
|
340
359
|
# binary key.
|
341
360
|
#
|
342
|
-
#
|
343
|
-
# @see https://github.com/google/re2/wiki/Syntax
|
361
|
+
# @see https://github.com/google/re2/wiki/Syntax Regex syntax
|
344
362
|
#
|
345
363
|
# @param regex [String] Regex to match row keys.
|
346
364
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
347
365
|
#
|
348
366
|
# @example
|
367
|
+
# require "google/cloud/bigtable"
|
349
368
|
#
|
350
369
|
# filter = Google::Cloud::Bigtable::RowFilter.key("user-.*")
|
351
370
|
#
|
352
371
|
def self.key regex
|
353
|
-
SimpleFilter.new.key
|
372
|
+
SimpleFilter.new.key regex
|
354
373
|
end
|
355
374
|
|
375
|
+
##
|
356
376
|
# Creates a sample probability filter instance.
|
357
377
|
#
|
358
378
|
# Matches all cells from a row with probability p, and matches no cells
|
359
379
|
# from the row with probability 1-p.
|
360
380
|
#
|
361
|
-
# @param probability [Float] Probability value
|
362
|
-
# Probability must be
|
381
|
+
# @param probability [Float] Probability value.
|
382
|
+
# Probability must be greater than 0 and less than 1.0.
|
363
383
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
364
384
|
#
|
365
385
|
# @example
|
386
|
+
# require "google/cloud/bigtable"
|
366
387
|
#
|
367
388
|
# filter = Google::Cloud::Bigtable::RowFilter.sample(0.5)
|
368
389
|
#
|
369
390
|
def self.sample probability
|
370
|
-
SimpleFilter.new.sample
|
391
|
+
SimpleFilter.new.sample probability
|
371
392
|
end
|
372
393
|
|
394
|
+
##
|
373
395
|
# Creates a family name match filter using a regular expression.
|
374
396
|
#
|
375
397
|
# Matches only cells from columns whose families satisfy the given RE2
|
@@ -379,20 +401,21 @@ module Google
|
|
379
401
|
# `\n`, it is sufficient to use `.` as a full wildcard when matching
|
380
402
|
# column family names.
|
381
403
|
#
|
382
|
-
#
|
383
|
-
# @see https://github.com/google/re2/wiki/Syntax
|
404
|
+
# @see https://github.com/google/re2/wiki/Syntax Regex syntax
|
384
405
|
#
|
385
406
|
# @param regex [String] Regex to match family name.
|
386
407
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
387
408
|
#
|
388
409
|
# @example
|
410
|
+
# require "google/cloud/bigtable"
|
389
411
|
#
|
390
412
|
# filter = Google::Cloud::Bigtable::RowFilter.family("cf-.*")
|
391
413
|
#
|
392
414
|
def self.family regex
|
393
|
-
SimpleFilter.new.family
|
415
|
+
SimpleFilter.new.family regex
|
394
416
|
end
|
395
417
|
|
418
|
+
##
|
396
419
|
# Creates a column qualifier match filter using a regular expression.
|
397
420
|
#
|
398
421
|
# Matches only cells from columns whose qualifiers satisfy the given RE2
|
@@ -402,20 +425,21 @@ module Google
|
|
402
425
|
# character will not match the new line character `\n`, which may be
|
403
426
|
# present in a binary qualifier.
|
404
427
|
#
|
405
|
-
#
|
406
|
-
# @see https://github.com/google/re2/wiki/Syntax
|
428
|
+
# @see https://github.com/google/re2/wiki/Syntax Regex syntax
|
407
429
|
#
|
408
430
|
# @param regex [String] Regex to match column qualifier name.
|
409
431
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
410
432
|
#
|
411
433
|
# @example
|
434
|
+
# require "google/cloud/bigtable"
|
412
435
|
#
|
413
436
|
# filter = Google::Cloud::Bigtable::RowFilter.qualifier("user-name.*")
|
414
437
|
#
|
415
438
|
def self.qualifier regex
|
416
|
-
SimpleFilter.new.qualifier
|
439
|
+
SimpleFilter.new.qualifier regex
|
417
440
|
end
|
418
441
|
|
442
|
+
##
|
419
443
|
# Creates a value match filter using a regular expression.
|
420
444
|
#
|
421
445
|
# Matches only cells with values that satisfy the given regular expression.
|
@@ -424,20 +448,21 @@ module Google
|
|
424
448
|
# will not match the new line character `\n`, which may be present in a
|
425
449
|
# binary value.
|
426
450
|
#
|
427
|
-
#
|
428
|
-
# @see https://github.com/google/re2/wiki/Syntax
|
451
|
+
# @see https://github.com/google/re2/wiki/Syntax Regex syntax
|
429
452
|
#
|
430
453
|
# @param regex [String] Regex to match cell value.
|
431
454
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
432
455
|
#
|
433
456
|
# @example
|
457
|
+
# require "google/cloud/bigtable"
|
434
458
|
#
|
435
459
|
# filter = Google::Cloud::Bigtable::RowFilter.value("abc.*")
|
436
460
|
#
|
437
461
|
def self.value regex
|
438
|
-
SimpleFilter.new.value
|
462
|
+
SimpleFilter.new.value regex
|
439
463
|
end
|
440
464
|
|
465
|
+
##
|
441
466
|
# Creates a label filter instance to apply a label based on the result of
|
442
467
|
# read rows.
|
443
468
|
#
|
@@ -458,13 +483,15 @@ module Google
|
|
458
483
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
459
484
|
#
|
460
485
|
# @example
|
486
|
+
# require "google/cloud/bigtable"
|
461
487
|
#
|
462
488
|
# filter = Google::Cloud::Bigtable::RowFilter.label("user-detail")
|
463
489
|
#
|
464
490
|
def self.label value
|
465
|
-
SimpleFilter.new.label
|
491
|
+
SimpleFilter.new.label value
|
466
492
|
end
|
467
493
|
|
494
|
+
##
|
468
495
|
# Creates a cell-per-row-offset filter instance to skip first N cells.
|
469
496
|
#
|
470
497
|
# Skips the first N cells of each row, matching all subsequent cells.
|
@@ -475,13 +502,15 @@ module Google
|
|
475
502
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
476
503
|
#
|
477
504
|
# @example
|
505
|
+
# require "google/cloud/bigtable"
|
478
506
|
#
|
479
507
|
# filter = Google::Cloud::Bigtable::RowFilter.cells_per_row_offset(3)
|
480
508
|
#
|
481
509
|
def self.cells_per_row_offset offset
|
482
|
-
SimpleFilter.new.cells_per_row_offset
|
510
|
+
SimpleFilter.new.cells_per_row_offset offset
|
483
511
|
end
|
484
512
|
|
513
|
+
##
|
485
514
|
# Create a cells-per-row limit filter instance.
|
486
515
|
#
|
487
516
|
# Matches only the first N cells of each row.
|
@@ -492,13 +521,15 @@ module Google
|
|
492
521
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
493
522
|
#
|
494
523
|
# @example
|
524
|
+
# require "google/cloud/bigtable"
|
495
525
|
#
|
496
526
|
# filter = Google::Cloud::Bigtable::RowFilter.cells_per_row(5)
|
497
527
|
#
|
498
528
|
def self.cells_per_row limit
|
499
|
-
SimpleFilter.new.cells_per_row
|
529
|
+
SimpleFilter.new.cells_per_row limit
|
500
530
|
end
|
501
531
|
|
532
|
+
##
|
502
533
|
# Creates cells-per-column filter instance.
|
503
534
|
#
|
504
535
|
# Matches only the most recent N cells within each column.
|
@@ -509,13 +540,15 @@ module Google
|
|
509
540
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
510
541
|
#
|
511
542
|
# @example
|
543
|
+
# require "google/cloud/bigtable"
|
512
544
|
#
|
513
545
|
# filter = Google::Cloud::Bigtable::RowFilter.cells_per_column(5)
|
514
546
|
#
|
515
547
|
def self.cells_per_column limit
|
516
|
-
SimpleFilter.new.cells_per_column
|
548
|
+
SimpleFilter.new.cells_per_column limit
|
517
549
|
end
|
518
550
|
|
551
|
+
##
|
519
552
|
# Creates a timestamp-range filter instance.
|
520
553
|
#
|
521
554
|
# Matches only cells with timestamps within the given range.
|
@@ -526,6 +559,7 @@ module Google
|
|
526
559
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
527
560
|
#
|
528
561
|
# @example
|
562
|
+
# require "google/cloud/bigtable"
|
529
563
|
#
|
530
564
|
# timestamp_micros = (Time.now.to_f * 1000000).round(-3)
|
531
565
|
# from = timestamp_micros - 300000000
|
@@ -540,9 +574,10 @@ module Google
|
|
540
574
|
# filter = Google::Cloud::Bigtable::RowFilter.timestamp_range(to: to)
|
541
575
|
#
|
542
576
|
def self.timestamp_range from: nil, to: nil
|
543
|
-
SimpleFilter.new.timestamp_range
|
577
|
+
SimpleFilter.new.timestamp_range from, to
|
544
578
|
end
|
545
579
|
|
580
|
+
##
|
546
581
|
# Creates a value-range filter instance.
|
547
582
|
#
|
548
583
|
# Matches only cells with values that fall within the given range.
|
@@ -558,20 +593,29 @@ module Google
|
|
558
593
|
# @param range [Google::Cloud::Bigtable::ValueRange]
|
559
594
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
560
595
|
#
|
561
|
-
# @example Start to end range
|
596
|
+
# @example Start to end range.
|
597
|
+
# require "google/cloud/bigtable"
|
562
598
|
#
|
563
|
-
#
|
599
|
+
# bigtable = Google::Cloud::Bigtable.new
|
600
|
+
# table = bigtable.table("my-instance", "my-table")
|
601
|
+
#
|
602
|
+
# range = table.new_value_range.from("value-001", inclusive: false)
|
564
603
|
# filter = Google::Cloud::Bigtable::RowFilter.value_range(range)
|
565
604
|
#
|
566
|
-
# @example Start
|
605
|
+
# @example Start exclusive to infinite end range.
|
606
|
+
# require "google/cloud/bigtable"
|
607
|
+
#
|
608
|
+
# bigtable = Google::Cloud::Bigtable.new
|
609
|
+
# table = bigtable.table("my-instance", "my-table")
|
567
610
|
#
|
568
|
-
# range =
|
611
|
+
# range = table.new_value_range.from("value-001", inclusive: false)
|
569
612
|
# filter = Google::Cloud::Bigtable::RowFilter.value_range(range)
|
570
613
|
#
|
571
614
|
def self.value_range range
|
572
|
-
SimpleFilter.new.value_range
|
615
|
+
SimpleFilter.new.value_range range
|
573
616
|
end
|
574
617
|
|
618
|
+
##
|
575
619
|
# Creates a column-range filter instance.
|
576
620
|
#
|
577
621
|
# Matches only cells from columns within the given range.
|
@@ -580,13 +624,14 @@ module Google
|
|
580
624
|
# @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
|
581
625
|
#
|
582
626
|
# @example
|
627
|
+
# require "google/cloud/bigtable"
|
583
628
|
#
|
584
|
-
# range = Google::Cloud::Bigtable::ColumnRange.new(cf).from("field0").to("field5")
|
629
|
+
# range = Google::Cloud::Bigtable::ColumnRange.new("cf").from("field0").to("field5")
|
585
630
|
#
|
586
631
|
# filter = Google::Cloud::Bigtable::RowFilter.column_range(range)
|
587
632
|
#
|
588
633
|
def self.column_range range
|
589
|
-
SimpleFilter.new.column_range
|
634
|
+
SimpleFilter.new.column_range range
|
590
635
|
end
|
591
636
|
end
|
592
637
|
end
|