google-cloud-bigquery 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -159,7 +159,7 @@ module Google
159
159
  ##
160
160
  # Raise an error unless an active service is available.
161
161
  def ensure_service!
162
- fail "Must have active connection" unless @service
162
+ raise "Must have active connection" unless @service
163
163
  end
164
164
  end
165
165
  end
@@ -55,7 +55,7 @@ module Google
55
55
  def self.from_urls urls, format = nil
56
56
  external_format = source_format_for urls, format
57
57
  if external_format.nil?
58
- fail ArgumentError, "Unable to determine external table format"
58
+ raise ArgumentError, "Unable to determine external table format"
59
59
  end
60
60
  external_class = table_class_for external_format
61
61
  external_class.new.tap do |e|
@@ -70,7 +70,7 @@ module Google
70
70
  external_format = source_format_for gapi.source_uris,
71
71
  gapi.source_format
72
72
  if external_format.nil?
73
- fail ArgumentError, "Unable to determine external table format"
73
+ raise ArgumentError, "Unable to determine external table format"
74
74
  end
75
75
  external_class = table_class_for external_format
76
76
  external_class.from_gapi gapi
@@ -79,17 +79,17 @@ module Google
79
79
  ##
80
80
  # @private Determine source_format from inputs
81
81
  def self.source_format_for urls, format
82
- val = { "csv" => "CSV",
83
- "json" => "NEWLINE_DELIMITED_JSON",
84
- "newline_delimited_json" => "NEWLINE_DELIMITED_JSON",
85
- "sheets" => "GOOGLE_SHEETS",
86
- "google_sheets" => "GOOGLE_SHEETS",
87
- "avro" => "AVRO",
88
- "datastore" => "DATASTORE_BACKUP",
89
- "backup" => "DATASTORE_BACKUP",
90
- "datastore_backup" => "DATASTORE_BACKUP",
91
- "bigtable" => "BIGTABLE"
92
- }[format.to_s.downcase]
82
+ val = {
83
+ "csv" => "CSV", "avro" => "AVRO",
84
+ "json" => "NEWLINE_DELIMITED_JSON",
85
+ "newline_delimited_json" => "NEWLINE_DELIMITED_JSON",
86
+ "sheets" => "GOOGLE_SHEETS",
87
+ "google_sheets" => "GOOGLE_SHEETS",
88
+ "datastore" => "DATASTORE_BACKUP",
89
+ "backup" => "DATASTORE_BACKUP",
90
+ "datastore_backup" => "DATASTORE_BACKUP",
91
+ "bigtable" => "BIGTABLE"
92
+ }[format.to_s.downcase]
93
93
  return val unless val.nil?
94
94
  Array(urls).each do |url|
95
95
  return "CSV" if url.end_with? ".csv"
@@ -556,7 +556,8 @@ module Google
556
556
 
557
557
  def frozen_check!
558
558
  return unless frozen?
559
- fail ArgumentError, "Cannot modify external data source when frozen"
559
+ raise ArgumentError,
560
+ "Cannot modify external data source when frozen"
560
561
  end
561
562
  end
562
563
 
@@ -1426,7 +1427,8 @@ module Google
1426
1427
 
1427
1428
  def frozen_check!
1428
1429
  return unless frozen?
1429
- fail ArgumentError, "Cannot modify external data source when frozen"
1430
+ raise ArgumentError,
1431
+ "Cannot modify external data source when frozen"
1430
1432
  end
1431
1433
 
1432
1434
  ##
@@ -1964,8 +1966,8 @@ module Google
1964
1966
 
1965
1967
  def frozen_check!
1966
1968
  return unless frozen?
1967
- fail ArgumentError,
1968
- "Cannot modify external data source when frozen"
1969
+ raise ArgumentError,
1970
+ "Cannot modify external data source when frozen"
1969
1971
  end
1970
1972
  end
1971
1973
 
@@ -2064,7 +2066,7 @@ module Google
2064
2066
  #
2065
2067
  def qualifier= new_qualifier
2066
2068
  frozen_check!
2067
- fail ArgumentError if new_qualifier.nil?
2069
+ raise ArgumentError if new_qualifier.nil?
2068
2070
 
