google-cloud-bigquery 1.14.0 → 1.42.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +17 -54
  3. data/CHANGELOG.md +377 -0
  4. data/CONTRIBUTING.md +328 -116
  5. data/LOGGING.md +1 -1
  6. data/OVERVIEW.md +21 -20
  7. data/TROUBLESHOOTING.md +2 -8
  8. data/lib/google/cloud/bigquery/argument.rb +197 -0
  9. data/lib/google/cloud/bigquery/convert.rb +155 -173
  10. data/lib/google/cloud/bigquery/copy_job.rb +74 -26
  11. data/lib/google/cloud/bigquery/credentials.rb +5 -12
  12. data/lib/google/cloud/bigquery/data.rb +109 -18
  13. data/lib/google/cloud/bigquery/dataset/access.rb +474 -52
  14. data/lib/google/cloud/bigquery/dataset/list.rb +7 -13
  15. data/lib/google/cloud/bigquery/dataset/tag.rb +67 -0
  16. data/lib/google/cloud/bigquery/dataset.rb +1044 -287
  17. data/lib/google/cloud/bigquery/external/avro_source.rb +107 -0
  18. data/lib/google/cloud/bigquery/external/bigtable_source/column.rb +404 -0
  19. data/lib/google/cloud/bigquery/external/bigtable_source/column_family.rb +945 -0
  20. data/lib/google/cloud/bigquery/external/bigtable_source.rb +230 -0
  21. data/lib/google/cloud/bigquery/external/csv_source.rb +481 -0
  22. data/lib/google/cloud/bigquery/external/data_source.rb +771 -0
  23. data/lib/google/cloud/bigquery/external/json_source.rb +170 -0
  24. data/lib/google/cloud/bigquery/external/parquet_source.rb +148 -0
  25. data/lib/google/cloud/bigquery/external/sheets_source.rb +166 -0
  26. data/lib/google/cloud/bigquery/external.rb +50 -2256
  27. data/lib/google/cloud/bigquery/extract_job.rb +226 -61
  28. data/lib/google/cloud/bigquery/insert_response.rb +1 -3
  29. data/lib/google/cloud/bigquery/job/list.rb +10 -14
  30. data/lib/google/cloud/bigquery/job.rb +289 -14
  31. data/lib/google/cloud/bigquery/load_job.rb +810 -136
  32. data/lib/google/cloud/bigquery/model/list.rb +5 -9
  33. data/lib/google/cloud/bigquery/model.rb +247 -16
  34. data/lib/google/cloud/bigquery/policy.rb +432 -0
  35. data/lib/google/cloud/bigquery/project/list.rb +6 -11
  36. data/lib/google/cloud/bigquery/project.rb +509 -250
  37. data/lib/google/cloud/bigquery/query_job.rb +594 -128
  38. data/lib/google/cloud/bigquery/routine/list.rb +165 -0
  39. data/lib/google/cloud/bigquery/routine.rb +1227 -0
  40. data/lib/google/cloud/bigquery/schema/field.rb +413 -63
  41. data/lib/google/cloud/bigquery/schema.rb +221 -48
  42. data/lib/google/cloud/bigquery/service.rb +204 -112
  43. data/lib/google/cloud/bigquery/standard_sql.rb +269 -53
  44. data/lib/google/cloud/bigquery/table/async_inserter.rb +86 -43
  45. data/lib/google/cloud/bigquery/table/list.rb +6 -11
  46. data/lib/google/cloud/bigquery/table.rb +1470 -377
  47. data/lib/google/cloud/bigquery/time.rb +6 -0
  48. data/lib/google/cloud/bigquery/version.rb +1 -1
  49. data/lib/google/cloud/bigquery.rb +4 -6
  50. data/lib/google-cloud-bigquery.rb +14 -13
  51. metadata +66 -38
@@ -34,9 +34,12 @@ module Google
34
34
  # "WHERE time_of_date = @time",
35
35
  # params: { time: fourpm }
36
36
  #
