google-cloud-bigtable 0.6.2 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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 +2 -2
- data/lib/google/cloud/bigtable/admin/v2.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/credentials.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +7 -6
- data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +7 -55
- data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +1 -1
- 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 +2 -2
- data/lib/google/cloud/bigtable/v2/bigtable_client.rb +13 -13
- data/lib/google/cloud/bigtable/v2/credentials.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +17 -14
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +7 -55
- 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
@@ -17,10 +17,12 @@
|
|
17
17
|
|
18
18
|
require "google/cloud/bigtable/app_profile/list"
|
19
19
|
require "google/cloud/bigtable/app_profile/job"
|
20
|
+
require "google/cloud/bigtable/routing_policy"
|
20
21
|
|
21
22
|
module Google
|
22
23
|
module Cloud
|
23
24
|
module Bigtable
|
25
|
+
##
|
24
26
|
# # AppProfile
|
25
27
|
#
|
26
28
|
# A configuration object describing how Cloud Bigtable should treat traffic
|
@@ -33,7 +35,7 @@ module Google
|
|
33
35
|
#
|
34
36
|
# instance = bigtable.instance("my-instance")
|
35
37
|
#
|
36
|
-
# app_profile =
|
38
|
+
# app_profile = instance.app_profile("my-app-profile")
|
37
39
|
#
|
38
40
|
# # Update
|
39
41
|
# app_profile.description = "User data instance app profile"
|
@@ -58,88 +60,115 @@ module Google
|
|
58
60
|
@changed_fields = {}
|
59
61
|
end
|
60
62
|
|
61
|
-
|
63
|
+
##
|
64
|
+
# The unique identifier for the project to which the app profile belongs.
|
62
65
|
#
|
63
66
|
# @return [String]
|
67
|
+
#
|
64
68
|
def project_id
|
65
69
|
@grpc.name.split("/")[1]
|
66
70
|
end
|
67
71
|
|
68
|
-
|
72
|
+
##
|
73
|
+
# The unique identifier for the instance to which the app profile belongs.
|
69
74
|
#
|
70
75
|
# @return [String]
|
76
|
+
#
|
71
77
|
def instance_id
|
72
78
|
@grpc.name.split("/")[3]
|
73
79
|
end
|
74
80
|
|
81
|
+
##
|
75
82
|
# The unique identifier for the app profile.
|
76
83
|
#
|
77
84
|
# @return [String]
|
85
|
+
#
|
78
86
|
def name
|
79
87
|
@grpc.name.split("/")[5]
|
80
88
|
end
|
81
89
|
|
82
|
-
|
83
|
-
#
|
90
|
+
##
|
91
|
+
# The full path for the app profile resource. Values are of the form:
|
92
|
+
# `projects/<project_id>/instances/<instance_id>/appProfiles/<app_profile_name>`.
|
84
93
|
#
|
85
94
|
# @return [String]
|
95
|
+
#
|
86
96
|
def path
|
87
97
|
@grpc.name
|
88
98
|
end
|
89
99
|
|
100
|
+
##
|
90
101
|
# Etag for optimistic concurrency control.
|
91
102
|
#
|
92
103
|
# @return [String]
|
104
|
+
#
|
93
105
|
def etag
|
94
106
|
@grpc.etag
|
95
107
|
end
|
96
108
|
|
97
|
-
|
109
|
+
##
|
110
|
+
# Description of the app profile.
|
98
111
|
#
|
99
112
|
# @return [String]
|
113
|
+
#
|
100
114
|
def description
|
101
115
|
@grpc.description
|
102
116
|
end
|
103
117
|
|
104
|
-
|
118
|
+
##
|
119
|
+
# Sets the description of the app profile.
|
105
120
|
#
|
106
121
|
# @param text [String] Description text
|
122
|
+
#
|
107
123
|
def description= text
|
108
124
|
@grpc.description = text
|
109
125
|
@changed_fields["description"] = "description"
|
110
126
|
end
|
111
127
|
|
112
|
-
|
128
|
+
##
|
129
|
+
# Gets the multi-cluster routing policy, if present.
|
130
|
+
#
|
131
|
+
# @return [Google::Cloud::Bigtable::MultiClusterRoutingUseAny, nil]
|
113
132
|
#
|
114
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
|
115
133
|
def multi_cluster_routing
|
116
|
-
@grpc.multi_cluster_routing_use_any
|
134
|
+
return nil unless @grpc.multi_cluster_routing_use_any
|
135
|
+
|
136
|
+
Google::Cloud::Bigtable::MultiClusterRoutingUseAny.new
|
117
137
|
end
|
118
138
|
|
119
|
-
|
139
|
+
##
|
140
|
+
# Gets the single cluster routing policy, if present.
|
141
|
+
#
|
142
|
+
# @return [Google::Cloud::Bigtable::SingleClusterRouting, nil]
|
120
143
|
#
|
121
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting]
|
122
144
|
def single_cluster_routing
|
123
|
-
@grpc.single_cluster_routing
|
145
|
+
return nil unless @grpc.single_cluster_routing
|
146
|
+
|
147
|
+
Google::Cloud::Bigtable::SingleClusterRouting.new(
|
148
|
+
@grpc.single_cluster_routing.cluster_id,
|
149
|
+
@grpc.single_cluster_routing.allow_transactional_writes
|
150
|
+
)
|
124
151
|
end
|
125
152
|
|
126
|
-
|
153
|
+
##
|
154
|
+
# Sets the routing policy for the app profile.
|
127
155
|
#
|
128
|
-
# @param policy [Google::
|
129
|
-
# The routing policy for all read/write requests that use this app profile.
|
130
|
-
# A value must be explicitly set.
|
156
|
+
# @param policy [Google::Cloud::Bigtable::RoutingPolicy]
|
157
|
+
# The routing policy for all read/write requests that use this app profile. A value must be explicitly set.
|
131
158
|
#
|
132
159
|
# Routing Policies:
|
133
|
-
# *
|
134
|
-
#
|
135
|
-
#
|
136
|
-
# read-your-writes
|
137
|
-
#
|
138
|
-
#
|
139
|
-
#
|
140
|
-
#
|
141
|
-
#
|
142
|
-
#
|
160
|
+
# * {Google::Cloud::Bigtable::MultiClusterRoutingUseAny} - Read/write
|
161
|
+
# requests may be routed to any cluster in the instance and will
|
162
|
+
# fail over to another cluster in the event of transient errors or
|
163
|
+
# delays. Choosing this option sacrifices read-your-writes
|
164
|
+
# consistency to improve availability.
|
165
|
+
# * {Google::Cloud::Bigtable::SingleClusterRouting} - Unconditionally
|
166
|
+
# routes all read/write requests to a specific cluster. This option
|
167
|
+
# preserves read-your-writes consistency but does not improve
|
168
|
+
# availability. Value contains `cluster_id` and optional field
|
169
|
+
# `allow_transactional_writes`.
|
170
|
+
#
|
171
|
+
# @example Set multi cluster routing policy.
|
143
172
|
# require "google/cloud/bigtable"
|
144
173
|
#
|
145
174
|
# bigtable = Google::Cloud::Bigtable.new
|
@@ -149,7 +178,7 @@ module Google
|
|
149
178
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
150
179
|
# app_profile.routing_policy = routing_policy
|
151
180
|
#
|
152
|
-
# @example Set single cluster routing policy
|
181
|
+
# @example Set single cluster routing policy.
|
153
182
|
# require "google/cloud/bigtable"
|
154
183
|
#
|
155
184
|
# bigtable = Google::Cloud::Bigtable.new
|
@@ -157,31 +186,62 @@ module Google
|
|
157
186
|
# app_profile = instance.app_profile("my-app-profile")
|
158
187
|
#
|
159
188
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
160
|
-
# "my-instance-cluster-1"
|
189
|
+
# "my-instance-cluster-1",
|
161
190
|
# allow_transactional_writes: true
|
162
191
|
# )
|
163
192
|
# app_profile.routing_policy = routing_policy
|
164
193
|
#
|
165
194
|
def routing_policy= policy
|
166
|
-
|
167
|
-
|
168
|
-
@grpc.single_cluster_routing =
|
195
|
+
routing_policy_grpc = policy.to_grpc
|
196
|
+
if routing_policy_grpc.is_a? Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting
|
197
|
+
@grpc.single_cluster_routing = routing_policy_grpc
|
169
198
|
@changed_fields["routing_policy"] = "single_cluster_routing"
|
170
199
|
else
|
171
|
-
@grpc.multi_cluster_routing_use_any =
|
200
|
+
@grpc.multi_cluster_routing_use_any = routing_policy_grpc
|
172
201
|
@changed_fields["routing_policy"] = "multi_cluster_routing_use_any"
|
173
202
|
end
|
174
203
|
end
|
175
204
|
|
176
|
-
|
205
|
+
##
|
206
|
+
# Gets the routing policy for all read/write requests that use the app
|
207
|
+
# profile.
|
208
|
+
#
|
209
|
+
# Routing Policies:
|
210
|
+
# * {Google::Cloud::Bigtable::MultiClusterRoutingUseAny} - Read/write
|
211
|
+
# requests may be routed to any cluster in the instance and will
|
212
|
+
# fail over to another cluster in the event of transient errors or
|
213
|
+
# delays. Choosing this option sacrifices read-your-writes
|
214
|
+
# consistency to improve availability.
|
215
|
+
# * {Google::Cloud::Bigtable::SingleClusterRouting} - Unconditionally
|
216
|
+
# routes all read/write requests to a specific cluster. This option
|
217
|
+
# preserves read-your-writes consistency but does not improve
|
218
|
+
# availability. Value contains `cluster_id` and optional field
|
219
|
+
# `allow_transactional_writes`.
|
220
|
+
#
|
221
|
+
# @return [Google::Cloud::Bigtable::RoutingPolicy]
|
222
|
+
#
|
223
|
+
# @example
|
224
|
+
# require "google/cloud/bigtable"
|
225
|
+
#
|
226
|
+
# bigtable = Google::Cloud::Bigtable.new
|
227
|
+
#
|
228
|
+
# instance = bigtable.instance("my-instance")
|
229
|
+
#
|
230
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
177
231
|
#
|
178
|
-
#
|
232
|
+
# app_profile = instance.create_app_profile(
|
233
|
+
# "my-app-profile",
|
234
|
+
# routing_policy,
|
235
|
+
# description: "App profile for user data instance"
|
236
|
+
# )
|
237
|
+
# puts app_profile.routing_policy
|
179
238
|
#
|
180
239
|
def routing_policy
|
181
|
-
|
240
|
+
single_cluster_routing || multi_cluster_routing
|
182
241
|
end
|
183
242
|
|
184
|
-
|
243
|
+
##
|
244
|
+
# Deletes the app profile.
|
185
245
|
#
|
186
246
|
# @param ignore_warnings [Boolean]
|
187
247
|
# Default value is false. If true, ignore safety checks when deleting
|
@@ -194,7 +254,8 @@ module Google
|
|
194
254
|
# bigtable = Google::Cloud::Bigtable.new
|
195
255
|
#
|
196
256
|
# instance = bigtable.instance("my-instance")
|
197
|
-
#
|
257
|
+
#
|
258
|
+
# app_profile = instance.app_profile("my-app-profile")
|
198
259
|
#
|
199
260
|
# app_profile.delete(ignore_warnings: true) # Ignore warnings.
|
200
261
|
#
|
@@ -203,27 +264,26 @@ module Google
|
|
203
264
|
#
|
204
265
|
def delete ignore_warnings: false
|
205
266
|
ensure_service!
|
206
|
-
service.delete_app_profile
|
207
|
-
instance_id,
|
208
|
-
name,
|
209
|
-
ignore_warnings: ignore_warnings
|
210
|
-
)
|
267
|
+
service.delete_app_profile instance_id, name, ignore_warnings: ignore_warnings
|
211
268
|
true
|
212
269
|
end
|
213
270
|
|
214
|
-
|
271
|
+
##
|
272
|
+
# Updates the app profile.
|
215
273
|
#
|
216
274
|
# @param ignore_warnings [Boolean]
|
217
275
|
# Default value is false. If true, ignore safety checks when updating
|
218
276
|
# the app profile.
|
219
277
|
# @return [Google::Cloud::Bigtable::AppProfile::Job]
|
220
278
|
#
|
221
|
-
# @example
|
279
|
+
# @example
|
222
280
|
# require "google/cloud/bigtable"
|
223
281
|
#
|
224
282
|
# bigtable = Google::Cloud::Bigtable.new
|
225
283
|
#
|
226
|
-
#
|
284
|
+
# instance = bigtable.instance("my-instance")
|
285
|
+
#
|
286
|
+
# app_profile = instance.app_profile("my-app-profile")
|
227
287
|
#
|
228
288
|
# app_profile.description = "User data instance app profile"
|
229
289
|
# app_profile.routing_policy = \
|
@@ -238,17 +298,13 @@ module Google
|
|
238
298
|
# app_profile = job.app_profile
|
239
299
|
# end
|
240
300
|
#
|
241
|
-
#
|
242
|
-
# job = app_profile.save(ignore_warnings: true)
|
243
|
-
# job.wait_until_done!
|
244
|
-
#
|
245
|
-
# @example Update with single cluster routing
|
301
|
+
# @example Update with single cluster routing.
|
246
302
|
# require "google/cloud/bigtable"
|
247
303
|
#
|
248
304
|
# bigtable = Google::Cloud::Bigtable.new
|
249
305
|
#
|
250
306
|
# instance = bigtable.instance("my-instance")
|
251
|
-
# app_profile =
|
307
|
+
# app_profile = instance.app_profile("my-app-profile")
|
252
308
|
#
|
253
309
|
# app_profile.description = "User data instance app profile"
|
254
310
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
@@ -261,10 +317,6 @@ module Google
|
|
261
317
|
#
|
262
318
|
# job.done? #=> false
|
263
319
|
# job.reload!
|
264
|
-
# job.done? #=> false
|
265
|
-
#
|
266
|
-
# # Reload job until completion.
|
267
|
-
# job.wait_until_done!
|
268
320
|
# job.done? #=> true
|
269
321
|
#
|
270
322
|
# if job.error?
|
@@ -273,52 +325,62 @@ module Google
|
|
273
325
|
# app_profile = job.app_profile
|
274
326
|
# puts app_profile.name
|
275
327
|
# end
|
276
|
-
|
328
|
+
#
|
277
329
|
def save ignore_warnings: false
|
278
330
|
ensure_service!
|
279
|
-
update_mask = Google::Protobuf::FieldMask.new
|
280
|
-
|
281
|
-
)
|
282
|
-
grpc = service.update_app_profile(
|
283
|
-
@grpc,
|
284
|
-
update_mask,
|
285
|
-
ignore_warnings: ignore_warnings
|
286
|
-
)
|
331
|
+
update_mask = Google::Protobuf::FieldMask.new paths: @changed_fields.values
|
332
|
+
grpc = service.update_app_profile @grpc, update_mask, ignore_warnings: ignore_warnings
|
287
333
|
@changed_fields.clear
|
288
|
-
AppProfile::Job.from_grpc
|
334
|
+
AppProfile::Job.from_grpc grpc, service
|
289
335
|
end
|
290
336
|
alias update save
|
291
337
|
|
292
|
-
|
338
|
+
##
|
339
|
+
# Reloads the app profile data.
|
293
340
|
#
|
294
341
|
# @return [Google::Cloud::Bigtable::AppProfile]
|
295
|
-
|
342
|
+
#
|
296
343
|
def reload!
|
297
|
-
@grpc = service.get_app_profile
|
344
|
+
@grpc = service.get_app_profile instance_id, name
|
298
345
|
self
|
299
346
|
end
|
300
347
|
|
301
|
-
|
348
|
+
##
|
349
|
+
# Creates an instance of the multi cluster routing policy.
|
350
|
+
#
|
351
|
+
# Read/write requests may be routed to any cluster in the instance and
|
352
|
+
# will fail over to another cluster in the event of transient errors or
|
353
|
+
# delays. Choosing this option sacrifices read-your-writes consistency
|
354
|
+
# to improve availability.
|
302
355
|
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
307
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
|
356
|
+
# @return [Google::Cloud::Bigtable::MultiClusterRoutingUseAny]
|
357
|
+
#
|
358
|
+
# @example
|
359
|
+
# require "google/cloud/bigtable"
|
308
360
|
#
|
309
|
-
#
|
361
|
+
# bigtable = Google::Cloud::Bigtable.new
|
310
362
|
#
|
311
|
-
#
|
363
|
+
# instance = bigtable.instance("my-instance")
|
364
|
+
#
|
365
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
366
|
+
#
|
367
|
+
# app_profile = instance.create_app_profile(
|
368
|
+
# "my-app-profile",
|
369
|
+
# routing_policy,
|
370
|
+
# description: "App profile for user data instance"
|
371
|
+
# )
|
372
|
+
# puts app_profile.routing_policy
|
312
373
|
#
|
313
374
|
def self.multi_cluster_routing
|
314
|
-
Google::Bigtable::
|
375
|
+
Google::Cloud::Bigtable::MultiClusterRoutingUseAny.new
|
315
376
|
end
|
316
377
|
|
317
|
-
|
378
|
+
##
|
379
|
+
# Creates an instance of the single cluster routing policy.
|
318
380
|
#
|
319
381
|
# Unconditionally routes all read/write requests to a specific cluster.
|
320
|
-
# This option preserves read-your-writes consistency but does not
|
321
|
-
# availability.
|
382
|
+
# This option preserves read-your-writes consistency but does not
|
383
|
+
# improve availability.
|
322
384
|
#
|
323
385
|
# @param cluster_id [String]
|
324
386
|
# The cluster to which read/write requests should be routed.
|
@@ -327,25 +389,29 @@ module Google
|
|
327
389
|
# allowed by this app profile. It is unsafe to send these requests to
|
328
390
|
# the same table/row/column in multiple clusters.
|
329
391
|
# Default value is false.
|
330
|
-
# @return [Google::Bigtable::
|
392
|
+
# @return [Google::Cloud::Bigtable::SingleClusterRouting]
|
331
393
|
#
|
332
|
-
# @example
|
394
|
+
# @example
|
395
|
+
# require "google/cloud/bigtable"
|
333
396
|
#
|
334
|
-
# Google::Cloud::Bigtable
|
397
|
+
# bigtable = Google::Cloud::Bigtable.new
|
335
398
|
#
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
399
|
+
# instance = bigtable.instance("my-instance")
|
400
|
+
#
|
401
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
402
|
+
# "my-instance-cluster-1",
|
339
403
|
# allow_transactional_writes: true
|
340
404
|
# )
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
405
|
+
#
|
406
|
+
# app_profile = instance.create_app_profile(
|
407
|
+
# "my-app-profile",
|
408
|
+
# routing_policy,
|
409
|
+
# description: "App profile for user data instance"
|
410
|
+
# )
|
411
|
+
# puts app_profile.routing_policy
|
412
|
+
#
|
413
|
+
def self.single_cluster_routing cluster_id, allow_transactional_writes: false
|
414
|
+
Google::Cloud::Bigtable::SingleClusterRouting.new cluster_id, allow_transactional_writes
|
349
415
|
end
|
350
416
|
|
351
417
|
# @private
|
@@ -356,7 +422,7 @@ module Google
|
|
356
422
|
# @param service [Google::Cloud::Bigtable::Service]
|
357
423
|
# @return [Google::Cloud::Bigtable::Table]
|
358
424
|
def self.from_grpc grpc, service
|
359
|
-
new
|
425
|
+
new grpc, service
|
360
426
|
end
|
361
427
|
|
362
428
|
protected
|