2069
2071
  utf8_qualifier = new_qualifier.encode Encoding::UTF_8
2070
2072
  if utf8_qualifier.valid_encoding?
@@ -2342,8 +2344,8 @@ module Google
2342
2344
 
2343
2345
  def frozen_check!
2344
2346
  return unless frozen?
2345
- fail ArgumentError,
2346
- "Cannot modify external data source when frozen"
2347
+ raise ArgumentError,
2348
+ "Cannot modify external data source when frozen"
2347
2349
  end
2348
2350
  end
2349
2351
  end
@@ -60,7 +60,6 @@ module Google
60
60
  error_count.zero?
61
61
  end
62
62
 
63
-
64
63
  ##
65
64
  # The count of rows in the response, minus the count of errors for rows
66
65
  # that were not inserted.
@@ -71,7 +70,6 @@ module Google
71
70
  @rows.count - error_count
72
71
  end
73
72
 
74
-
75
73
  ##
76
74
  # The count of errors for rows that were not inserted.
77
75
  #
@@ -44,7 +44,7 @@ module Google
44
44
  # bigquery = Google::Cloud::Bigquery.new
45
45
  #
46
46
  # job = bigquery.query_job "SELECT COUNT(word) as count FROM " \
47
- # "publicdata.samples.shakespeare"
47
+ # "`bigquery-public-data.samples.shakespeare`"
48
48
  #
49
49
  # job.wait_until_done!
50
50
  #
@@ -162,7 +162,7 @@ module Google
162
162
  #
163
163
  def created_at
164
164
  ::Time.at(Integer(@gapi.statistics.creation_time) / 1000.0)
165
- rescue
165
+ rescue StandardError
166
166
  nil
167
167
  end
168
168
 
@@ -175,7 +175,7 @@ module Google
175
175
  #
176
176
  def started_at
177
177
  ::Time.at(Integer(@gapi.statistics.start_time) / 1000.0)
178
- rescue
178
+ rescue StandardError
179
179
  nil
180
180
  end
181
181
 
@@ -187,7 +187,7 @@ module Google
187
187
  #
188
188
  def ended_at
189
189
  ::Time.at(Integer(@gapi.statistics.end_time) / 1000.0)
190
- rescue
190
+ rescue StandardError
191
191
  nil
192
192
  end
193
193
 
@@ -199,7 +199,7 @@ module Google
199
199
  def configuration
200
200
  JSON.parse @gapi.configuration.to_json
201
201
  end
202
- alias_method :config, :configuration
202
+ alias config configuration
203
203
 
204
204
  ##
205
205
  # The statistics for the job. Returns a hash.
@@ -212,7 +212,7 @@ module Google
212
212
  def statistics
213
213
  JSON.parse @gapi.statistics.to_json
214
214
  end
215
- alias_method :stats, :statistics
215
+ alias stats statistics
216
216
 
217
217
  ##
218
218
  # The job's status. Returns a hash. The values contained in the hash are
@@ -236,7 +236,7 @@ module Google
236
236
  #
237
237
  # {
238
238
  # "reason"=>"notFound",
239
- # "message"=>"Not found: Table publicdata:samples.BAD_ID"
239
+ # "message"=>"Not found: Table bigquery-public-data:samples.BAD_ID"
240
240
  # }
241
241
  #
242
242
  def error
@@ -252,7 +252,7 @@ module Google
252
252
  #
253
253
  # {
254
254
  # "reason"=>"notFound",
255
- # "message"=>"Not found: Table publicdata:samples.BAD_ID"
255
+ # "message"=>"Not found: Table bigquery-public-data:samples.BAD_ID"
256
256
  # }
257
257
  #
258
258
  def errors
@@ -284,8 +284,10 @@ module Google
284
284
  #
285
285
  # bigquery = Google::Cloud::Bigquery.new
286
286
  #
287
- # job = bigquery.query_job "SELECT COUNT(word) as count FROM " \
288
- # "publicdata.samples.shakespeare"
287
+ # query = "SELECT COUNT(word) as count FROM " \
288
+ # "`bigquery-public-data.samples.shakespeare`"
289
+ #
290
+ # job = bigquery.query_job query
289
291
  #
