google-cloud-bigquery 1.35.0 → 1.38.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 +36 -0
- data/lib/google/cloud/bigquery/dataset.rb +130 -42
- data/lib/google/cloud/bigquery/external/avro_source.rb +107 -0
- data/lib/google/cloud/bigquery/external/data_source.rb +2 -2
- data/lib/google/cloud/bigquery/external.rb +16 -14
- data/lib/google/cloud/bigquery/job.rb +34 -2
- data/lib/google/cloud/bigquery/load_job.rb +13 -13
- data/lib/google/cloud/bigquery/model.rb +8 -8
- data/lib/google/cloud/bigquery/project.rb +114 -68
- data/lib/google/cloud/bigquery/query_job.rb +33 -0
- data/lib/google/cloud/bigquery/routine.rb +2 -2
- data/lib/google/cloud/bigquery/schema/field.rb +25 -16
- data/lib/google/cloud/bigquery/schema.rb +13 -13
- data/lib/google/cloud/bigquery/service.rb +8 -0
- data/lib/google/cloud/bigquery/table.rb +29 -29
- data/lib/google/cloud/bigquery/version.rb +1 -1
- metadata +3 -2
@@ -744,7 +744,7 @@ module Google
|
|
744
744
|
# See {Schema#string}.
|
745
745
|
#
|
746
746
|
# @param [String] name The field name. The name must contain only
|
747
|
-
# letters (
|
747
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
748
748
|
# start with a letter or underscore. The maximum length is 128
|
749
749
|
# characters.
|
750
750
|
# @param [String] description A description of the field.
|
@@ -778,7 +778,7 @@ module Google
|
|
778
778
|
# See {Schema#integer}.
|
779
779
|
#
|
780
780
|
# @param [String] name The field name. The name must contain only
|
781
|
-
# letters (
|
781
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
782
782
|
# start with a letter or underscore. The maximum length is 128
|
783
783
|
# characters.
|
784
784
|
# @param [String] description A description of the field.
|
@@ -810,7 +810,7 @@ module Google
|
|
810
810
|
# See {Schema#float}.
|
811
811
|
#
|
812
812
|
# @param [String] name The field name. The name must contain only
|
813
|
-
# letters (
|
813
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
814
814
|
# start with a letter or underscore. The maximum length is 128
|
815
815
|
# characters.
|
816
816
|
# @param [String] description A description of the field.
|
@@ -853,7 +853,7 @@ module Google
|
|
853
853
|
# See {Schema#numeric}
|
854
854
|
#
|
855
855
|
# @param [String] name The field name. The name must contain only
|
856
|
-
# letters (
|
856
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
857
857
|
# start with a letter or underscore. The maximum length is 128
|
858
858
|
# characters.
|
859
859
|
# @param [String] description A description of the field.
|
@@ -911,7 +911,7 @@ module Google
|
|
911
911
|
# See {Schema#bignumeric}
|
912
912
|
#
|
913
913
|
# @param [String] name The field name. The name must contain only
|
914
|
-
# letters (
|
914
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
915
915
|
# start with a letter or underscore. The maximum length is 128
|
916
916
|
# characters.
|
917
917
|
# @param [String] description A description of the field.
|
@@ -958,7 +958,7 @@ module Google
|
|
958
958
|
# See {Schema#boolean}.
|
959
959
|
#
|
960
960
|
# @param [String] name The field name. The name must contain only
|
961
|
-
# letters (
|
961
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
962
962
|
# start with a letter or underscore. The maximum length is 128
|
963
963
|
# characters.
|
964
964
|
# @param [String] description A description of the field.
|
@@ -990,7 +990,7 @@ module Google
|
|
990
990
|
# See {Schema#bytes}.
|
991
991
|
#
|
992
992
|
# @param [String] name The field name. The name must contain only
|
993
|
-
# letters (
|
993
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
994
994
|
# start with a letter or underscore. The maximum length is 128
|
995
995
|
# characters.
|
996
996
|
# @param [String] description A description of the field.
|
@@ -1024,7 +1024,7 @@ module Google
|
|
1024
1024
|
# See {Schema#timestamp}.
|
1025
1025
|
#
|
1026
1026
|
# @param [String] name The field name. The name must contain only
|
1027
|
-
# letters (
|
1027
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1028
1028
|
# start with a letter or underscore. The maximum length is 128
|
1029
1029
|
# characters.
|
1030
1030
|
# @param [String] description A description of the field.
|
@@ -1056,7 +1056,7 @@ module Google
|
|
1056
1056
|
# See {Schema#time}.
|
1057
1057
|
#
|
1058
1058
|
# @param [String] name The field name. The name must contain only
|
1059
|
-
# letters (
|
1059
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1060
1060
|
# start with a letter or underscore. The maximum length is 128
|
1061
1061
|
# characters.
|
1062
1062
|
# @param [String] description A description of the field.
|
@@ -1088,7 +1088,7 @@ module Google
|
|
1088
1088
|
# See {Schema#datetime}.
|
1089
1089
|
#
|
1090
1090
|
# @param [String] name The field name. The name must contain only
|
1091
|
-
# letters (
|
1091
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1092
1092
|
# start with a letter or underscore. The maximum length is 128
|
1093
1093
|
# characters.
|
1094
1094
|
# @param [String] description A description of the field.
|
@@ -1120,7 +1120,7 @@ module Google
|
|
1120
1120
|
# See {Schema#date}.
|
1121
1121
|
#
|
1122
1122
|
# @param [String] name The field name. The name must contain only
|
1123
|
-
# letters (
|
1123
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1124
1124
|
# start with a letter or underscore. The maximum length is 128
|
1125
1125
|
# characters.
|
1126
1126
|
# @param [String] description A description of the field.
|
@@ -1154,7 +1154,7 @@ module Google
|
|
1154
1154
|
# @see https://cloud.google.com/bigquery/docs/gis-data Working with BigQuery GIS data
|
1155
1155
|
#
|
1156
1156
|
# @param [String] name The field name. The name must contain only
|
1157
|
-
# letters (
|
1157
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1158
1158
|
# start with a letter or underscore. The maximum length is 128
|
1159
1159
|
# characters.
|
1160
1160
|
# @param [String] description A description of the field.
|
@@ -1192,7 +1192,7 @@ module Google
|
|
1192
1192
|
# See {Schema#record}.
|
1193
1193
|
#
|
1194
1194
|
# @param [String] name The field name. The name must contain only
|
1195
|
-
# letters (
|
1195
|
+
# letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`), and must
|
1196
1196
|
# start with a letter or underscore. The maximum length is 128
|
1197
1197
|
# characters.
|
1198
1198
|
# @param [String] description A description of the field.
|
@@ -87,8 +87,8 @@ module Google
|
|
87
87
|
##
|
88
88
|
# A unique ID for this model.
|
89
89
|
#
|
90
|
-
# @return [String] The ID must contain only letters (
|
91
|
-
# (0-9), or underscores (_). The maximum length is 1,024 characters.
|
90
|
+
# @return [String] The ID must contain only letters (`[A-Za-z]`), numbers
|
91
|
+
# (`[0-9]`), or underscores (`_`). The maximum length is 1,024 characters.
|
92
92
|
#
|
93
93
|
# @!group Attributes
|
94
94
|
#
|
@@ -100,8 +100,8 @@ module Google
|
|
100
100
|
##
|
101
101
|
# The ID of the `Dataset` containing this model.
|
102
102
|
#
|
103
|
-
# @return [String] The ID must contain only letters (
|
104
|
-
# (0-9), or underscores (_). The maximum length is 1,024 characters.
|
103
|
+
# @return [String] The ID must contain only letters (`[A-Za-z]`), numbers
|
104
|
+
# (`[0-9]`), or underscores (`_`). The maximum length is 1,024 characters.
|
105
105
|
#
|
106
106
|
# @!group Attributes
|
107
107
|
#
|
@@ -515,8 +515,8 @@ module Google
|
|
515
515
|
# * `ml_tf_saved_model` - TensorFlow SavedModel
|
516
516
|
# * `ml_xgboost_booster` - XGBoost Booster
|
517
517
|
# @param [String] job_id A user-defined ID for the extract job. The ID
|
518
|
-
# must contain only letters (
|
519
|
-
# (_), or dashes (
|
518
|
+
# must contain only letters (`[A-Za-z]`), numbers (`[0-9]`), underscores
|
519
|
+
# (`_`), or dashes (`-`). The maximum length is 1,024 characters. If
|
520
520
|
# `job_id` is provided, then `prefix` will not be used.
|
521
521
|
#
|
522
522
|
# See [Generating a job
|
@@ -525,8 +525,8 @@ module Google
|
|
525
525
|
# prepended to a generated value to produce a unique job ID. For
|
526
526
|
# example, the prefix `daily_import_job_` can be given to generate a
|
527
527
|
# job ID such as `daily_import_job_12vEDtMQ0mbp1Mo5Z7mzAFQJZazh`. The
|
528
|
-
# prefix must contain only letters (
|
529
|
-
# underscores (_), or dashes (
|
528
|
+
# prefix must contain only letters (`[A-Za-z]`), numbers (`[0-9]`),
|
529
|
+
# underscores (`_`), or dashes (`-`). The maximum length of the entire ID
|
530
530
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
531
531
|
# be used.
|
532
532
|
# @param [Hash] labels A hash of user-provided labels associated with
|
@@ -139,8 +139,8 @@ module Google
|
|
139
139
|
# * `empty` - An error will be returned if the destination table
|
140
140
|
# already contains data.
|
141
141
|
# @param [String] job_id A user-defined ID for the copy job. The ID
|
142
|
-
# must contain only letters (
|
143
|
-
# (_), or dashes (
|
142
|
+
# must contain only letters (`[A-Za-z]`), numbers (`[0-9]`), underscores
|
143
|
+
# (`_`), or dashes (`-`). The maximum length is 1,024 characters. If
|
144
144
|
# `job_id` is provided, then `prefix` will not be used.
|
145
145
|
#
|
146
146
|
# See [Generating a job
|
@@ -149,8 +149,8 @@ module Google
|
|
149
149
|
# prepended to a generated value to produce a unique job ID. For
|
150
150
|
# example, the prefix `daily_import_job_` can be given to generate a
|
151
151
|
# job ID such as `daily_import_job_12vEDtMQ0mbp1Mo5Z7mzAFQJZazh`. The
|
152
|
-
# prefix must contain only letters (
|
153
|
-
# underscores (_), or dashes (
|
152
|
+
# prefix must contain only letters (`[A-Za-z]`), numbers (`[0-9]`),
|
153
|
+
# underscores (`_`), or dashes (`-`). The maximum length of the entire ID
|
154
154
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
155
155
|
# be used.
|
156
156
|
# @param [Hash] labels A hash of user-provided labels associated with
|
@@ -402,13 +402,19 @@ module Google
|
|
402
402
|
# Flattens all nested and repeated fields in the query results. The
|
403
403
|
# default value is `true`. `large_results` parameter must be `true` if
|
404
404
|
# this is set to `false`.
|
405
|
+
# @param [Integer] maximum_billing_tier Limits the billing tier for this
|
406
|
+
# job. Queries that have resource usage beyond this tier will fail
|
407
|
+
# (without incurring a charge). WARNING: The billed byte amount can be
|
408
|
+
# multiplied by an amount up to this number! Most users should not need
|
409
|
+
# to alter this setting, and we recommend that you avoid introducing new
|
410
|
+
# uses of it. Deprecated.
|
405
411
|
# @param [Integer] maximum_bytes_billed Limits the bytes billed for this
|
406
412
|
# job. Queries that will have bytes billed beyond this limit will fail
|
407
413
|
# (without incurring a charge). Optional. If unspecified, this will be
|
408
414
|
# set to your project default.
|
409
415
|
# @param [String] job_id A user-defined ID for the query job. The ID
|
410
|
-
# must contain only letters (
|
411
|
-
# (_), or dashes (
|
416
|
+
# must contain only letters (`[A-Za-z]`), numbers (`[0-9]`), underscores
|
417
|
+
# (`_`), or dashes (`-`). The maximum length is 1,024 characters. If
|
412
418
|
# `job_id` is provided, then `prefix` will not be used.
|
413
419
|
#
|
414
420
|
# See [Generating a job
|
@@ -417,8 +423,8 @@ module Google
|
|
417
423
|
# prepended to a generated value to produce a unique job ID. For
|
418
424
|
# example, the prefix `daily_import_job_` can be given to generate a
|
419
425
|
# job ID such as `daily_import_job_12vEDtMQ0mbp1Mo5Z7mzAFQJZazh`. The
|
420
|
-
# prefix must contain only letters (
|
421
|
-
# underscores (_), or dashes (
|
426
|
+
# prefix must contain only letters (`[A-Za-z]`), numbers (`[0-9]`),
|
427
|
+
# underscores (`_`), or dashes (`-`). The maximum length of the entire ID
|
422
428
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
423
429
|
# be used.
|
424
430
|
#
|
@@ -455,8 +461,13 @@ module Google
|
|
455
461
|
# For additional information on migrating, see: [Migrating to
|
456
462
|
# standard SQL - Differences in user-defined JavaScript
|
457
463
|
# functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions)
|
458
|
-
# @param [
|
459
|
-
#
|
464
|
+
# @param [Boolean] create_session If true, creates a new session, where the
|
465
|
+
# session ID will be a server generated random id. If false, runs query
|
466
|
+
# with an existing session ID when one is provided in the `session_id`
|
467
|
+
# param, otherwise runs query in non-session mode. See {Job#session_id}.
|
468
|
+
# The default value is false.
|
469
|
+
# @param [String] session_id The ID of an existing session. See also the
|
470
|
+
# `create_session` param and {Job#session_id}.
|
460
471
|
# @yield [job] a job configuration object
|
461
472
|
# @yieldparam [Google::Cloud::Bigquery::QueryJob::Updater] job a job
|
462
473
|
# configuration object for setting query options.
|
@@ -468,8 +479,7 @@ module Google
|
|
468
479
|
#
|
469
480
|
# bigquery = Google::Cloud::Bigquery.new
|
470
481
|
#
|
471
|
-
# job = bigquery.query_job "SELECT name FROM "
|
472
|
-
# "`my_project.my_dataset.my_table`"
|
482
|
+
# job = bigquery.query_job "SELECT name FROM `my_project.my_dataset.my_table`"
|
473
483
|
#
|
474
484
|
# job.wait_until_done!
|
475
485
|
# if !job.failed?
|
@@ -483,8 +493,7 @@ module Google
|
|
483
493
|
#
|
484
494
|
# bigquery = Google::Cloud::Bigquery.new
|
485
495
|
#
|
486
|
-
# job = bigquery.query_job "SELECT name FROM "
|
487
|
-
# " [my_project:my_dataset.my_table]",
|
496
|
+
# job = bigquery.query_job "SELECT name FROM [my_project:my_dataset.my_table]",
|
488
497
|
# legacy_sql: true
|
489
498
|
#
|
490
499
|
# job.wait_until_done!
|
@@ -499,9 +508,7 @@ module Google
|
|
499
508
|
#
|
500
509
|
# bigquery = Google::Cloud::Bigquery.new
|
501
510
|
#
|
502
|
-
# job = bigquery.query_job "SELECT name FROM "
|
503
|
-
# "`my_dataset.my_table` " \
|
504
|
-
# "WHERE id = ?",
|
511
|
+
# job = bigquery.query_job "SELECT name FROM `my_dataset.my_table` WHERE id = ?",
|
505
512
|
# params: [1]
|
506
513
|
#
|
507
514
|
# job.wait_until_done!
|
@@ -516,9 +523,7 @@ module Google
|
|
516
523
|
#
|
517
524
|
# bigquery = Google::Cloud::Bigquery.new
|
518
525
|
#
|
519
|
-
# job = bigquery.query_job "SELECT name FROM "
|
520
|
-
# "`my_dataset.my_table` " \
|
521
|
-
# "WHERE id = @id",
|
526
|
+
# job = bigquery.query_job "SELECT name FROM `my_dataset.my_table` WHERE id = @id",
|
522
527
|
# params: { id: 1 }
|
523
528
|
#
|
524
529
|
# job.wait_until_done!
|
@@ -533,9 +538,7 @@ module Google
|
|
533
538
|
#
|
534
539
|
# bigquery = Google::Cloud::Bigquery.new
|
535
540
|
#
|
536
|
-
# job = bigquery.query_job "SELECT name FROM "
|
537
|
-
# "`my_dataset.my_table` " \
|
538
|
-
# "WHERE id IN UNNEST(@ids)",
|
541
|
+
# job = bigquery.query_job "SELECT name FROM `my_dataset.my_table` WHERE id IN UNNEST(@ids)",
|
539
542
|
# params: { ids: [] },
|
540
543
|
# types: { ids: [:INT64] }
|
541
544
|
#
|
@@ -551,9 +554,7 @@ module Google
|
|
551
554
|
#
|
552
555
|
# bigquery = Google::Cloud::Bigquery.new
|
553
556
|
#
|
554
|
-
# job = bigquery.query_job "CREATE TABLE "
|
555
|
-
# "`my_dataset.my_table` " \
|
556
|
-
# "(x INT64)"
|
557
|
+
# job = bigquery.query_job "CREATE TABLE`my_dataset.my_table` (x INT64)"
|
557
558
|
#
|
558
559
|
# job.wait_until_done!
|
559
560
|
# if !job.failed?
|
@@ -565,10 +566,7 @@ module Google
|
|
565
566
|
#
|
566
567
|
# bigquery = Google::Cloud::Bigquery.new
|
567
568
|
#
|
568
|
-
# job = bigquery.query_job "UPDATE "
|
569
|
-
# "`my_dataset.my_table` " \
|
570
|
-
# "SET x = x + 1 " \
|
571
|
-
# "WHERE x IS NOT NULL"
|
569
|
+
# job = bigquery.query_job "UPDATE `my_dataset.my_table` SET x = x + 1 WHERE x IS NOT NULL"
|
572
570
|
#
|
573
571
|
# job.wait_until_done!
|
574
572
|
# if !job.failed?
|
@@ -599,17 +597,56 @@ module Google
|
|
599
597
|
# end
|
600
598
|
# end
|
601
599
|
#
|
602
|
-
def query_job query,
|
603
|
-
|
604
|
-
|
605
|
-
|
600
|
+
def query_job query,
|
601
|
+
params: nil,
|
602
|
+
types: nil,
|
603
|
+
external: nil,
|
604
|
+
priority: "INTERACTIVE",
|
605
|
+
cache: true,
|
606
|
+
table: nil,
|
607
|
+
create: nil,
|
608
|
+
write: nil,
|
609
|
+
dryrun: nil,
|
610
|
+
dataset: nil,
|
611
|
+
project: nil,
|
612
|
+
standard_sql: nil,
|
613
|
+
legacy_sql: nil,
|
614
|
+
large_results: nil,
|
615
|
+
flatten: nil,
|
616
|
+
maximum_billing_tier: nil,
|
617
|
+
maximum_bytes_billed: nil,
|
618
|
+
job_id: nil,
|
619
|
+
prefix: nil,
|
620
|
+
labels: nil,
|
621
|
+
udfs: nil,
|
622
|
+
create_session: nil,
|
623
|
+
session_id: nil
|
606
624
|
ensure_service!
|
607
|
-
options = {
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
625
|
+
options = {
|
626
|
+
params: params,
|
627
|
+
types: types,
|
628
|
+
external: external,
|
629
|
+
priority: priority,
|
630
|
+
cache: cache,
|
631
|
+
table: table,
|
632
|
+
create: create,
|
633
|
+
write: write,
|
634
|
+
dryrun: dryrun,
|
635
|
+
dataset: dataset,
|
636
|
+
project: (project || self.project),
|
637
|
+
standard_sql: standard_sql,
|
638
|
+
legacy_sql: legacy_sql,
|
639
|
+
large_results: large_results,
|
640
|
+
flatten: flatten,
|
641
|
+
maximum_billing_tier: maximum_billing_tier,
|
642
|
+
maximum_bytes_billed: maximum_bytes_billed,
|
643
|
+
job_id: job_id,
|
644
|
+
prefix: prefix,
|
645
|
+
labels: labels,
|
646
|
+
udfs: udfs,
|
647
|
+
create_session: create_session,
|
648
|
+
session_id: session_id
|
649
|
+
}
|
613
650
|
|
614
651
|
updater = QueryJob::Updater.from_options service, query, options
|
615
652
|
|
@@ -730,6 +767,8 @@ module Google
|
|
730
767
|
# When set to false, the values of `large_results` and `flatten` are
|
731
768
|
# ignored; the query will be run as if `large_results` is true and
|
732
769
|
# `flatten` is false. Optional. The default value is false.
|
770
|
+
# @param [String] session_id The ID of an existing session. See the
|
771
|
+
# `create_session` param in {#query_job} and {Job#session_id}.
|
733
772
|
# @yield [job] a job configuration object
|
734
773
|
# @yieldparam [Google::Cloud::Bigquery::QueryJob::Updater] job a job
|
735
774
|
# configuration object for setting additional options for the query.
|
@@ -782,9 +821,7 @@ module Google
|
|
782
821
|
#
|
783
822
|
# bigquery = Google::Cloud::Bigquery.new
|
784
823
|
#
|
785
|
-
# data = bigquery.query "SELECT name "
|
786
|
-
# "FROM `my_dataset.my_table` " \
|
787
|
-
# "WHERE id = ?",
|
824
|
+
# data = bigquery.query "SELECT name FROM `my_dataset.my_table` WHERE id = ?",
|
788
825
|
# params: [1]
|
789
826
|
#
|
790
827
|
# # Iterate over the first page of results
|
@@ -799,9 +836,7 @@ module Google
|
|
799
836
|
#
|
800
837
|
# bigquery = Google::Cloud::Bigquery.new
|
801
838
|
#
|
802
|
-
# data = bigquery.query "SELECT name "
|
803
|
-
# "FROM `my_dataset.my_table` " \
|
804
|
-
# "WHERE id = @id",
|
839
|
+
# data = bigquery.query "SELECT name FROM `my_dataset.my_table` WHERE id = @id",
|
805
840
|
# params: { id: 1 }
|
806
841
|
#
|
807
842
|
# # Iterate over the first page of results
|
@@ -816,9 +851,7 @@ module Google
|
|
816
851
|
#
|
817
852
|
# bigquery = Google::Cloud::Bigquery.new
|
818
853
|
#
|
819
|
-
# data = bigquery.query "SELECT name FROM "
|
820
|
-
# "`my_dataset.my_table` " \
|
821
|
-
# "WHERE id IN UNNEST(@ids)",
|
854
|
+
# data = bigquery.query "SELECT name FROM `my_dataset.my_table` WHERE id IN UNNEST(@ids)",
|
822
855
|
# params: { ids: [] },
|
823
856
|
# types: { ids: [:INT64] }
|
824
857
|
#
|
@@ -843,9 +876,7 @@ module Google
|
|
843
876
|
#
|
844
877
|
# bigquery = Google::Cloud::Bigquery.new
|
845
878
|
#
|
846
|
-
# data = bigquery.query "UPDATE `my_dataset.my_table` "
|
847
|
-
# "SET x = x + 1 " \
|
848
|
-
# "WHERE x IS NOT NULL"
|
879
|
+
# data = bigquery.query "UPDATE `my_dataset.my_table` SET x = x + 1 WHERE x IS NOT NULL"
|
849
880
|
#
|
850
881
|
# puts data.num_dml_affected_rows
|
851
882
|
#
|
@@ -873,10 +904,29 @@ module Google
|
|
873
904
|
# # Retrieve the next page of results
|
874
905
|
# data = data.next if data.next?
|
875
906
|
#
|
876
|
-
def query query,
|
877
|
-
|
878
|
-
|
879
|
-
|
907
|
+
def query query,
|
908
|
+
params: nil,
|
909
|
+
types: nil,
|
910
|
+
external: nil,
|
911
|
+
max: nil,
|
912
|
+
cache: true,
|
913
|
+
dataset: nil,
|
914
|
+
project: nil,
|
915
|
+
standard_sql: nil,
|
916
|
+
legacy_sql: nil,
|
917
|
+
session_id: nil,
|
918
|
+
&block
|
919
|
+
job = query_job query,
|
920
|
+
params: params,
|
921
|
+
types: types,
|
922
|
+
external: external,
|
923
|
+
cache: cache,
|
924
|
+
dataset: dataset,
|
925
|
+
project: project,
|
926
|
+
standard_sql: standard_sql,
|
927
|
+
legacy_sql: legacy_sql,
|
928
|
+
session_id: session_id,
|
929
|
+
&block
|
880
930
|
job.wait_until_done!
|
881
931
|
|
882
932
|
if job.failed?
|
@@ -986,8 +1036,8 @@ module Google
|
|
986
1036
|
# Creates a new dataset.
|
987
1037
|
#
|
988
1038
|
# @param [String] dataset_id A unique ID for this dataset, without the
|
989
|
-
# project name. The ID must contain only letters (
|
990
|
-
# (0-9), or underscores (_). The maximum length is 1,024 characters.
|
1039
|
+
# project name. The ID must contain only letters (`[A-Za-z]`), numbers
|
1040
|
+
# (`[0-9]`), or underscores (`_`). The maximum length is 1,024 characters.
|
991
1041
|
# @param [String] name A descriptive name for the dataset.
|
992
1042
|
# @param [String] description A user-friendly description of the
|
993
1043
|
# dataset.
|
@@ -1326,9 +1376,7 @@ module Google
|
|
1326
1376
|
# bigquery = Google::Cloud::Bigquery.new
|
1327
1377
|
#
|
1328
1378
|
# fourpm = bigquery.time 16, 0, 0
|
1329
|
-
# data = bigquery.query "SELECT name "
|
1330
|
-
# "FROM `my_dataset.my_table`" \
|
1331
|
-
# "WHERE time_of_date = @time",
|
1379
|
+
# data = bigquery.query "SELECT name FROM `my_dataset.my_table` WHERE time_of_date = @time",
|
1332
1380
|
# params: { time: fourpm }
|
1333
1381
|
#
|
1334
1382
|
# # Iterate over the first page of results
|
@@ -1344,9 +1392,7 @@ module Google
|
|
1344
1392
|
# bigquery = Google::Cloud::Bigquery.new
|
1345
1393
|
#
|
1346
1394
|
# precise_time = bigquery.time 16, 35, 15.376541
|
1347
|
-
# data = bigquery.query "SELECT name "
|
1348
|
-
# "FROM `my_dataset.my_table`" \
|
1349
|
-
# "WHERE time_of_date >= @time",
|
1395
|
+
# data = bigquery.query "SELECT name FROM `my_dataset.my_table` WHERE time_of_date >= @time",
|
1350
1396
|
# params: { time: precise_time }
|
1351
1397
|
#
|
1352
1398
|
# # Iterate over the first page of results
|
@@ -1524,8 +1570,8 @@ module Google
|
|
1524
1570
|
# @param [Boolean] header Whether to print out a header row in table
|
1525
1571
|
# exports. Default is `true`. Not applicable when extracting models.
|
1526
1572
|
# @param [String] job_id A user-defined ID for the extract job. The ID
|
1527
|
-
# must contain only letters (
|
1528
|
-
# (_), or dashes (
|
1573
|
+
# must contain only letters (`[A-Za-z]`), numbers (`[0-9]`), underscores
|
1574
|
+
# (`_`), or dashes (`-`). The maximum length is 1,024 characters. If
|
1529
1575
|
# `job_id` is provided, then `prefix` will not be used.
|
1530
1576
|
#
|
1531
1577
|
# See [Generating a job
|
@@ -1534,8 +1580,8 @@ module Google
|
|
1534
1580
|
# prepended to a generated value to produce a unique job ID. For
|
1535
1581
|
# example, the prefix `daily_import_job_` can be given to generate a
|
1536
1582
|
# job ID such as `daily_import_job_12vEDtMQ0mbp1Mo5Z7mzAFQJZazh`. The
|
1537
|
-
# prefix must contain only letters (
|
1538
|
-
# underscores (_), or dashes (
|
1583
|
+
# prefix must contain only letters (`[A-Za-z]`), numbers (`[0-9]`),
|
1584
|
+
# underscores (`_`), or dashes (`-`). The maximum length of the entire ID
|
1539
1585
|
# is 1,024 characters. If `job_id` is provided, then `prefix` will not
|
1540
1586
|
# be used.
|
1541
1587
|
# @param [Hash] labels A hash of user-provided labels associated with
|
@@ -775,6 +775,8 @@ module Google
|
|
775
775
|
updater = QueryJob::Updater.new service, req
|
776
776
|
updater.set_params_and_types options[:params], options[:types] if options[:params]
|
777
777
|
updater.create = options[:create]
|
778
|
+
updater.create_session = options[:create_session]
|
779
|
+
updater.session_id = options[:session_id] if options[:session_id]
|
778
780
|
updater.write = options[:write]
|
779
781
|
updater.table = options[:table]
|
780
782
|
updater.dryrun = options[:dryrun]
|
@@ -1018,6 +1020,37 @@ module Google
|
|
1018
1020
|
@gapi.configuration.query.create_disposition = Convert.create_disposition value
|
1019
1021
|
end
|
1020
1022
|
|
1023
|
+
##
|
1024
|
+
# Sets the create_session property. If true, creates a new session,
|
1025
|
+
# where session id will be a server generated random id. If false,
|
1026
|
+
# runs query with an existing {#session_id=}, otherwise runs query in
|
1027
|
+
# non-session mode. The default value is `false`.
|
1028
|
+
#
|
1029
|
+
# @param [Boolean] value The create_session property. The default
|
1030
|
+
# value is `false`.
|
1031
|
+
#
|
1032
|
+
# @!group Attributes
|
1033
|
+
def create_session= value
|
1034
|
+
@gapi.configuration.query.create_session = value
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
##
|
1038
|
+
# Sets the session ID for a query run in session mode. See {#create_session=}.
|
1039
|
+
#
|
1040
|
+
# @param [String] value The session ID. The default value is `nil`.
|
1041
|
+
#
|
1042
|
+
# @!group Attributes
|
1043
|
+
def session_id= value
|
1044
|
+
@gapi.configuration.query.connection_properties ||= []
|
1045
|
+
prop = @gapi.configuration.query.connection_properties.find { |cp| cp.key == "session_id" }
|
1046
|
+
if prop
|
1047
|
+
prop.value = value
|
1048
|
+
else
|
1049
|
+
prop = Google::Apis::BigqueryV2::ConnectionProperty.new key: "session_id", value: value
|
1050
|
+
@gapi.configuration.query.connection_properties << prop
|
1051
|
+
end
|
1052
|
+
end
|
1053
|
+
|
1021
1054
|
##
|
1022
1055
|
# Sets the write disposition for when the query results table exists.
|
1023
1056
|
#
|
@@ -116,8 +116,8 @@ module Google
|
|
116
116
|
##
|
117
117
|
# A unique ID for this routine, without the project name.
|
118
118
|
#
|
119
|
-
# @return [String] The ID must contain only letters (
|
120
|
-
# length is 256 characters.
|
119
|
+
# @return [String] The ID must contain only letters (`[A-Za-z]`), numbers (`[0-9]`), or underscores (`_`). The
|
120
|
+
# maximum length is 256 characters.
|
121
121
|
#
|
122
122
|
# @!group Attributes
|
123
123
|
#
|