google-cloud-bigquery 1.12.0 → 1.13.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 +9 -1
- data/LOGGING.md +1 -1
- data/lib/google/cloud/bigquery/job/list.rb +8 -11
- data/lib/google/cloud/bigquery/project.rb +31 -7
- data/lib/google/cloud/bigquery/service.rb +5 -1
- data/lib/google/cloud/bigquery/table.rb +46 -0
- data/lib/google/cloud/bigquery/table/async_inserter.rb +2 -1
- data/lib/google/cloud/bigquery/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5749ebc4d81b2e758eea899e5e13f8d1852c51b2a7076ed5eb853920b690beb3
|
4
|
+
data.tar.gz: abdade7b534e45a3522b5572b41d899c5a5c88b92d14932804e272d13740efaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0d63cd756ed4361f7dfcfb85f2adadad578f932c5d06cab802803d8a9a82a7e7274089716e8ad580f2cbaa2d21b6b7db898a9be833aa6f4aac161c0549df103
|
7
|
+
data.tar.gz: 959b228436b7d9fc601380b5fa93254a8e317275dc04c9014535cd244694277d0334d76110e1eed48891d774cb66d2f19a41e6da89a8e9527a523ad1e32a73c4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.13.0 / 2019-07-31
|
4
|
+
|
5
|
+
* Add Table#require_partition_filter
|
6
|
+
* List jobs using min and max created_at
|
7
|
+
* Reduce thread usage at startup
|
8
|
+
* Allocate threads in pool as needed, not all up front
|
9
|
+
* Update documentation links
|
10
|
+
|
3
11
|
### 1.12.0 / 2019-07-10
|
4
12
|
|
5
13
|
* Add BigQuery Model API
|
@@ -34,7 +42,7 @@
|
|
34
42
|
* Add copy and extract methods to Project
|
35
43
|
* Add Project#extract and Project#extract_job
|
36
44
|
* Add Project#copy and Project#copy_job
|
37
|
-
* Deprecate dryrun param in Table#copy_job, Table#extract_job and
|
45
|
+
* Deprecate dryrun param in Table#copy_job, Table#extract_job and
|
38
46
|
Table#load_job
|
39
47
|
* Fix memoization in Dataset#exists? and Table#exists?
|
40
48
|
* Add force param to Dataset#exists? and Table#exists?
|
data/LOGGING.md
CHANGED
@@ -6,7 +6,7 @@ Client](https://github.com/google/google-api-ruby-client/blob/master/README.md#l
|
|
6
6
|
library. The logger that you set may be a Ruby stdlib
|
7
7
|
[`Logger`](https://ruby-doc.org/stdlib-2.4.0/libdoc/logger/rdoc/Logger.html) as
|
8
8
|
shown below, or a
|
9
|
-
[`Google::Cloud::Logging::Logger`](https://googleapis.
|
9
|
+
[`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
|
10
10
|
that will write logs to [Stackdriver
|
11
11
|
Logging](https://cloud.google.com/logging/).
|
12
12
|
|
@@ -71,9 +71,9 @@ module Google
|
|
71
71
|
def next
|
72
72
|
return nil unless next?
|
73
73
|
ensure_service!
|
74
|
-
|
75
|
-
|
76
|
-
self.class.from_gapi
|
74
|
+
next_options = @options.merge token: token
|
75
|
+
next_gapi = @service.list_jobs next_options
|
76
|
+
self.class.from_gapi next_gapi, @service, next_options
|
77
77
|
end
|
78
78
|
|
79
79
|
##
|
@@ -141,17 +141,14 @@ module Google
|
|
141
141
|
##
|
142
142
|
# @private New Job::List from a Google API Client
|
143
143
|
# Google::Apis::BigqueryV2::JobList object.
|
144
|
-
def self.from_gapi gapi_list, service,
|
145
|
-
filter = nil
|
144
|
+
def self.from_gapi gapi_list, service, options = {}
|
146
145
|
jobs = List.new(Array(gapi_list.jobs).map do |gapi_object|
|
147
146
|
Job.from_gapi gapi_object, service
|
148
147
|
end)
|
149
|
-
jobs.instance_variable_set :@token,
|
150
|
-
jobs.instance_variable_set :@etag,
|
151
|
-
jobs.instance_variable_set :@service,
|
152
|
-
jobs.instance_variable_set :@
|
153
|
-
jobs.instance_variable_set :@max, max
|
154
|
-
jobs.instance_variable_set :@filter, filter
|
148
|
+
jobs.instance_variable_set :@token, gapi_list.next_page_token
|
149
|
+
jobs.instance_variable_set :@etag, gapi_list.etag
|
150
|
+
jobs.instance_variable_set :@service, service
|
151
|
+
jobs.instance_variable_set :@options, options
|
155
152
|
jobs
|
156
153
|
end
|
157
154
|
|
@@ -1024,11 +1024,17 @@ module Google
|
|
1024
1024
|
# Retrieves the list of jobs belonging to the project.
|
1025
1025
|
#
|
1026
1026
|
# @param [Boolean] all Whether to display jobs owned by all users in the
|
1027
|
-
# project. The default is `false`.
|
1027
|
+
# project. The default is `false`. Optional.
|
1028
1028
|
# @param [String] token A previously-returned page token representing
|
1029
|
-
# part of the larger set of results to view.
|
1030
|
-
# @param [Integer] max Maximum number of jobs to return.
|
1031
|
-
# @param [String] filter A filter for job state.
|
1029
|
+
# part of the larger set of results to view. Optional.
|
1030
|
+
# @param [Integer] max Maximum number of jobs to return. Optional.
|
1031
|
+
# @param [String] filter A filter for job state. Optional.
|
1032
|
+
# @param [Time] min_created_at Min value for {Job#created_at}. When
|
1033
|
+
# provided, only jobs created after or at this time are returned.
|
1034
|
+
# Optional.
|
1035
|
+
# @param [Time] max_created_at Max value for {Job#created_at}. When
|
1036
|
+
# provided, only jobs created before or at this time are returned.
|
1037
|
+
# Optional.
|
1032
1038
|
#
|
1033
1039
|
# Acceptable values are:
|
1034
1040
|
#
|
@@ -1059,6 +1065,20 @@ module Google
|
|
1059
1065
|
# # process job
|
1060
1066
|
# end
|
1061
1067
|
#
|
1068
|
+
# @example Retrieve only jobs created within provided times:
|
1069
|
+
# require "google/cloud/bigquery"
|
1070
|
+
#
|
1071
|
+
# bigquery = Google::Cloud::Bigquery.new
|
1072
|
+
#
|
1073
|
+
# two_days_ago = Time.now - 60*60*24*2
|
1074
|
+
# three_days_ago = Time.now - 60*60*24*3
|
1075
|
+
#
|
1076
|
+
# jobs = bigquery.jobs min_created_at: three_days_ago,
|
1077
|
+
# max_created_at: two_days_ago
|
1078
|
+
# jobs.each do |job|
|
1079
|
+
# # process job
|
1080
|
+
# end
|
1081
|
+
#
|
1062
1082
|
# @example Retrieve all jobs: (See {Job::List#all})
|
1063
1083
|
# require "google/cloud/bigquery"
|
1064
1084
|
#
|
@@ -1069,11 +1089,15 @@ module Google
|
|
1069
1089
|
# # process job
|
1070
1090
|
# end
|
1071
1091
|
#
|
1072
|
-
def jobs all: nil, token: nil, max: nil, filter: nil
|
1092
|
+
def jobs all: nil, token: nil, max: nil, filter: nil,
|
1093
|
+
min_created_at: nil, max_created_at: nil
|
1073
1094
|
ensure_service!
|
1074
|
-
options = {
|
1095
|
+
options = {
|
1096
|
+
all: all, token: token, max: max, filter: filter,
|
1097
|
+
min_created_at: min_created_at, max_created_at: max_created_at
|
1098
|
+
}
|
1075
1099
|
gapi = service.list_jobs options
|
1076
|
-
Job::List.from_gapi gapi, service,
|
1100
|
+
Job::List.from_gapi gapi, service, options
|
1077
1101
|
end
|
1078
1102
|
|
1079
1103
|
##
|
@@ -297,11 +297,15 @@ module Google
|
|
297
297
|
# been granted the READER job role.
|
298
298
|
def list_jobs options = {}
|
299
299
|
# The list operation is considered idempotent
|
300
|
+
min_creation_time = Convert.time_to_millis options[:min_created_at]
|
301
|
+
max_creation_time = Convert.time_to_millis options[:max_created_at]
|
300
302
|
execute backoff: true do
|
301
303
|
service.list_jobs \
|
302
304
|
@project, all_users: options[:all], max_results: options[:max],
|
303
305
|
page_token: options[:token], projection: "full",
|
304
|
-
state_filter: options[:filter]
|
306
|
+
state_filter: options[:filter],
|
307
|
+
min_creation_time: min_creation_time,
|
308
|
+
max_creation_time: max_creation_time
|
305
309
|
end
|
306
310
|
end
|
307
311
|
|
@@ -325,6 +325,52 @@ module Google
|
|
325
325
|
patch_gapi! :time_partitioning
|
326
326
|
end
|
327
327
|
|
328
|
+
###
|
329
|
+
# Whether queries over this table require a partition filter that can be
|
330
|
+
# used for partition elimination to be specified. See [Partitioned
|
331
|
+
# Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
332
|
+
#
|
333
|
+
# @return [Boolean, nil] `true` when a partition filter will be
|
334
|
+
# required, `false` otherwise, or `nil` if the object is a reference
|
335
|
+
# (see {#reference?}).
|
336
|
+
#
|
337
|
+
# @!group Attributes
|
338
|
+
#
|
339
|
+
def require_partition_filter
|
340
|
+
return nil if reference?
|
341
|
+
ensure_full_data!
|
342
|
+
@gapi.require_partition_filter
|
343
|
+
end
|
344
|
+
|
345
|
+
##
|
346
|
+
# Sets whether queries over this table require a partition filter. See
|
347
|
+
# [Partitioned
|
348
|
+
# Tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
|
349
|
+
#
|
350
|
+
# If the table is not a full resource representation (see
|
351
|
+
# {#resource_full?}), the full representation will be retrieved before
|
352
|
+
# the update to comply with ETag-based optimistic concurrency control.
|
353
|
+
#
|
354
|
+
# @param [Boolean] new_require Whether queries over this table require a
|
355
|
+
# partition filter.
|
356
|
+
#
|
357
|
+
# @example
|
358
|
+
# require "google/cloud/bigquery"
|
359
|
+
#
|
360
|
+
# bigquery = Google::Cloud::Bigquery.new
|
361
|
+
# dataset = bigquery.dataset "my_dataset"
|
362
|
+
# table = dataset.create_table "my_table" do |table|
|
363
|
+
# table.require_partition_filter = true
|
364
|
+
# end
|
365
|
+
#
|
366
|
+
# @!group Attributes
|
367
|
+
#
|
368
|
+
def require_partition_filter= new_require
|
369
|
+
reload! unless resource_full?
|
370
|
+
@gapi.require_partition_filter = new_require
|
371
|
+
patch_gapi! :require_partition_filter
|
372
|
+
end
|
373
|
+
|
328
374
|
###
|
329
375
|
# Checks if the table is clustered.
|
330
376
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-bigquery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '0.
|
34
|
+
version: '0.26'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0.
|
41
|
+
version: '0.26'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: googleauth
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -293,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
293
|
- !ruby/object:Gem::Version
|
294
294
|
version: '0'
|
295
295
|
requirements: []
|
296
|
-
rubygems_version: 3.0.
|
296
|
+
rubygems_version: 3.0.4
|
297
297
|
signing_key:
|
298
298
|
specification_version: 4
|
299
299
|
summary: API Client library for Google BigQuery
|