290
292
  # job.cancel
291
293
  #
@@ -304,8 +306,10 @@ module Google
304
306
  #
305
307
  # bigquery = Google::Cloud::Bigquery.new
306
308
  #
307
- # job = bigquery.query_job "SELECT COUNT(word) as count FROM " \
308
- # "publicdata.samples.shakespeare"
309
+ # query = "SELECT COUNT(word) as count FROM " \
310
+ # "`bigquery-public-data.samples.shakespeare`"
311
+ #
312
+ # job = bigquery.query_job query
309
313
  #
310
314
  # job.wait_until_done!
311
315
  # job.rerun!
@@ -324,8 +328,10 @@ module Google
324
328
  #
325
329
  # bigquery = Google::Cloud::Bigquery.new
326
330
  #
327
- # job = bigquery.query_job "SELECT COUNT(word) as count FROM " \
328
- # "publicdata.samples.shakespeare"
331
+ # query = "SELECT COUNT(word) as count FROM " \
332
+ # "`bigquery-public-data.samples.shakespeare`"
333
+ #
334
+ # job = bigquery.query_job query
329
335
  #
330
336
  # job.done?
331
337
  # job.reload!
@@ -336,7 +342,7 @@ module Google
336
342
  gapi = service.get_job job_id
337
343
  @gapi = gapi
338
344
  end
339
- alias_method :refresh!, :reload!
345
+ alias refresh! reload!
340
346
 
341
347
  ##
342
348
  # Refreshes the job until the job is `DONE`. The delay between refreshes
@@ -357,7 +363,7 @@ module Google
357
363
  #
358
364
  def wait_until_done!
359
365
  backoff = lambda do |retries|
360
- delay = [retries ** 2 + 5, 60].min # Maximum delay is 60
366
+ delay = [retries**2 + 5, 60].min # Maximum delay is 60
361
367
  sleep delay
362
368
  end
363
369
  retries = 0
@@ -392,27 +398,29 @@ module Google
392
398
  body: error_body
393
399
  end
394
400
 
395
- protected
396
-
397
- ##
398
- # Raise an error unless an active connection is available.
399
- def ensure_service!
400
- fail "Must have active connection" unless service
401
- end
402
-
403
401
  ##
402
+ # @private
404
403
  # Get the subclass for a job type
405
404
  def self.klass_for gapi
406
405
  if gapi.configuration.copy
407
- return CopyJob
406
+ CopyJob
408
407
  elsif gapi.configuration.extract
409
- return ExtractJob
408
+ ExtractJob
410
409
  elsif gapi.configuration.load
411
- return LoadJob
410
+ LoadJob
412
411
  elsif gapi.configuration.query
413
- return QueryJob
412
+ QueryJob
413
+ else
414
+ Job
414
415
  end
415
- Job
416
+ end
417
+
418
+ protected
419
+
420
+ ##
421
+ # Raise an error unless an active connection is available.
422
+ def ensure_service!
423
+ raise "Must have active connection" unless service
416
424
  end
417
425
 
418
426
  def retrieve_table project_id, dataset_id, table_id