37
+ # # Iterate over the first page of results
37
38
  # data.each do |row|
38
39
  # puts row[:name]
39
40
  # end
41
+ # # Retrieve the next page of results
42
+ # data = data.next if data.next?
40
43
  #
41
44
  # @example Create Time with fractional seconds:
42
45
  # require "google/cloud/bigquery"
@@ -49,9 +52,12 @@ module Google
49
52
  # "WHERE time_of_date >= @time",
50
53
  # params: { time: precise_time }
51
54
  #
55
+ # # Iterate over the first page of results
52
56
  # data.each do |row|
53
57
  # puts row[:name]
54
58
  # end
59
+ # # Retrieve the next page of results
60
+ # data = data.next if data.next?
55
61
  #
56
62
  Time = Struct.new :value
57
63
  end
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Bigquery
19
- VERSION = "1.14.0".freeze
19
+ VERSION = "1.42.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -66,8 +66,8 @@ module Google
66
66
  # dataset = bigquery.dataset "my_dataset"
67
67
  # table = dataset.table "my_table"
68
68
  #
69
- def self.new project_id: nil, credentials: nil, scope: nil, retries: nil,
70
- timeout: nil, endpoint: nil, project: nil, keyfile: nil
69
+ def self.new project_id: nil, credentials: nil, scope: nil, retries: nil, timeout: nil, endpoint: nil,
70
+ project: nil, keyfile: nil
71
71
  scope ||= configure.scope
72
72
  retries ||= configure.retries
73
73
  timeout ||= configure.timeout
@@ -84,7 +84,7 @@ module Google
84
84
  Bigquery::Project.new(
85
85
  Bigquery::Service.new(
86
86
  project_id, credentials,
87
- retries: retries, timeout: timeout, host: endpoint
87
+ retries: retries, timeout: timeout, host: endpoint, quota_project: configure.quota_project
88
88
  )
89
89
  )
90
90
  end
@@ -121,9 +121,7 @@ module Google
121
121
  # @private Resolve project.
122
122
  def self.resolve_project_id given_project, credentials
123
123
  project_id = given_project || default_project_id
124
- if credentials.respond_to? :project_id
125
- project_id ||= credentials.project_id
126
- end
124
+ project_id ||= credentials.project_id if credentials.respond_to? :project_id
127
125
  project_id.to_s # Always cast to a string
128
126
  end
129
127
 
@@ -53,9 +53,15 @@ module Google
53
53
  # bigquery = gcloud.bigquery
54
54
  # dataset = bigquery.dataset "my_dataset"
55
55
  # table = dataset.table "my_table"
56
- # table.data.each do |row|
57
- # puts row
56
+ #
57
+ # data = table.data
58
+ #
59
+ # # Iterate over the first page of results
60
+ # data.each do |row|
61
+ # puts row[:name]
58
62
  # end
63
+ # # Retrieve the next page of results
64
+ # data = data.next if data.next?
59
65
  #
60
66
  # @example The default scope can be overridden with the `scope` option:
61
67
  # require "google/cloud"
@@ -103,13 +109,10 @@ module Google
103
109
  # dataset = bigquery.dataset "my_dataset"
104
110
  # table = dataset.table "my_table"
105
111
  #
106
- def self.bigquery project_id = nil, credentials = nil, scope: nil,
107
- retries: nil, timeout: nil
112
+ def self.bigquery project_id = nil, credentials = nil, scope: nil, retries: nil, timeout: nil
108
113
  require "google/cloud/bigquery"
109
- Google::Cloud::Bigquery.new project_id: project_id,
110
- credentials: credentials,
111
- scope: scope, retries: retries,
112
- timeout: timeout
114
+ Google::Cloud::Bigquery.new project_id: project_id, credentials: credentials,
115
+ scope: scope, retries: retries, timeout: timeout
113
116
  end
114
117
  end
115
118
  end
@@ -121,18 +124,16 @@ Google::Cloud.configure.add_config! :bigquery do |config|
121
124
  end
122
125
  default_creds = Google::Cloud::Config.deferred do
