google-cloud-bigtable 0.6.2 → 0.7.0
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/CHANGELOG.md +36 -0
- data/CONTRIBUTING.md +1 -1
- data/lib/google-cloud-bigtable.rb +19 -21
- data/lib/google/cloud/bigtable.rb +11 -17
- data/lib/google/cloud/bigtable/app_profile.rb +148 -82
- data/lib/google/cloud/bigtable/app_profile/job.rb +5 -8
- data/lib/google/cloud/bigtable/app_profile/list.rb +11 -5
- data/lib/google/cloud/bigtable/chunk_processor.rb +23 -35
- data/lib/google/cloud/bigtable/cluster.rb +38 -11
- data/lib/google/cloud/bigtable/cluster/job.rb +3 -7
- data/lib/google/cloud/bigtable/cluster/list.rb +20 -18
- data/lib/google/cloud/bigtable/column_family.rb +22 -229
- data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
- data/lib/google/cloud/bigtable/column_range.rb +9 -1
- 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 +184 -65
- data/lib/google/cloud/bigtable/instance.rb +136 -126
- data/lib/google/cloud/bigtable/instance/cluster_map.rb +9 -7
- data/lib/google/cloud/bigtable/instance/job.rb +4 -3
- data/lib/google/cloud/bigtable/instance/list.rb +14 -9
- data/lib/google/cloud/bigtable/longrunning_job.rb +6 -0
- data/lib/google/cloud/bigtable/mutation_entry.rb +19 -23
- data/lib/google/cloud/bigtable/mutation_operations.rb +82 -29
- data/lib/google/cloud/bigtable/policy.rb +9 -5
- data/lib/google/cloud/bigtable/project.rb +62 -140
- data/lib/google/cloud/bigtable/read_modify_write_rule.rb +9 -4
- data/lib/google/cloud/bigtable/read_operations.rb +28 -41
- data/lib/google/cloud/bigtable/routing_policy.rb +171 -0
- data/lib/google/cloud/bigtable/row.rb +18 -7
- data/lib/google/cloud/bigtable/row_filter.rb +49 -20
- data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +71 -43
- data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +4 -1
- data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +74 -43
- data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +22 -7
- data/lib/google/cloud/bigtable/row_range.rb +5 -0
- data/lib/google/cloud/bigtable/rows_mutator.rb +14 -17
- data/lib/google/cloud/bigtable/rows_reader.rb +18 -14
- data/lib/google/cloud/bigtable/sample_row_key.rb +5 -2
- data/lib/google/cloud/bigtable/service.rb +161 -242
- data/lib/google/cloud/bigtable/status.rb +76 -0
- data/lib/google/cloud/bigtable/table.rb +141 -236
- data/lib/google/cloud/bigtable/table/cluster_state.rb +7 -1
- data/lib/google/cloud/bigtable/table/list.rb +14 -7
- data/lib/google/cloud/bigtable/value_range.rb +5 -0
- data/lib/google/cloud/bigtable/version.rb +1 -1
- metadata +27 -25
- data/lib/google/cloud/bigtable/table/column_family_map.rb +0 -70
@@ -19,6 +19,7 @@ module Google
|
|
19
19
|
module Cloud
|
20
20
|
module Bigtable
|
21
21
|
class Table
|
22
|
+
##
|
22
23
|
# Table::ClusterState is the state of a table's data in a particular cluster.
|
23
24
|
class ClusterState
|
24
25
|
attr_reader :cluster_name
|
@@ -31,6 +32,7 @@ module Google
|
|
31
32
|
@cluster_name = cluster_name
|
32
33
|
end
|
33
34
|
|
35
|
+
##
|
34
36
|
# The state of replication for the table in this cluster.
|
35
37
|
# Valid values are:
|
36
38
|
# * `:INITIALIZING` - The cluster was recently created.
|
@@ -43,6 +45,7 @@ module Google
|
|
43
45
|
@grpc.replication_state
|
44
46
|
end
|
45
47
|
|
48
|
+
##
|
46
49
|
# The cluster was recently created, and the table must finish copying
|
47
50
|
# over pre-existing data from other clusters before it can begin
|
48
51
|
# receiving live replication updates and serving.
|
@@ -52,6 +55,7 @@ module Google
|
|
52
55
|
replication_state == :INITIALIZING
|
53
56
|
end
|
54
57
|
|
58
|
+
##
|
55
59
|
# The table is temporarily unable to serve
|
56
60
|
# requests from this cluster due to planned internal maintenance.
|
57
61
|
# @return [Boolean]
|
@@ -60,6 +64,7 @@ module Google
|
|
60
64
|
replication_state == :PLANNED_MAINTENANCE
|
61
65
|
end
|
62
66
|
|
67
|
+
##
|
63
68
|
# The table is temporarily unable to serve requests from this
|
64
69
|
# cluster due to unplanned or emergency maintenance.
|
65
70
|
# @return [Boolean]
|
@@ -68,6 +73,7 @@ module Google
|
|
68
73
|
replication_state == :UNPLANNED_MAINTENANCE
|
69
74
|
end
|
70
75
|
|
76
|
+
##
|
71
77
|
# The table can serve requests from this cluster.
|
72
78
|
# Depending on replication delay, reads may not immediately
|
73
79
|
# reflect the state of the table in other clusters.
|
@@ -84,7 +90,7 @@ module Google
|
|
84
90
|
# @return [Google::Cloud::Bigtable::Table::ClusterState]
|
85
91
|
#
|
86
92
|
def self.from_grpc grpc, cluster_name
|
87
|
-
new
|
93
|
+
new grpc, cluster_name
|
88
94
|
end
|
89
95
|
end
|
90
96
|
end
|
@@ -19,8 +19,10 @@ module Google
|
|
19
19
|
module Cloud
|
20
20
|
module Bigtable
|
21
21
|
class Table
|
22
|
+
##
|
22
23
|
# Table::List is a special-case array with additional
|
23
24
|
# values.
|
25
|
+
#
|
24
26
|
class List < DelegateClass(::Array)
|
25
27
|
# @private
|
26
28
|
# The gRPC Service object.
|
@@ -33,9 +35,10 @@ module Google
|
|
33
35
|
# @private
|
34
36
|
# Creates a new Table::List with an array of table instances.
|
35
37
|
def initialize arr = []
|
36
|
-
super
|
38
|
+
super arr
|
37
39
|
end
|
38
40
|
|
41
|
+
##
|
39
42
|
# Whether there is a next page of tables.
|
40
43
|
#
|
41
44
|
# @return [Boolean]
|
@@ -49,10 +52,12 @@ module Google
|
|
49
52
|
# if tables.next?
|
50
53
|
# next_tables = tables.next
|
51
54
|
# end
|
55
|
+
#
|
52
56
|
def next?
|
53
57
|
grpc.next_page?
|
54
58
|
end
|
55
59
|
|
60
|
+
##
|
56
61
|
# Retrieves the next page of tables.
|
57
62
|
#
|
58
63
|
# @return [Table::List] The list of table instances.
|
@@ -66,14 +71,16 @@ module Google
|
|
66
71
|
# if tables.next?
|
67
72
|
# next_tables = tables.next
|
68
73
|
# end
|
74
|
+
#
|
69
75
|
def next
|
70
76
|
ensure_grpc!
|
71
77
|
|
72
78
|
return nil unless next?
|
73
79
|
grpc.next_page
|
74
|
-
self.class.from_grpc
|
80
|
+
self.class.from_grpc grpc, service
|
75
81
|
end
|
76
82
|
|
83
|
+
##
|
77
84
|
# Retrieves remaining results by repeatedly invoking {#next} until
|
78
85
|
# {#next?} returns `false`. Calls the given block once for each
|
79
86
|
# result, which is passed as the argument to the block.
|
@@ -94,7 +101,7 @@ module Google
|
|
94
101
|
#
|
95
102
|
# bigtable = Google::Cloud::Bigtable.new
|
96
103
|
#
|
97
|
-
# bigtable.tables("instance
|
104
|
+
# bigtable.tables("my-instance").all do |table|
|
98
105
|
# puts table.table_id
|
99
106
|
# end
|
100
107
|
#
|
@@ -103,19 +110,19 @@ module Google
|
|
103
110
|
#
|
104
111
|
# bigtable = Google::Cloud::Bigtable.new
|
105
112
|
#
|
106
|
-
# all_table_ids = bigtable.tables("instance
|
113
|
+
# all_table_ids = bigtable.tables("my-instance").all.map do |table|
|
107
114
|
# puts table.table_id
|
108
115
|
# end
|
109
116
|
#
|
110
117
|
def all
|
111
|
-
return enum_for
|
118
|
+
return enum_for :all unless block_given?
|
112
119
|
|
113
120
|
results = self
|
114
121
|
loop do
|
115
122
|
results.each { |r| yield r }
|
116
123
|
break unless next?
|
117
124
|
grpc.next_page
|
118
|
-
results = self.class.from_grpc
|
125
|
+
results = self.class.from_grpc grpc, service
|
119
126
|
end
|
120
127
|
end
|
121
128
|
|
@@ -124,7 +131,7 @@ module Google
|
|
124
131
|
#
|
125
132
|
def self.from_grpc grpc, service
|
126
133
|
tables = List.new(Array(grpc.response.tables).map do |table|
|
127
|
-
Table.from_grpc
|
134
|
+
Table.from_grpc table, service, view: :NAME_ONLY
|
128
135
|
end)
|
129
136
|
tables.grpc = grpc
|
130
137
|
tables.service = service
|
@@ -18,6 +18,7 @@
|
|
18
18
|
module Google
|
19
19
|
module Cloud
|
20
20
|
module Bigtable
|
21
|
+
##
|
21
22
|
# # ValueRange
|
22
23
|
#
|
23
24
|
# Specifies a contiguous range of string values.
|
@@ -61,6 +62,7 @@ module Google
|
|
61
62
|
@grpc = Google::Bigtable::V2::ValueRange.new
|
62
63
|
end
|
63
64
|
|
65
|
+
##
|
64
66
|
# Sets the row range with the lower bound.
|
65
67
|
#
|
66
68
|
# @param value [String] value. Required
|
@@ -93,6 +95,7 @@ module Google
|
|
93
95
|
self
|
94
96
|
end
|
95
97
|
|
98
|
+
##
|
96
99
|
# Sets the value range with upper bound.
|
97
100
|
#
|
98
101
|
# @param value [String] value. Required
|
@@ -125,6 +128,7 @@ module Google
|
|
125
128
|
self
|
126
129
|
end
|
127
130
|
|
131
|
+
##
|
128
132
|
# Sets the value range with the inclusive lower and upper bound.
|
129
133
|
#
|
130
134
|
# @param from_value [String] Inclusive from value. Required
|
@@ -144,6 +148,7 @@ module Google
|
|
144
148
|
from(from_value).to(to_value, inclusive: true)
|
145
149
|
end
|
146
150
|
|
151
|
+
##
|
147
152
|
# Set value range with the inclusive lower and the exclusive upper bound.
|
148
153
|
#
|
149
154
|
# @param from_value [String] Inclusive from value
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-bigtable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: google-cloud-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.1'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: google-gax
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
33
|
+
version: '1.8'
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
40
|
+
version: '1.8'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: grpc-google-iam-v1
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,19 +53,19 @@ dependencies:
|
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: 0.6.9
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: google-
|
56
|
+
name: google-style
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
61
|
+
version: 1.24.0
|
62
|
+
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 1.24.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: minitest
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +122,6 @@ dependencies:
|
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '3.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rubocop
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.64.0
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.64.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: simplecov
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,6 +223,7 @@ files:
|
|
223
223
|
- lib/google/cloud/bigtable/cluster/job.rb
|
224
224
|
- lib/google/cloud/bigtable/cluster/list.rb
|
225
225
|
- lib/google/cloud/bigtable/column_family.rb
|
226
|
+
- lib/google/cloud/bigtable/column_family_map.rb
|
226
227
|
- lib/google/cloud/bigtable/column_range.rb
|
227
228
|
- lib/google/cloud/bigtable/convert.rb
|
228
229
|
- lib/google/cloud/bigtable/credentials.rb
|
@@ -239,6 +240,7 @@ files:
|
|
239
240
|
- lib/google/cloud/bigtable/project.rb
|
240
241
|
- lib/google/cloud/bigtable/read_modify_write_rule.rb
|
241
242
|
- lib/google/cloud/bigtable/read_operations.rb
|
243
|
+
- lib/google/cloud/bigtable/routing_policy.rb
|
242
244
|
- lib/google/cloud/bigtable/row.rb
|
243
245
|
- lib/google/cloud/bigtable/row_filter.rb
|
244
246
|
- lib/google/cloud/bigtable/row_filter/chain_filter.rb
|
@@ -250,9 +252,9 @@ files:
|
|
250
252
|
- lib/google/cloud/bigtable/rows_reader.rb
|
251
253
|
- lib/google/cloud/bigtable/sample_row_key.rb
|
252
254
|
- lib/google/cloud/bigtable/service.rb
|
255
|
+
- lib/google/cloud/bigtable/status.rb
|
253
256
|
- lib/google/cloud/bigtable/table.rb
|
254
257
|
- lib/google/cloud/bigtable/table/cluster_state.rb
|
255
|
-
- lib/google/cloud/bigtable/table/column_family_map.rb
|
256
258
|
- lib/google/cloud/bigtable/table/list.rb
|
257
259
|
- lib/google/cloud/bigtable/v2.rb
|
258
260
|
- lib/google/cloud/bigtable/v2/bigtable_client.rb
|
@@ -277,14 +279,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
277
279
|
requirements:
|
278
280
|
- - ">="
|
279
281
|
- !ruby/object:Gem::Version
|
280
|
-
version: 2.
|
282
|
+
version: '2.4'
|
281
283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
282
284
|
requirements:
|
283
285
|
- - ">="
|
284
286
|
- !ruby/object:Gem::Version
|
285
287
|
version: '0'
|
286
288
|
requirements: []
|
287
|
-
rubygems_version: 3.0.
|
289
|
+
rubygems_version: 3.0.6
|
288
290
|
signing_key:
|
289
291
|
specification_version: 4
|
290
292
|
summary: API Client library for Cloud Bigtable API
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2018 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
|
18
|
-
module Google
|
19
|
-
module Cloud
|
20
|
-
module Bigtable
|
21
|
-
class Table
|
22
|
-
# Table::ColumnFamilyMap is a hash accepting string `ColumnFamily` names as keys and `GcRule` objects as values.
|
23
|
-
# It is used to create an instance.
|
24
|
-
# @example Add column family with name and garbage collection rule
|
25
|
-
#
|
26
|
-
# column_families = Google::Cloud::Bigtable::Instance::ColumnFamilyMap.new
|
27
|
-
#
|
28
|
-
# column_families.add('cf1', Google::Cloud::Bigtable::GcRule.max_versions(3))
|
29
|
-
#
|
30
|
-
class ColumnFamilyMap < DelegateClass(::Hash)
|
31
|
-
# @private
|
32
|
-
# Create a new ColumnFamilyMap.
|
33
|
-
def initialize value = {}
|
34
|
-
super(value)
|
35
|
-
end
|
36
|
-
|
37
|
-
# Adds a column family.
|
38
|
-
#
|
39
|
-
# @param name [String] Column family name
|
40
|
-
# @param gc_rule [Google::Cloud::Bigtable::GcRule] The garbage
|
41
|
-
# collection rule to be used for the column family. Optional. The
|
42
|
-
# service default value will be used when not specified.
|
43
|
-
# @example
|
44
|
-
# column_families = Google::Cloud::Bigtable::Instance::ColumnFamilyMap.new
|
45
|
-
#
|
46
|
-
# gc_rule_1 = Google::Cloud::Bigtable::GcRule.max_versions(3)
|
47
|
-
# column_families.add('cf1', gc_rule_1)
|
48
|
-
#
|
49
|
-
# gc_rule = Google::Cloud::Bigtable::GcRule.max_age(1800)
|
50
|
-
# column_families.add('cf2', gc_rule)
|
51
|
-
|
52
|
-
def add name, gc_rule = nil
|
53
|
-
cf = Google::Bigtable::Admin::V2::ColumnFamily.new
|
54
|
-
cf.gc_rule = gc_rule.to_grpc if gc_rule
|
55
|
-
self[name] = cf
|
56
|
-
end
|
57
|
-
|
58
|
-
# Removes a column family from the map.
|
59
|
-
#
|
60
|
-
# @param name [String] Column family name
|
61
|
-
# @return [Google::Bigtable::Admin::V2::ColumnFamily]
|
62
|
-
|
63
|
-
def remove name
|
64
|
-
delete(name)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|