@@ -427,8 +435,8 @@ module Google
427
435
  codes = { "accessDenied" => 403, "backendError" => 500,
428
436
  "billingNotEnabled" => 403,
429
437
  "billingTierLimitExceeded" => 400, "blocked" => 403,
430
- "duplicate" => 409, "internalError" =>500, "invalid" => 400,
431
- "invalidQuery" => 400, "notFound" =>404,
438
+ "duplicate" => 409, "internalError" => 500,
439
+ "invalid" => 400, "invalidQuery" => 400, "notFound" => 404,
432
440
  "notImplemented" => 501, "quotaExceeded" => 403,
433
441
  "rateLimitExceeded" => 403, "resourceInUse" => 400,
434
442
  "resourcesExceeded" => 400, "responseTooLarge" => 403,
@@ -160,7 +160,7 @@ module Google
160
160
  ##
161
161
  # Raise an error unless an active service is available.
162
162
  def ensure_service!
163
- fail "Must have active connection" unless @service
163
+ raise "Must have active connection" unless @service
164
164
  end
165
165
  end
166
166
  end
@@ -276,7 +276,7 @@ module Google
276
276
  #
277
277
  def input_files
278
278
  Integer @gapi.statistics.load.input_files
279
- rescue
279
+ rescue StandardError
280
280
  nil
281
281
  end
282
282
 
@@ -287,7 +287,7 @@ module Google
287
287
  #
288
288
  def input_file_bytes
289
289
  Integer @gapi.statistics.load.input_file_bytes
290
- rescue
290
+ rescue StandardError
291
291
  nil
292
292
  end
293
293
 
@@ -299,7 +299,7 @@ module Google
299
299
  #
300
300
  def output_rows
301
301
  Integer @gapi.statistics.load.output_rows
302
- rescue
302
+ rescue StandardError
303
303
  nil
304
304
  end
305
305
 
@@ -311,7 +311,7 @@ module Google
311
311
  #
312
312
  def output_bytes
313
313
  Integer @gapi.statistics.load.output_bytes
314
- rescue
314
+ rescue StandardError
315
315
  nil
316
316
  end
317
317
  end
@@ -13,7 +13,6 @@
13
13
  # limitations under the License.
14
14
 
15
15
 
16
- require "google/cloud/env"
17
16
  require "google/cloud/errors"
18
17
  require "google/cloud/bigquery/service"
19
18
  require "google/cloud/bigquery/credentials"
@@ -83,16 +82,7 @@ module Google
83
82
  def project_id
84
83
  service.project
85
84
  end
86
- alias_method :project, :project_id
87
-
88
- ##
89
- # @private Default project_id.
90
- def self.default_project_id
91
- ENV["BIGQUERY_PROJECT"] ||
92
- ENV["GOOGLE_CLOUD_PROJECT"] ||
93
- ENV["GCLOUD_PROJECT"] ||
94
- Google::Cloud.env.project_id
95
- end
85
+ alias project project_id
96
86
 
97
87
  ##
98
88
  # Queries data by creating a [query
@@ -516,8 +506,8 @@ module Google
516
506
  if job.failed?
517
507
  begin
518
508
  # raise to activate ruby exception cause handling
519
- fail job.gapi_error
520
- rescue => e
509
+ raise job.gapi_error
510
+ rescue StandardError => e
521
511
  # wrap Google::Apis::Error with Google::Cloud::Error
522
512
  raise Google::Cloud::Error.from_error(e)
523
513
  end
@@ -667,7 +657,9 @@ module Google
667
657
 
668
658
  new_ds = Google::Apis::BigqueryV2::Dataset.new(
669
659
  dataset_reference: Google::Apis::BigqueryV2::DatasetReference.new(
670
- project_id: project, dataset_id: dataset_id))
660
+ project_id: project, dataset_id: dataset_id
661
+ )
662
+ )
671
663
 
672
664
  # Can set location only on creation, no Dataset#location method
673
665
  new_ds.update! location: location unless location.nil?
@@ -973,7 +965,7 @@ module Google
973
965
  ##
974
966
  # Raise an error unless an active service is available.
975
967
  def ensure_service!
976
- fail "Must have active connection" unless service
968
+ raise "Must have active connection" unless service
977
969
  end
978
970
  end
979
971
  end
@@ -157,7 +157,7 @@ module Google
157
157
  ##
158
158
  # Raise an error unless an active service is available.
159
159
  def ensure_service!
160
- fail "Must have active connection" unless @service
160
+ raise "Must have active connection" unless @service
161
161
  end
162
162
  end
163
163
  end
@@ -36,7 +36,7 @@ module Google
36
36
  # bigquery = Google::Cloud::Bigquery.new
37
37
  #
38
38
  # job = bigquery.query_job "SELECT COUNT(word) as count FROM " \
39
- # "publicdata.samples.shakespeare"
39
+ # "`bigquery-public-data.samples.shakespeare`"
40
40
  #
41
41
  # job.wait_until_done!
42
42
  #
@@ -113,7 +113,7 @@ module Google
113
113
 
114
114
  ##
115
115
  # Limits the billing tier for this job. Queries that have resource usage