123
126
  Google::Cloud::Config.credentials_from_env(
124
- "BIGQUERY_CREDENTIALS", "BIGQUERY_CREDENTIALS_JSON",
125
- "BIGQUERY_KEYFILE", "BIGQUERY_KEYFILE_JSON"
127
+ "BIGQUERY_CREDENTIALS", "BIGQUERY_CREDENTIALS_JSON", "BIGQUERY_KEYFILE", "BIGQUERY_KEYFILE_JSON"
126
128
  )
127
129
  end
128
130
 
129
131
  config.add_field! :project_id, default_project, match: String, allow_nil: true
130
132
  config.add_alias! :project, :project_id
131
- config.add_field! :credentials, default_creds,
132
- match: [String, Hash, Google::Auth::Credentials],
133
- allow_nil: true
133
+ config.add_field! :credentials, default_creds, match: [String, Hash, Google::Auth::Credentials], allow_nil: true
134
134
  config.add_alias! :keyfile, :credentials
135
135
  config.add_field! :scope, nil, match: [String, Array]
136
+ config.add_field! :quota_project, nil, match: String
136
137
  config.add_field! :retries, nil, match: Integer
137
138
  config.add_field! :timeout, nil, match: Integer
138
139
  config.add_field! :endpoint, nil, match: String
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.14.0
4
+ version: 1.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,70 +9,70 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-08-23 00:00:00.000000000 Z
12
+ date: 2023-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: google-cloud-core
15
+ name: concurrent-ruby
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.2'
20
+ version: '1.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.2'
27
+ version: '1.0'
28
28
  - !ruby/object:Gem::Dependency
29
- name: google-api-client
29
+ name: google-apis-bigquery_v2
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0.26'
34
+ version: '0.1'
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.26'
41
+ version: '0.1'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: googleauth
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 0.6.2
48
+ version: 0.16.2
49
49
  - - "<"
50
50
  - !ruby/object:Gem::Version
51
- version: 0.10.0
51
+ version: 2.a
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: 0.6.2
58
+ version: 0.16.2
59
59
  - - "<"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.0
61
+ version: 2.a
62
62
  - !ruby/object:Gem::Dependency
63
- name: concurrent-ruby
63
+ name: google-cloud-core
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '1.6'
69
69
  type: :runtime
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
75
+ version: '1.6'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: mini_mime
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -88,63 +88,77 @@ dependencies:
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.0'
90
90
  - !ruby/object:Gem::Dependency
91
- name: minitest
91
+ name: autotest-suffix
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '5.10'
96
+ version: '1.1'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '5.10'
103
+ version: '1.1'
104
104
  - !ruby/object:Gem::Dependency
105
- name: minitest-autotest
105
+ name: google-cloud-data_catalog
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.0'
110
+ version: '1.2'
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.0'
117
+ version: '1.2'
118
118
  - !ruby/object:Gem::Dependency
119
- name: minitest-focus
119
+ name: google-style
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.1'
124
+ version: 1.26.1
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.1'
131
+ version: 1.26.1
132
132
  - !ruby/object:Gem::Dependency
133
- name: minitest-rg
133
+ name: minitest
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '5.2'
138
+ version: '5.16'
139
139
  type: :development
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '5.2'
145
+ version: '5.16'
146
146
  - !ruby/object:Gem::Dependency
147
- name: autotest-suffix
147
+ name: minitest-autotest
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: minitest-focus
148
162
  requirement: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
@@ -158,47 +172,47 @@ dependencies:
158
172
  - !ruby/object:Gem::Version
159
173
  version: '1.1'
160
174
  - !ruby/object:Gem::Dependency
161
- name: redcarpet
175
+ name: minitest-rg
162
176
  requirement: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '3.0'
180
+ version: '5.2'
167
181
  type: :development
168
182
  prerelease: false
169
183
  version_requirements: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '3.0'
187
+ version: '5.2'
174
188
  - !ruby/object:Gem::Dependency
