google-cloud-bigquery 1.21.2 → 1.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -0
- data/CONTRIBUTING.md +1 -1
- data/lib/google-cloud-bigquery.rb +1 -0
- data/lib/google/cloud/bigquery.rb +1 -1
- data/lib/google/cloud/bigquery/convert.rb +3 -1
- data/lib/google/cloud/bigquery/copy_job.rb +15 -6
- data/lib/google/cloud/bigquery/dataset.rb +43 -20
- data/lib/google/cloud/bigquery/dataset/access.rb +293 -16
- data/lib/google/cloud/bigquery/external.rb +328 -3
- data/lib/google/cloud/bigquery/extract_job.rb +154 -50
- data/lib/google/cloud/bigquery/load_job.rb +197 -34
- data/lib/google/cloud/bigquery/model.rb +164 -8
- data/lib/google/cloud/bigquery/policy.rb +431 -0
- data/lib/google/cloud/bigquery/project.rb +137 -68
- data/lib/google/cloud/bigquery/query_job.rb +24 -12
- data/lib/google/cloud/bigquery/service.rb +50 -11
- data/lib/google/cloud/bigquery/table.rb +174 -37
- data/lib/google/cloud/bigquery/version.rb +1 -1
- metadata +7 -6
@@ -94,8 +94,7 @@ module Google
|
|
94
94
|
# otherwise.
|
95
95
|
#
|
96
96
|
def batch?
|
97
|
-
|
98
|
-
val == "BATCH"
|
97
|
+
@gapi.configuration.query.priority == "BATCH"
|
99
98
|
end
|
100
99
|
|
101
100
|
##
|
@@ -528,8 +527,9 @@ module Google
|
|
528
527
|
# The period for which the destination table will be partitioned, if
|
529
528
|
# any. See [Partitioned Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
530
529
|
#
|
531
|
-
# @return [String, nil] The partition type.
|
532
|
-
#
|
530
|
+
# @return [String, nil] The partition type. The supported types are `DAY`,
|
531
|
+
# `HOUR`, `MONTH`, and `YEAR`, which will generate one partition per day,
|
532
|
+
# hour, month, and year, respectively; or `nil` if not present.
|
533
533
|
#
|
534
534
|
# @!group Attributes
|
535
535
|
#
|
@@ -1031,12 +1031,21 @@ module Google
|
|
1031
1031
|
# Sets the labels to use for the job.
|
1032
1032
|
#
|
1033
1033
|
# @param [Hash] value A hash of user-provided labels associated with
|
1034
|
-
# the job. You can use these to organize and group your jobs.
|
1035
|
-
#
|
1036
|
-
#
|
1037
|
-
#
|
1038
|
-
#
|
1039
|
-
#
|
1034
|
+
# the job. You can use these to organize and group your jobs.
|
1035
|
+
#
|
1036
|
+
# The labels applied to a resource must meet the following requirements:
|
1037
|
+
#
|
1038
|
+
# * Each resource can have multiple labels, up to a maximum of 64.
|
1039
|
+
# * Each label must be a key-value pair.
|
1040
|
+
# * Keys have a minimum length of 1 character and a maximum length of
|
1041
|
+
# 63 characters, and cannot be empty. Values can be empty, and have
|
1042
|
+
# a maximum length of 63 characters.
|
1043
|
+
# * Keys and values can contain only lowercase letters, numeric characters,
|
1044
|
+
# underscores, and dashes. All characters must use UTF-8 encoding, and
|
1045
|
+
# international characters are allowed.
|
1046
|
+
# * The key portion of a label must be unique. However, you can use the
|
1047
|
+
# same key with multiple resources.
|
1048
|
+
# * Keys must start with a lowercase letter or international character.
|
1040
1049
|
#
|
1041
1050
|
# @!group Attributes
|
1042
1051
|
#
|
@@ -1293,13 +1302,16 @@ module Google
|
|
1293
1302
|
##
|
1294
1303
|
# Sets the partitioning for the destination table. See [Partitioned
|
1295
1304
|
# Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
1305
|
+
# The supported types are `DAY`, `HOUR`, `MONTH`, and `YEAR`, which will
|
1306
|
+
# generate one partition per day, hour, month, and year, respectively.
|
1296
1307
|
#
|
1297
1308
|
# You can only set the partitioning field while creating a table.
|
1298
1309
|
# BigQuery does not allow you to change partitioning on an existing
|
1299
1310
|
# table.
|
1300
1311
|
#
|
1301
|
-
# @param [String] type The partition type.
|
1302
|
-
#
|
1312
|
+
# @param [String] type The partition type. The supported types are `DAY`,
|
1313
|
+
# `HOUR`, `MONTH`, and `YEAR`, which will generate one partition per day,
|
1314
|
+
# hour, month, and year, respectively.
|
1303
1315
|
#
|
1304
1316
|
# @example
|
1305
1317
|
# require "google/cloud/bigquery"
|
@@ -43,12 +43,13 @@ module Google
|
|
43
43
|
|
44
44
|
##
|
45
45
|
# Creates a new Service instance.
|
46
|
-
def initialize project, credentials, retries: nil, timeout: nil, host: nil
|
46
|
+
def initialize project, credentials, retries: nil, timeout: nil, host: nil, quota_project: nil
|
47
47
|
@project = project
|
48
48
|
@credentials = credentials
|
49
49
|
@retries = retries
|
50
50
|
@timeout = timeout
|
51
51
|
@host = host
|
52
|
+
@quota_project = quota_project
|
52
53
|
end
|
53
54
|
|
54
55
|
def service
|
@@ -64,6 +65,9 @@ module Google
|
|
64
65
|
service.request_options.header ||= {}
|
65
66
|
service.request_options.header["x-goog-api-client"] = \
|
66
67
|
"gl-ruby/#{RUBY_VERSION} gccl/#{Google::Cloud::Bigquery::VERSION}"
|
68
|
+
service.request_options.query ||= {}
|
69
|
+
service.request_options.query["prettyPrint"] = false
|
70
|
+
service.request_options.quota_project = @quota_project if @quota_project
|
67
71
|
service.authorization = @credentials.client
|
68
72
|
service.root_url = host if host
|
69
73
|
service
|
@@ -138,6 +142,8 @@ module Google
|
|
138
142
|
end
|
139
143
|
end
|
140
144
|
|
145
|
+
##
|
146
|
+
# Gets the specified table resource by full table reference.
|
141
147
|
def get_project_table project_id, dataset_id, table_id
|
142
148
|
# The get operation is considered idempotent
|
143
149
|
execute backoff: true do
|
@@ -151,10 +157,7 @@ module Google
|
|
151
157
|
# it only returns the table resource,
|
152
158
|
# which describes the structure of this table.
|
153
159
|
def get_table dataset_id, table_id
|
154
|
-
|
155
|
-
execute backoff: true do
|
156
|
-
get_project_table @project, dataset_id, table_id
|
157
|
-
end
|
160
|
+
get_project_table @project, dataset_id, table_id
|
158
161
|
end
|
159
162
|
|
160
163
|
##
|
@@ -179,6 +182,34 @@ module Google
|
|
179
182
|
end
|
180
183
|
end
|
181
184
|
|
185
|
+
##
|
186
|
+
# Returns Google::Apis::BigqueryV2::Policy
|
187
|
+
def get_table_policy dataset_id, table_id
|
188
|
+
policy_options = API::GetPolicyOptions.new requested_policy_version: 1
|
189
|
+
execute do
|
190
|
+
service.get_table_iam_policy table_path(dataset_id, table_id),
|
191
|
+
API::GetIamPolicyRequest.new(options: policy_options)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
##
|
196
|
+
# @param [Google::Apis::BigqueryV2::Policy] new_policy
|
197
|
+
def set_table_policy dataset_id, table_id, new_policy
|
198
|
+
execute do
|
199
|
+
service.set_table_iam_policy table_path(dataset_id, table_id),
|
200
|
+
API::SetIamPolicyRequest.new(policy: new_policy)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
##
|
205
|
+
# Returns Google::Apis::BigqueryV2::TestIamPermissionsResponse
|
206
|
+
def test_table_permissions dataset_id, table_id, permissions
|
207
|
+
execute do
|
208
|
+
service.test_table_iam_permissions table_path(dataset_id, table_id),
|
209
|
+
API::TestIamPermissionsRequest.new(permissions: permissions)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
182
213
|
##
|
183
214
|
# Deletes the table specified by tableId from the dataset.
|
184
215
|
# If the table contains data, all the data will be deleted.
|
@@ -250,18 +281,21 @@ module Google
|
|
250
281
|
end
|
251
282
|
end
|
252
283
|
|
253
|
-
# Gets the specified model resource by model
|
254
|
-
|
255
|
-
# it only returns the model resource,
|
256
|
-
# which describes the structure of this model.
|
257
|
-
def get_model dataset_id, model_id
|
284
|
+
# Gets the specified model resource by full model reference.
|
285
|
+
def get_project_model project_id, dataset_id, model_id
|
258
286
|
# The get operation is considered idempotent
|
259
287
|
execute backoff: true do
|
260
|
-
json_txt = service.get_model
|
288
|
+
json_txt = service.get_model project_id, dataset_id, model_id, options: { skip_deserialization: true }
|
261
289
|
JSON.parse json_txt, symbolize_names: true
|
262
290
|
end
|
263
291
|
end
|
264
292
|
|
293
|
+
# Gets the specified model resource by model ID. This method does not return the data in the model, it only
|
294
|
+
# returns the model resource, which describes the structure of this model.
|
295
|
+
def get_model dataset_id, model_id
|
296
|
+
get_project_model @project, dataset_id, model_id
|
297
|
+
end
|
298
|
+
|
265
299
|
##
|
266
300
|
# Updates information in an existing model, replacing fields that
|
267
301
|
# are provided in the submitted model resource.
|
@@ -502,6 +536,11 @@ module Google
|
|
502
536
|
|
503
537
|
protected
|
504
538
|
|
539
|
+
# Creates a formatted table path.
|
540
|
+
def table_path dataset_id, table_id
|
541
|
+
"projects/#{@project}/datasets/#{dataset_id}/tables/#{table_id}"
|
542
|
+
end
|
543
|
+
|
505
544
|
# Generate a random string similar to the BigQuery service job IDs.
|
506
545
|
def generate_id
|
507
546
|
SecureRandom.urlsafe_base64 21
|
@@ -23,6 +23,7 @@ require "google/cloud/bigquery/external"
|
|
23
23
|
require "google/cloud/bigquery/insert_response"
|
24
24
|
require "google/cloud/bigquery/table/async_inserter"
|
25
25
|
require "google/cloud/bigquery/convert"
|
26
|
+
require "google/cloud/bigquery/policy"
|
26
27
|
require "google/apis/bigquery_v2"
|
27
28
|
|
28
29
|
module Google
|
@@ -250,9 +251,10 @@ module Google
|
|
250
251
|
# The period for which the table is time partitioned, if any. See
|
251
252
|
# [Partitioned Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
252
253
|
#
|
253
|
-
# @return [String, nil] The time partition type.
|
254
|
-
#
|
255
|
-
#
|
254
|
+
# @return [String, nil] The time partition type. The supported types are `DAY`,
|
255
|
+
# `HOUR`, `MONTH`, and `YEAR`, which will generate one partition per day,
|
256
|
+
# hour, month, and year, respectively; or `nil` if not set or the object is a
|
257
|
+
# reference (see {#reference?}).
|
256
258
|
#
|
257
259
|
# @!group Attributes
|
258
260
|
#
|
@@ -265,13 +267,16 @@ module Google
|
|
265
267
|
##
|
266
268
|
# Sets the time partitioning type for the table. See [Partitioned
|
267
269
|
# Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
270
|
+
# The supported types are `DAY`, `HOUR`, `MONTH`, and `YEAR`, which will
|
271
|
+
# generate one partition per day, hour, month, and year, respectively.
|
268
272
|
#
|
269
273
|
# You can only set time partitioning when creating a table as in
|
270
274
|
# the example below. BigQuery does not allow you to change time partitioning
|
271
275
|
# on an existing table.
|
272
276
|
#
|
273
|
-
# @param [String] type The time partition type.
|
274
|
-
#
|
277
|
+
# @param [String] type The time partition type. The supported types are `DAY`,
|
278
|
+
# `HOUR`, `MONTH`, and `YEAR`, which will generate one partition per day,
|
279
|
+
# hour, month, and year, respectively.
|
275
280
|
#
|
276
281
|
# @example
|
277
282
|
# require "google/cloud/bigquery"
|
@@ -820,12 +825,19 @@ module Google
|
|
820
825
|
# @param [Hash<String, String>] labels A hash containing key/value
|
821
826
|
# pairs.
|
822
827
|
#
|
823
|
-
#
|
824
|
-
#
|
825
|
-
#
|
826
|
-
# *
|
827
|
-
# *
|
828
|
-
#
|
828
|
+
# The labels applied to a resource must meet the following requirements:
|
829
|
+
#
|
830
|
+
# * Each resource can have multiple labels, up to a maximum of 64.
|
831
|
+
# * Each label must be a key-value pair.
|
832
|
+
# * Keys have a minimum length of 1 character and a maximum length of
|
833
|
+
# 63 characters, and cannot be empty. Values can be empty, and have
|
834
|
+
# a maximum length of 63 characters.
|
835
|
+
# * Keys and values can contain only lowercase letters, numeric characters,
|
836
|
+
# underscores, and dashes. All characters must use UTF-8 encoding, and
|
837
|
+
# international characters are allowed.
|
838
|
+
# * The key portion of a label must be unique. However, you can use the
|
839
|
+
# same key with multiple resources.
|
840
|
+
# * Keys must start with a lowercase letter or international character.
|
829
841
|
#
|
830
842
|
# @example
|
831
843
|
# require "google/cloud/bigquery"
|
@@ -1263,6 +1275,107 @@ module Google
|
|
1263
1275
|
Array(udfs_gapi).map { |udf| udf.inline_code || udf.resource_uri }
|
1264
1276
|
end
|
1265
1277
|
|
1278
|
+
##
|
1279
|
+
# Gets the Cloud IAM access control policy for the table. The latest policy will be read from the service. See
|
1280
|
+
# also {#update_policy}.
|
1281
|
+
#
|
1282
|
+
# @see https://cloud.google.com/iam/docs/managing-policies Managing Policies
|
1283
|
+
# @see https://cloud.google.com/bigquery/docs/table-access-controls-intro Controlling access to tables
|
1284
|
+
#
|
1285
|
+
# @return [Policy] The frozen policy for the table.
|
1286
|
+
#
|
1287
|
+
# @example
|
1288
|
+
# require "google/cloud/bigquery"
|
1289
|
+
#
|
1290
|
+
# bigquery = Google::Cloud::Bigquery.new
|
1291
|
+
# dataset = bigquery.dataset "my_dataset"
|
1292
|
+
# table = dataset.table "my_table"
|
1293
|
+
#
|
1294
|
+
# policy = table.policy
|
1295
|
+
#
|
1296
|
+
# policy.frozen? #=> true
|
1297
|
+
# binding_owner = policy.bindings.find { |b| b.role == "roles/owner" }
|
1298
|
+
# binding_owner.role #=> "roles/owner"
|
1299
|
+
# binding_owner.members #=> ["user:owner@example.com"]
|
1300
|
+
# binding_owner.frozen? #=> true
|
1301
|
+
# binding_owner.members.frozen? #=> true
|
1302
|
+
#
|
1303
|
+
def policy
|
1304
|
+
raise ArgumentError, "Block argument not supported: Use #update_policy instead." if block_given?
|
1305
|
+
ensure_service!
|
1306
|
+
gapi = service.get_table_policy dataset_id, table_id
|
1307
|
+
Policy.from_gapi(gapi).freeze
|
1308
|
+
end
|
1309
|
+
|
1310
|
+
##
|
1311
|
+
# Updates the Cloud IAM access control policy for the table. The latest policy will be read from the service.
|
1312
|
+
# See also {#policy}.
|
1313
|
+
#
|
1314
|
+
# @see https://cloud.google.com/iam/docs/managing-policies Managing Policies
|
1315
|
+
# @see https://cloud.google.com/bigquery/docs/table-access-controls-intro Controlling access to tables
|
1316
|
+
#
|
1317
|
+
# @yield [policy] A block for updating the policy. The latest policy will be read from the service and passed to
|
1318
|
+
# the block. After the block completes, the modified policy will be written to the service.
|
1319
|
+
# @yieldparam [Policy] policy The mutable Policy for the table.
|
1320
|
+
#
|
1321
|
+
# @return [Policy] The updated and frozen policy for the table.
|
1322
|
+
#
|
1323
|
+
# @example Update the policy by passing a block.
|
1324
|
+
# require "google/cloud/bigquery"
|
1325
|
+
#
|
1326
|
+
# bigquery = Google::Cloud::Bigquery.new
|
1327
|
+
# dataset = bigquery.dataset "my_dataset"
|
1328
|
+
# table = dataset.table "my_table"
|
1329
|
+
#
|
1330
|
+
# table.update_policy do |p|
|
1331
|
+
# p.grant role: "roles/viewer", members: "user:viewer@example.com"
|
1332
|
+
# p.revoke role: "roles/editor", members: "user:editor@example.com"
|
1333
|
+
# p.revoke role: "roles/owner"
|
1334
|
+
# end # 2 API calls
|
1335
|
+
#
|
1336
|
+
def update_policy
|
1337
|
+
raise ArgumentError, "A block updating the policy must be provided" unless block_given?
|
1338
|
+
ensure_service!
|
1339
|
+
gapi = service.get_table_policy dataset_id, table_id
|
1340
|
+
policy = Policy.from_gapi gapi
|
1341
|
+
yield policy
|
1342
|
+
# TODO: Check for changes before calling RPC
|
1343
|
+
gapi = service.set_table_policy dataset_id, table_id, policy.to_gapi
|
1344
|
+
Policy.from_gapi(gapi).freeze
|
1345
|
+
end
|
1346
|
+
|
1347
|
+
##
|
1348
|
+
# Tests the specified permissions against the [Cloud
|
1349
|
+
# IAM](https://cloud.google.com/iam/) access control policy.
|
1350
|
+
#
|
1351
|
+
# @see https://cloud.google.com/iam/docs/managing-policies Managing Policies
|
1352
|
+
#
|
1353
|
+
# @param [String, Array<String>] permissions The set of permissions
|
1354
|
+
# against which to check access. Permissions must be of the format
|
1355
|
+
# `bigquery.resource.capability`.
|
1356
|
+
# See https://cloud.google.com/bigquery/docs/access-control#bigquery.
|
1357
|
+
#
|
1358
|
+
# @return [Array<String>] The frozen array of permissions held by the caller.
|
1359
|
+
#
|
1360
|
+
# @example
|
1361
|
+
# require "google/cloud/bigquery"
|
1362
|
+
#
|
1363
|
+
# bigquery = Google::Cloud::Bigquery.new
|
1364
|
+
# dataset = bigquery.dataset "my_dataset"
|
1365
|
+
# table = dataset.table "my_table"
|
1366
|
+
#
|
1367
|
+
# permissions = table.test_iam_permissions "bigquery.tables.get",
|
1368
|
+
# "bigquery.tables.delete"
|
1369
|
+
# permissions.include? "bigquery.tables.get" #=> true
|
1370
|
+
# permissions.include? "bigquery.tables.delete" #=> false
|
1371
|
+
#
|
1372
|
+
def test_iam_permissions *permissions
|
1373
|
+
permissions = Array(permissions).flatten
|
1374
|
+
ensure_service!
|
1375
|
+
gapi = service.test_table_permissions dataset_id, table_id, permissions
|
1376
|
+
gapi.permissions.freeze
|
1377
|
+
end
|
1378
|
+
|
1266
1379
|
##
|
1267
1380
|
# Retrieves data from the table.
|
1268
1381
|
#
|
@@ -1370,13 +1483,21 @@ module Google
|
|
1370
1483
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
1371
1484
|
# be used.
|
1372
1485
|
# @param [Hash] labels A hash of user-provided labels associated with
|
1373
|
-
# the job. You can use these to organize and group your jobs.
|
1374
|
-
#
|
1375
|
-
#
|
1376
|
-
#
|
1377
|
-
#
|
1378
|
-
#
|
1379
|
-
#
|
1486
|
+
# the job. You can use these to organize and group your jobs.
|
1487
|
+
#
|
1488
|
+
# The labels applied to a resource must meet the following requirements:
|
1489
|
+
#
|
1490
|
+
# * Each resource can have multiple labels, up to a maximum of 64.
|
1491
|
+
# * Each label must be a key-value pair.
|
1492
|
+
# * Keys have a minimum length of 1 character and a maximum length of
|
1493
|
+
# 63 characters, and cannot be empty. Values can be empty, and have
|
1494
|
+
# a maximum length of 63 characters.
|
1495
|
+
# * Keys and values can contain only lowercase letters, numeric characters,
|
1496
|
+
# underscores, and dashes. All characters must use UTF-8 encoding, and
|
1497
|
+
# international characters are allowed.
|
1498
|
+
# * The key portion of a label must be unique. However, you can use the
|
1499
|
+
# same key with multiple resources.
|
1500
|
+
# * Keys must start with a lowercase letter or international character.
|
1380
1501
|
# @param [Boolean] dryrun If set, don't actually run this job. Behavior
|
1381
1502
|
# is undefined however for non-query jobs and may result in an error.
|
1382
1503
|
# Deprecated.
|
@@ -1511,11 +1632,11 @@ module Google
|
|
1511
1632
|
# The geographic location for the job ("US", "EU", etc.) can be set via
|
1512
1633
|
# {ExtractJob::Updater#location=} in a block passed to this method. If
|
1513
1634
|
# the table is a full resource representation (see {#resource_full?}),
|
1514
|
-
# the location of the job will be
|
1635
|
+
# the location of the job will automatically be set to the location of
|
1515
1636
|
# the table.
|
1516
1637
|
#
|
1517
|
-
# @see https://cloud.google.com/bigquery/exporting-data
|
1518
|
-
# Exporting
|
1638
|
+
# @see https://cloud.google.com/bigquery/docs/exporting-data
|
1639
|
+
# Exporting table data
|
1519
1640
|
#
|
1520
1641
|
# @param [Google::Cloud::Storage::File, String, Array<String>]
|
1521
1642
|
# extract_url The Google Storage file or file URI pattern(s) to which
|
@@ -1551,13 +1672,21 @@ module Google
|
|
1551
1672
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
1552
1673
|
# be used.
|
1553
1674
|
# @param [Hash] labels A hash of user-provided labels associated with
|
1554
|
-
# the job. You can use these to organize and group your jobs.
|
1555
|
-
#
|
1556
|
-
#
|
1557
|
-
#
|
1558
|
-
#
|
1559
|
-
#
|
1560
|
-
#
|
1675
|
+
# the job. You can use these to organize and group your jobs.
|
1676
|
+
#
|
1677
|
+
# The labels applied to a resource must meet the following requirements:
|
1678
|
+
#
|
1679
|
+
# * Each resource can have multiple labels, up to a maximum of 64.
|
1680
|
+
# * Each label must be a key-value pair.
|
1681
|
+
# * Keys have a minimum length of 1 character and a maximum length of
|
1682
|
+
# 63 characters, and cannot be empty. Values can be empty, and have
|
1683
|
+
# a maximum length of 63 characters.
|
1684
|
+
# * Keys and values can contain only lowercase letters, numeric characters,
|
1685
|
+
# underscores, and dashes. All characters must use UTF-8 encoding, and
|
1686
|
+
# international characters are allowed.
|
1687
|
+
# * The key portion of a label must be unique. However, you can use the
|
1688
|
+
# same key with multiple resources.
|
1689
|
+
# * Keys must start with a lowercase letter or international character.
|
1561
1690
|
# @param [Boolean] dryrun If set, don't actually run this job. Behavior
|
1562
1691
|
# is undefined however for non-query jobs and may result in an error.
|
1563
1692
|
# Deprecated.
|
@@ -1609,8 +1738,8 @@ module Google
|
|
1609
1738
|
# the location of the job will be automatically set to the location of
|
1610
1739
|
# the table.
|
1611
1740
|
#
|
1612
|
-
# @see https://cloud.google.com/bigquery/exporting-data
|
1613
|
-
# Exporting
|
1741
|
+
# @see https://cloud.google.com/bigquery/docs/exporting-data
|
1742
|
+
# Exporting table data
|
1614
1743
|
#
|
1615
1744
|
# @param [Google::Cloud::Storage::File, String, Array<String>]
|
1616
1745
|
# extract_url The Google Storage file or file URI pattern(s) to which
|
@@ -1791,13 +1920,21 @@ module Google
|
|
1791
1920
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
1792
1921
|
# be used.
|
1793
1922
|
# @param [Hash] labels A hash of user-provided labels associated with
|
1794
|
-
# the job. You can use these to organize and group your jobs.
|
1795
|
-
#
|
1796
|
-
#
|
1797
|
-
#
|
1798
|
-
#
|
1799
|
-
#
|
1800
|
-
#
|
1923
|
+
# the job. You can use these to organize and group your jobs.
|
1924
|
+
#
|
1925
|
+
# The labels applied to a resource must meet the following requirements:
|
1926
|
+
#
|
1927
|
+
# * Each resource can have multiple labels, up to a maximum of 64.
|
1928
|
+
# * Each label must be a key-value pair.
|
1929
|
+
# * Keys have a minimum length of 1 character and a maximum length of
|
1930
|
+
# 63 characters, and cannot be empty. Values can be empty, and have
|
1931
|
+
# a maximum length of 63 characters.
|
1932
|
+
# * Keys and values can contain only lowercase letters, numeric characters,
|
1933
|
+
# underscores, and dashes. All characters must use UTF-8 encoding, and
|
1934
|
+
# international characters are allowed.
|
1935
|
+
# * The key portion of a label must be unique. However, you can use the
|
1936
|
+
# same key with multiple resources.
|
1937
|
+
# * Keys must start with a lowercase letter or international character.
|
1801
1938
|
# @param [Boolean] dryrun If set, don't actually run this job. Behavior
|
1802
1939
|
# is undefined however for non-query jobs and may result in an error.
|
1803
1940
|
# Deprecated.
|