116
- # beyond this tier will fail (without incurring a charge). If
116
+ # beyond this tier will raise (without incurring a charge). If
117
117
  # unspecified, this will be set to your project default. For more
118
118
  # information, see [High-Compute
119
119
  # queries](https://cloud.google.com/bigquery/pricing#high-compute).
@@ -127,7 +127,7 @@ module Google
127
127
 
128
128
  ##
129
129
  # Limits the bytes billed for this job. Queries that will have bytes
130
- # billed beyond this limit will fail (without incurring a charge). If
130
+ # billed beyond this limit will raise (without incurring a charge). If
131
131
  # `nil`, this will be set to your project default.
132
132
  #
133
133
  # @return [Integer, nil] The number of bytes, or `nil` for the project
@@ -135,7 +135,7 @@ module Google
135
135
  #
136
136
  def maximum_bytes_billed
137
137
  Integer @gapi.configuration.query.maximum_bytes_billed
138
- rescue
138
+ rescue StandardError
139
139
  nil
140
140
  end
141
141
 
@@ -156,7 +156,7 @@ module Google
156
156
  #
157
157
  def bytes_processed
158
158
  Integer @gapi.statistics.query.total_bytes_processed
159
- rescue
159
+ rescue StandardError
160
160
  nil
161
161
  end
162
162
 
@@ -171,7 +171,7 @@ module Google
171
171
  #
172
172
  # bigquery = Google::Cloud::Bigquery.new
173
173
  #
174
- # sql = "SELECT word FROM publicdata.samples.shakespeare"
174
+ # sql = "SELECT word FROM `bigquery-public-data.samples.shakespeare`"
175
175
  # job = bigquery.query_job sql
176
176
  #
177
177
  # job.wait_until_done!
@@ -253,7 +253,7 @@ module Google
253
253
  #
254
254
  # bigquery = Google::Cloud::Bigquery.new
255
255
  #
256
- # sql = "SELECT word FROM publicdata.samples.shakespeare"
256
+ # sql = "SELECT word FROM `bigquery-public-data.samples.shakespeare`"
257
257
  # job = bigquery.query_job sql
258
258
  #
259
259
  # job.wait_until_done!
@@ -289,7 +289,7 @@ module Google
289
289
  #
290
290
  # bigquery = Google::Cloud::Bigquery.new
291
291
  #
292
- # sql = "SELECT word FROM publicdata.samples.shakespeare"
292
+ # sql = "SELECT word FROM `bigquery-public-data.samples.shakespeare`"
293
293
  # job = bigquery.query_job sql
294
294
  #
295
295
  # job.wait_until_done!
@@ -311,7 +311,7 @@ module Google
311
311
  options
312
312
  Data.from_gapi_json data_hash, destination_table_gapi, service
313
313
  end
314
- alias_method :query_results, :data
314
+ alias query_results data
315
315
 
316
316
  ##
317
317
  # Represents a stage in the execution plan for the query.
@@ -347,7 +347,7 @@ module Google
347
347
  #
348
348
  # bigquery = Google::Cloud::Bigquery.new
349
349
  #
350
- # sql = "SELECT word FROM publicdata.samples.shakespeare"
350
+ # sql = "SELECT word FROM `bigquery-public-data.samples.shakespeare`"
351
351
  # job = bigquery.query_job sql
352
352
  #
353
353
  # job.wait_until_done!
@@ -416,7 +416,7 @@ module Google
416
416
  #
417
417
  # bigquery = Google::Cloud::Bigquery.new
418
418
  #
419
- # sql = "SELECT word FROM publicdata.samples.shakespeare"
419
+ # sql = "SELECT word FROM `bigquery-public-data.samples.shakespeare`"
420
420
  # job = bigquery.query_job sql
421
421
  #
422
422
  # job.wait_until_done!
@@ -453,7 +453,7 @@ module Google
453
453
  return unless destination_schema.nil?
454
454
 
455
455
  query_results_gapi = service.job_query_results job_id, max: 0
456
- # fail "unable to retrieve schema" if query_results_gapi.schema.nil?
456
+ # raise "unable to retrieve schema" if query_results_gapi.schema.nil?
457
457
  @destination_schema_gapi = query_results_gapi.schema
458
458
  end
459
459