175
- name: rubocop
189
+ name: redcarpet
176
190
  requirement: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: 0.64.0
194
+ version: '3.0'
181
195
  type: :development
182
196
  prerelease: false
183
197
  version_requirements: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: 0.64.0
201
+ version: '3.0'
188
202
  - !ruby/object:Gem::Dependency
189
203
  name: simplecov
190
204
  requirement: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: '0.9'
208
+ version: '0.18'
195
209
  type: :development
196
210
  prerelease: false
197
211
  version_requirements: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: '0.9'
215
+ version: '0.18'
202
216
  - !ruby/object:Gem::Dependency
203
217
  name: yard
204
218
  requirement: !ruby/object:Gem::Requirement
@@ -246,6 +260,7 @@ files:
246
260
  - TROUBLESHOOTING.md
247
261
  - lib/google-cloud-bigquery.rb
248
262
  - lib/google/cloud/bigquery.rb
263
+ - lib/google/cloud/bigquery/argument.rb
249
264
  - lib/google/cloud/bigquery/convert.rb
250
265
  - lib/google/cloud/bigquery/copy_job.rb
251
266
  - lib/google/cloud/bigquery/credentials.rb
@@ -253,8 +268,18 @@ files:
253
268
  - lib/google/cloud/bigquery/dataset.rb
254
269
  - lib/google/cloud/bigquery/dataset/access.rb
255
270
  - lib/google/cloud/bigquery/dataset/list.rb
271
+ - lib/google/cloud/bigquery/dataset/tag.rb
256
272
  - lib/google/cloud/bigquery/encryption_configuration.rb
257
273
  - lib/google/cloud/bigquery/external.rb
274
+ - lib/google/cloud/bigquery/external/avro_source.rb
275
+ - lib/google/cloud/bigquery/external/bigtable_source.rb
276
+ - lib/google/cloud/bigquery/external/bigtable_source/column.rb
277
+ - lib/google/cloud/bigquery/external/bigtable_source/column_family.rb
278
+ - lib/google/cloud/bigquery/external/csv_source.rb
279
+ - lib/google/cloud/bigquery/external/data_source.rb
280
+ - lib/google/cloud/bigquery/external/json_source.rb
281
+ - lib/google/cloud/bigquery/external/parquet_source.rb
282
+ - lib/google/cloud/bigquery/external/sheets_source.rb
258
283
  - lib/google/cloud/bigquery/extract_job.rb
259
284
  - lib/google/cloud/bigquery/insert_response.rb
260
285
  - lib/google/cloud/bigquery/job.rb
@@ -262,9 +287,12 @@ files:
262
287
  - lib/google/cloud/bigquery/load_job.rb
263
288
  - lib/google/cloud/bigquery/model.rb
264
289
  - lib/google/cloud/bigquery/model/list.rb
290
+ - lib/google/cloud/bigquery/policy.rb
265
291
  - lib/google/cloud/bigquery/project.rb
266
292
  - lib/google/cloud/bigquery/project/list.rb
267
293
  - lib/google/cloud/bigquery/query_job.rb
294
+ - lib/google/cloud/bigquery/routine.rb
295
+ - lib/google/cloud/bigquery/routine/list.rb
268
296
  - lib/google/cloud/bigquery/schema.rb
269
297
  - lib/google/cloud/bigquery/schema/field.rb
270
298
  - lib/google/cloud/bigquery/service.rb
@@ -286,14 +314,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
286
314
  requirements:
287
315
  - - ">="
288
316
  - !ruby/object:Gem::Version
289
- version: 2.0.0
317
+ version: '2.6'
290
318
  required_rubygems_version: !ruby/object:Gem::Requirement
291
319
  requirements:
292
320
  - - ">="
293
321
  - !ruby/object:Gem::Version
294
322
  version: '0'
295
323
  requirements: []
296
- rubygems_version: 3.0.4
324
+ rubygems_version: 3.4.2
297
325
  signing_key:
298
326
  specification_version: 4
299
327
  summary: API Client library for Google BigQuery