google-cloud-bigquery 1.21.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +16 -0
- data/AUTHENTICATION.md +158 -0
- data/CHANGELOG.md +397 -0
- data/CODE_OF_CONDUCT.md +40 -0
- data/CONTRIBUTING.md +188 -0
- data/LICENSE +201 -0
- data/LOGGING.md +27 -0
- data/OVERVIEW.md +463 -0
- data/TROUBLESHOOTING.md +31 -0
- data/lib/google-cloud-bigquery.rb +139 -0
- data/lib/google/cloud/bigquery.rb +145 -0
- data/lib/google/cloud/bigquery/argument.rb +197 -0
- data/lib/google/cloud/bigquery/convert.rb +383 -0
- data/lib/google/cloud/bigquery/copy_job.rb +316 -0
- data/lib/google/cloud/bigquery/credentials.rb +50 -0
- data/lib/google/cloud/bigquery/data.rb +526 -0
- data/lib/google/cloud/bigquery/dataset.rb +2845 -0
- data/lib/google/cloud/bigquery/dataset/access.rb +1021 -0
- data/lib/google/cloud/bigquery/dataset/list.rb +162 -0
- data/lib/google/cloud/bigquery/encryption_configuration.rb +123 -0
- data/lib/google/cloud/bigquery/external.rb +2432 -0
- data/lib/google/cloud/bigquery/extract_job.rb +368 -0
- data/lib/google/cloud/bigquery/insert_response.rb +180 -0
- data/lib/google/cloud/bigquery/job.rb +657 -0
- data/lib/google/cloud/bigquery/job/list.rb +162 -0
- data/lib/google/cloud/bigquery/load_job.rb +1704 -0
- data/lib/google/cloud/bigquery/model.rb +740 -0
- data/lib/google/cloud/bigquery/model/list.rb +164 -0
- data/lib/google/cloud/bigquery/project.rb +1655 -0
- data/lib/google/cloud/bigquery/project/list.rb +161 -0
- data/lib/google/cloud/bigquery/query_job.rb +1695 -0
- data/lib/google/cloud/bigquery/routine.rb +1108 -0
- data/lib/google/cloud/bigquery/routine/list.rb +165 -0
- data/lib/google/cloud/bigquery/schema.rb +564 -0
- data/lib/google/cloud/bigquery/schema/field.rb +668 -0
- data/lib/google/cloud/bigquery/service.rb +589 -0
- data/lib/google/cloud/bigquery/standard_sql.rb +495 -0
- data/lib/google/cloud/bigquery/table.rb +3340 -0
- data/lib/google/cloud/bigquery/table/async_inserter.rb +520 -0
- data/lib/google/cloud/bigquery/table/list.rb +172 -0
- data/lib/google/cloud/bigquery/time.rb +65 -0
- data/lib/google/cloud/bigquery/version.rb +22 -0
- metadata +297 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f38543236358fc319ecfcc2058ffa499e24034027aa56644924d2cf496815550
|
4
|
+
data.tar.gz: 37196fa1c3db03e48df4cb0ae5ae5b9b1ee07b9d112063467ebc57d25b34551a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a234359fb8a04b42f22725f5540cf0378b7e51b3d847ddd4f24ba41f2a54b4de85068bb9aee10089995c29794c0a64694223ac6bf88202eda6a646ce02c85275
|
7
|
+
data.tar.gz: 99c6c915df70afde18de06907802c60d18df253238e6f3ab752827ea3cfc0aee0ab9bef8dc0816f5980db26334dd2b15ce0a2ecf7db3b026e2f0caa101dcafc8
|
data/.yardopts
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
--no-private
|
2
|
+
--title=Google Cloud BigQuery
|
3
|
+
--markup markdown
|
4
|
+
--markup-provider redcarpet
|
5
|
+
--main OVERVIEW.md
|
6
|
+
|
7
|
+
./lib/**/*.rb
|
8
|
+
-
|
9
|
+
OVERVIEW.md
|
10
|
+
AUTHENTICATION.md
|
11
|
+
LOGGING.md
|
12
|
+
CONTRIBUTING.md
|
13
|
+
TROUBLESHOOTING.md
|
14
|
+
CHANGELOG.md
|
15
|
+
CODE_OF_CONDUCT.md
|
16
|
+
LICENSE
|
data/AUTHENTICATION.md
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
# Authentication
|
2
|
+
|
3
|
+
In general, the google-cloud-bigquery library uses [Service
|
4
|
+
Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
|
5
|
+
credentials to connect to Google Cloud services. When running on Google Cloud
|
6
|
+
Platform (GCP), including Google Compute Engine (GCE), Google Kubernetes Engine
|
7
|
+
(GKE), Google App Engine (GAE), Google Cloud Functions (GCF) and Cloud Run,
|
8
|
+
the credentials will be discovered automatically. When running on other
|
9
|
+
environments, the Service Account credentials can be specified by providing the
|
10
|
+
path to the [JSON
|
11
|
+
keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
|
12
|
+
the account (or the JSON itself) in environment variables. Additionally, Cloud
|
13
|
+
SDK credentials can also be discovered automatically, but this is only
|
14
|
+
recommended during development.
|
15
|
+
|
16
|
+
## Project and Credential Lookup
|
17
|
+
|
18
|
+
The google-cloud-bigquery library aims to make authentication as simple as
|
19
|
+
possible, and provides several mechanisms to configure your system without
|
20
|
+
providing **Project ID** and **Service Account Credentials** directly in code.
|
21
|
+
|
22
|
+
**Project ID** is discovered in the following order:
|
23
|
+
|
24
|
+
1. Specify project ID in method arguments
|
25
|
+
2. Specify project ID in configuration
|
26
|
+
3. Discover project ID in environment variables
|
27
|
+
4. Discover GCE project ID
|
28
|
+
|
29
|
+
**Credentials** are discovered in the following order:
|
30
|
+
|
31
|
+
1. Specify credentials in method arguments
|
32
|
+
2. Specify credentials in configuration
|
33
|
+
3. Discover credentials path in environment variables
|
34
|
+
4. Discover credentials JSON in environment variables
|
35
|
+
5. Discover credentials file in the Cloud SDK's path
|
36
|
+
6. Discover GCE credentials
|
37
|
+
|
38
|
+
### Google Cloud Platform environments
|
39
|
+
|
40
|
+
When running on Google Cloud Platform (GCP), including Google Compute Engine (GCE),
|
41
|
+
Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud Functions
|
42
|
+
(GCF) and Cloud Run, the **Project ID** and **Credentials** and are discovered
|
43
|
+
automatically. Code should be written as if already authenticated.
|
44
|
+
|
45
|
+
### Environment Variables
|
46
|
+
|
47
|
+
The **Project ID** and **Credentials JSON** can be placed in environment
|
48
|
+
variables instead of declaring them directly in code. Each service has its own
|
49
|
+
environment variable, allowing for different service accounts to be used for
|
50
|
+
different services. (See the READMEs for the individual service gems for
|
51
|
+
details.) The path to the **Credentials JSON** file can be stored in the
|
52
|
+
environment variable, or the **Credentials JSON** itself can be stored for
|
53
|
+
environments such as Docker containers where writing files is difficult or not
|
54
|
+
encouraged.
|
55
|
+
|
56
|
+
The environment variables that BigQuery checks for project ID are:
|
57
|
+
|
58
|
+
1. `BIGQUERY_PROJECT`
|
59
|
+
2. `GOOGLE_CLOUD_PROJECT`
|
60
|
+
|
61
|
+
The environment variables that BigQuery checks for credentials are configured on {Google::Cloud::Bigquery::Credentials}:
|
62
|
+
|
63
|
+
1. `BIGQUERY_CREDENTIALS` - Path to JSON file, or JSON contents
|
64
|
+
2. `BIGQUERY_KEYFILE` - Path to JSON file, or JSON contents
|
65
|
+
3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
|
66
|
+
4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
|
67
|
+
5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
require "google/cloud/bigquery"
|
71
|
+
|
72
|
+
ENV["BIGQUERY_PROJECT"] = "my-project-id"
|
73
|
+
ENV["BIGQUERY_CREDENTIALS"] = "path/to/keyfile.json"
|
74
|
+
|
75
|
+
bigquery = Google::Cloud::Bigquery.new
|
76
|
+
```
|
77
|
+
|
78
|
+
### Configuration
|
79
|
+
|
80
|
+
The **Project ID** and **Credentials JSON** can be configured instead of placing them in environment variables or providing them as arguments.
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
require "google/cloud/bigquery"
|
84
|
+
|
85
|
+
Google::Cloud::Bigquery.configure do |config|
|
86
|
+
config.project_id = "my-project-id"
|
87
|
+
config.credentials = "path/to/keyfile.json"
|
88
|
+
end
|
89
|
+
|
90
|
+
bigquery = Google::Cloud::Bigquery.new
|
91
|
+
```
|
92
|
+
|
93
|
+
### Cloud SDK
|
94
|
+
|
95
|
+
This option allows for an easy way to authenticate during development. If
|
96
|
+
credentials are not provided in code or in environment variables, then Cloud SDK
|
97
|
+
credentials are discovered.
|
98
|
+
|
99
|
+
To configure your system for this, simply:
|
100
|
+
|
101
|
+
1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
|
102
|
+
2. Authenticate using OAuth 2.0 `$ gcloud auth login`
|
103
|
+
3. Write code as if already authenticated.
|
104
|
+
|
105
|
+
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
106
|
+
*should* only be used during development.
|
107
|
+
|
108
|
+
[gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
|
109
|
+
[dev-console]: https://console.cloud.google.com/project
|
110
|
+
|
111
|
+
[enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
|
112
|
+
|
113
|
+
[create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
|
114
|
+
[create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
|
115
|
+
[reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
|
116
|
+
|
117
|
+
## Creating a Service Account
|
118
|
+
|
119
|
+
Google Cloud requires a **Project ID** and **Service Account Credentials** to
|
120
|
+
connect to the APIs. You will use the **Project ID** and **JSON key file** to
|
121
|
+
connect to most services with google-cloud-bigquery.
|
122
|
+
|
123
|
+
If you are not running this client on Google Compute Engine, you need a Google
|
124
|
+
Developers service account.
|
125
|
+
|
126
|
+
1. Visit the [Google Developers Console][dev-console].
|
127
|
+
1. Create a new project or click on an existing project.
|
128
|
+
1. Activate the slide-out navigation tray and select **API Manager**. From
|
129
|
+
here, you will enable the APIs that your application requires.
|
130
|
+
|
131
|
+
![Enable the APIs that your application requires][enable-apis]
|
132
|
+
|
133
|
+
*Note: You may need to enable billing in order to use these services.*
|
134
|
+
|
135
|
+
1. Select **Credentials** from the side navigation.
|
136
|
+
|
137
|
+
You should see a screen like one of the following.
|
138
|
+
|
139
|
+
![Create a new service account][create-new-service-account]
|
140
|
+
|
141
|
+
![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
|
142
|
+
|
143
|
+
Find the "Add credentials" drop down and select "Service account" to be
|
144
|
+
guided through downloading a new JSON key file.
|
145
|
+
|
146
|
+
If you want to re-use an existing service account, you can easily generate a
|
147
|
+
new key file. Just select the account you wish to re-use, and click "Generate
|
148
|
+
new JSON key":
|
149
|
+
|
150
|
+
![Re-use an existing service account][reuse-service-account]
|
151
|
+
|
152
|
+
The key file you download will be used by this library to authenticate API
|
153
|
+
requests and should be stored in a secure location.
|
154
|
+
|
155
|
+
## Troubleshooting
|
156
|
+
|
157
|
+
If you're having trouble authenticating you can ask for help by following the
|
158
|
+
{file:TROUBLESHOOTING.md Troubleshooting Guide}.
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,397 @@
|
|
1
|
+
# Release History
|
2
|
+
|
3
|
+
### 1.21.2 / 2020-07-21
|
4
|
+
|
5
|
+
#### Documentation
|
6
|
+
|
7
|
+
* Update Data#each samples
|
8
|
+
|
9
|
+
### 1.21.1 / 2020-05-28
|
10
|
+
|
11
|
+
#### Documentation
|
12
|
+
|
13
|
+
* Fix a few broken links
|
14
|
+
|
15
|
+
### 1.21.0 / 2020-03-31
|
16
|
+
|
17
|
+
#### Features
|
18
|
+
|
19
|
+
* Add Job#parent_job_id and Job#script_statistics
|
20
|
+
* Add parent_job to Project#jobs
|
21
|
+
* Add Job#num_child_jobs
|
22
|
+
* Add Job#parent_job_id
|
23
|
+
* Add Job#script_statistics
|
24
|
+
|
25
|
+
### 1.20.0 / 2020-03-11
|
26
|
+
|
27
|
+
#### Features
|
28
|
+
|
29
|
+
* Add Range Partitioning
|
30
|
+
* Add range partitioning methods to Table and Table::Updater
|
31
|
+
* Add range partitioning methods to LoadJob
|
32
|
+
* Add range partitioning methods to QueryJob
|
33
|
+
|
34
|
+
### 1.19.0 / 2020-02-11
|
35
|
+
|
36
|
+
#### Features
|
37
|
+
|
38
|
+
* Add Routine
|
39
|
+
* Add Dataset#create_routine
|
40
|
+
* Add Argument
|
41
|
+
* Update StandardSql classes to expose public initializer
|
42
|
+
* Add Data#ddl_target_routine and QueryJob#ddl_target_routine
|
43
|
+
* Allow row inserts to skip insert_id generation
|
44
|
+
* Streaming inserts using an insert_id are not able to be inserted as fast as inserts without an insert_id
|
45
|
+
* Add the ability for users to skip insert_id generation in order to speed up the inserts
|
46
|
+
* The default behavior continues to generate insert_id values for each row inserted
|
47
|
+
* Add yield documentation for Dataset#insert
|
48
|
+
|
49
|
+
### 1.18.1 / 2019-12-18
|
50
|
+
|
51
|
+
#### Bug Fixes
|
52
|
+
|
53
|
+
* Fix MonitorMixin usage on Ruby 2.7
|
54
|
+
* Ruby 2.7 will error if new_cond is called before super().
|
55
|
+
* Make the call to super() be the first call in initialize
|
56
|
+
|
57
|
+
### 1.18.0 / 2019-11-06
|
58
|
+
|
59
|
+
#### Features
|
60
|
+
|
61
|
+
* Add optional query parameter types
|
62
|
+
* Allow query parameters to be nil/NULL when providing an optional
|
63
|
+
* Add types argument to the following methods:
|
64
|
+
* Project#query
|
65
|
+
* Project#query_job
|
66
|
+
* Dataset#query
|
67
|
+
* Dataset#query_job
|
68
|
+
* Add param types helper methods
|
69
|
+
* Return the BigQuery field type code, using the same format as the
|
70
|
+
* Add Schema::Field#param_type
|
71
|
+
* Add Schema#param_types
|
72
|
+
* Add Data#param_types
|
73
|
+
* Add Table#param_types
|
74
|
+
* Add External::CvsSource#param_types
|
75
|
+
* Add External::JsonSource#param_types
|
76
|
+
* Add support for all_users special role in Dataset access
|
77
|
+
|
78
|
+
### 1.17.0 / 2019-10-29
|
79
|
+
|
80
|
+
This release requires Ruby 2.4 or later.
|
81
|
+
|
82
|
+
#### Documentation
|
83
|
+
|
84
|
+
* Clarify which Google Cloud Platform environments support automatic authentication
|
85
|
+
|
86
|
+
### 1.16.0 / 2019-10-03
|
87
|
+
|
88
|
+
#### Features
|
89
|
+
|
90
|
+
* Add Dataset default_encryption
|
91
|
+
* Add Dataset#default_encryption
|
92
|
+
* Add Dataset#default_encryption=
|
93
|
+
|
94
|
+
### 1.15.0 / 2019-09-30
|
95
|
+
|
96
|
+
#### Features
|
97
|
+
|
98
|
+
* Add Model encryption
|
99
|
+
* Add Model#encryption
|
100
|
+
* Add Model#encryption=
|
101
|
+
* Add range support for Google Sheets
|
102
|
+
* Add External::SheetsSource#range
|
103
|
+
* Add External::SheetsSource#range=
|
104
|
+
* Support use_avro_logical_types on extract jobs
|
105
|
+
* Add ExtractJob#use_avro_logical_types?
|
106
|
+
* Add ExtractJob::Updater#use_avro_logical_types=
|
107
|
+
|
108
|
+
### 1.14.1 / 2019-09-04
|
109
|
+
|
110
|
+
#### Documentation
|
111
|
+
|
112
|
+
* Add note about streaming insert issues
|
113
|
+
* Acknowledge tradeoffs when inserting rows soon after
|
114
|
+
table metadata has been changed.
|
115
|
+
* Add link to BigQuery Troubleshooting guide.
|
116
|
+
|
117
|
+
### 1.14.0 / 2019-08-23
|
118
|
+
|
119
|
+
#### Features
|
120
|
+
|
121
|
+
* Support overriding of service endpoint
|
122
|
+
|
123
|
+
#### Performance Improvements
|
124
|
+
|
125
|
+
* Use MiniMime to detect content types
|
126
|
+
|
127
|
+
#### Documentation
|
128
|
+
|
129
|
+
* Update documentation
|
130
|
+
|
131
|
+
### 1.13.0 / 2019-07-31
|
132
|
+
|
133
|
+
* Add Table#require_partition_filter
|
134
|
+
* List jobs using min and max created_at
|
135
|
+
* Reduce thread usage at startup
|
136
|
+
* Allocate threads in pool as needed, not all up front
|
137
|
+
* Update documentation links
|
138
|
+
|
139
|
+
### 1.12.0 / 2019-07-10
|
140
|
+
|
141
|
+
* Add BigQuery Model API
|
142
|
+
* Add Model
|
143
|
+
* Add StandardSql Field, DataType, StructType
|
144
|
+
* Add Dataset#model and Dataset#models
|
145
|
+
* Correct Float value conversion
|
146
|
+
* Ensure that NaN, Infinity, and -Infinity are converted correctly.
|
147
|
+
|
148
|
+
### 1.11.2 / 2019-06-11
|
149
|
+
|
150
|
+
* Update "Loading data" link
|
151
|
+
|
152
|
+
### 1.11.1 / 2019-05-21
|
153
|
+
|
154
|
+
* Declare explicit dependency on mime-types
|
155
|
+
|
156
|
+
### 1.11.0 / 2019-02-01
|
157
|
+
|
158
|
+
* Make use of Credentials#project_id
|
159
|
+
* Use Credentials#project_id
|
160
|
+
If a project_id is not provided, use the value on the Credentials object.
|
161
|
+
This value was added in googleauth 0.7.0.
|
162
|
+
* Loosen googleauth dependency
|
163
|
+
Allow for new releases up to 0.10.
|
164
|
+
The googleauth devs have committed to maintaining the current API
|
165
|
+
and will not make backwards compatible changes before 0.10.
|
166
|
+
|
167
|
+
### 1.10.0 / 2018-12-06
|
168
|
+
|
169
|
+
* Add dryrun param to Project#query_job and Dataset#query_job
|
170
|
+
* Add copy and extract methods to Project
|
171
|
+
* Add Project#extract and Project#extract_job
|
172
|
+
* Add Project#copy and Project#copy_job
|
173
|
+
* Deprecate dryrun param in Table#copy_job, Table#extract_job and
|
174
|
+
Table#load_job
|
175
|
+
* Fix memoization in Dataset#exists? and Table#exists?
|
176
|
+
* Add force param to Dataset#exists? and Table#exists?
|
177
|
+
|
178
|
+
### 1.9.0 / 2018-10-25
|
179
|
+
|
180
|
+
* Add clustering fields to LoadJob, QueryJob and Table
|
181
|
+
* Add DDL/DML support
|
182
|
+
* Update QueryJob#data to not return table rows for DDL/DML
|
183
|
+
* Add DDL/DML statistics attrs to QueryJob and Data
|
184
|
+
* Add #numeric to Table::Updater and LoadJob::Updater (@leklund)
|
185
|
+
|
186
|
+
### 1.8.2 / 2018-09-20
|
187
|
+
|
188
|
+
* Update documentation.
|
189
|
+
* Change documentation URL to googleapis GitHub org.
|
190
|
+
* Fix circular require warning.
|
191
|
+
|
192
|
+
### 1.8.1 / 2018-09-12
|
193
|
+
|
194
|
+
* Add missing documentation files to package.
|
195
|
+
|
196
|
+
### 1.8.0 / 2018-09-10
|
197
|
+
|
198
|
+
* Add support for OCR format.
|
199
|
+
* Update documentation.
|
200
|
+
|
201
|
+
### 1.7.1 / 2018-08-21
|
202
|
+
|
203
|
+
* Update documentation.
|
204
|
+
|
205
|
+
### 1.7.0 / 2018-06-29
|
206
|
+
|
207
|
+
* Add #schema_update_options to LoadJob and #schema_update_options= to LoadJob::Updater.
|
208
|
+
* Add time partitioning for the target table to LoadJob and QueryJob.
|
209
|
+
* Add #statement_type, #ddl_operation_performed, #ddl_target_table to QueryJob.
|
210
|
+
|
211
|
+
### 1.6.0 / 2018-06-22
|
212
|
+
|
213
|
+
* Documentation updates.
|
214
|
+
* Updated dependencies.
|
215
|
+
|
216
|
+
### 1.5.0 / 2018-05-21
|
217
|
+
|
218
|
+
* Add Schema.load and Schema.dump to read/write a table schema from/to a JSON file or other IO source. The JSON file schema is the same as for the bq CLI.
|
219
|
+
* Add support for the NUMERIC data type.
|
220
|
+
* Add documentation for enabling logging.
|
221
|
+
|
222
|
+
### 1.4.0 / 2018-05-07
|
223
|
+
|
224
|
+
* Add Parquet support to #load and #load_job.
|
225
|
+
|
226
|
+
### 1.3.0 / 2018-04-05
|
227
|
+
|
228
|
+
* Add insert_ids option to #insert in Dataset, Table, and AsyncInserter.
|
229
|
+
* Add BigQuery Project#service_account_email.
|
230
|
+
* Add support for setting Job location to nil in blocks for Job properties.
|
231
|
+
|
232
|
+
### 1.2.0 / 2018-03-31
|
233
|
+
|
234
|
+
* Add geo-regionalization (location) support to Jobs.
|
235
|
+
* Add Project#encryption support to Jobs.
|
236
|
+
* Rename Encryption to EncryptionConfiguration.
|
237
|
+
* Add blocks for setting Job properties to all Job creation methods.
|
238
|
+
* Add support for lists of URLs to #load and #load_job. (jeremywadsack)
|
239
|
+
* Fix Schema::Field type helpers.
|
240
|
+
* Fix Table#load example in README.
|
241
|
+
|
242
|
+
### 1.1.0 / 2018-02-27
|
243
|
+
|
244
|
+
* Support table partitioning by field.
|
245
|
+
* Support Shared Configuration.
|
246
|
+
* Improve AsyncInserter performance.
|
247
|
+
|
248
|
+
### 1.0.0 / 2018-01-10
|
249
|
+
|
250
|
+
* Release 1.0.0
|
251
|
+
* Update authentication documentation
|
252
|
+
* Update Data documentation and code examples
|
253
|
+
* Remove reference to sync and async queries
|
254
|
+
* Allow use of URI objects for Dataset#load, Table#load, and Table#load_job
|
255
|
+
|
256
|
+
### 0.30.0 / 2017-11-14
|
257
|
+
|
258
|
+
* Add `Google::Cloud::Bigquery::Credentials` class.
|
259
|
+
* Rename constructor arguments to `project_id` and `credentials`.
|
260
|
+
(The previous arguments `project` and `keyfile` are still supported.)
|
261
|
+
* Support creating `Dataset` and `Table` objects without making API calls using
|
262
|
+
`skip_lookup` argument.
|
263
|
+
* Add `Dataset#reference?` and `Dataset#resource?` helper method.
|
264
|
+
* Add `Table#reference?` and `Table#resource?` and `Table#resource_partial?`
|
265
|
+
and `Table#resource_full?` helper methods.
|
266
|
+
* `Dataset#insert_async` and `Dataset#insert_async` now yields a
|
267
|
+
`Table::AsyncInserter::Result` object.
|
268
|
+
* `View` is removed, now uses `Table` class.
|
269
|
+
* Needed to support `skip_lookup` argument.
|
270
|
+
* Calling `Table#data` on a view now raises (breaking change).
|
271
|
+
* Performance improvements for queries.
|
272
|
+
* Updated `google-api-client`, `googleauth` dependencies.
|
273
|
+
|
274
|
+
### 0.29.0 / 2017-10-09
|
275
|
+
|
276
|
+
This is a major release with many new features and several breaking changes.
|
277
|
+
|
278
|
+
#### Major Changes
|
279
|
+
|
280
|
+
* All queries now use a new implementation, using a job and polling for results.
|
281
|
+
* The copy, load, extract methods now all have high-level and low-level versions, similar to `query` and `query_job`.
|
282
|
+
* Added asynchronous row insertion, allowing data to be collected and inserted in batches.
|
283
|
+
* Support external data sources for both queries and table views.
|
284
|
+
* Added create-on-insert support for tables.
|
285
|
+
* Allow for customizing job IDs to aid in organizing jobs.
|
286
|
+
|
287
|
+
#### Change Details
|
288
|
+
|
289
|
+
* Update high-level queries as follows:
|
290
|
+
* Update `QueryJob#wait_until_done!` to use `getQueryResults`.
|
291
|
+
* Update `Project#query` and `Dataset#query` with breaking changes:
|
292
|
+
* Remove `timeout` and `dryrun` parameters.
|
293
|
+
* Change return type from `QueryData` to `Data`.
|
294
|
+
* Add `QueryJob#data`
|
295
|
+
* Alias `QueryJob#query_results` to `QueryJob#data` with breaking changes:
|
296
|
+
* Remove the `timeout` parameter.
|
297
|
+
* Change the return type from `QueryData` to `Data`.
|
298
|
+
* Update `View#data` with breaking changes:
|
299
|
+
* Remove the `timeout` and `dryrun` parameters.
|
300
|
+
* Change the return type from `QueryData` to `Data`.
|
301
|
+
* Remove `QueryData`.
|
302
|
+
* Update `Project#query` and `Dataset#query` with improved errors, replacing the previous simple error with one that contains all available information for why the job failed.
|
303
|
+
* Rename `Dataset#load` to `Dataset#load_job`; add high-level, synchronous version as `Dataset#load`.
|
304
|
+
* Rename `Table#copy` to `Table#copy_job`; add high-level, synchronous version as `Table#copy`.
|
305
|
+
* Rename `Table#extract` to `Table#extract_job`; add high-level, synchronous version as `Table#extract`.
|
306
|
+
* Rename `Table#load` to `Table#load_job`; add high-level, synchronous version as `Table#load`.
|
307
|
+
* Add support for querying external data sources with `External`.
|
308
|
+
* Add `Table::AsyncInserter`, `Dataset#insert_async` and `Table#insert_async` to collect and insert rows in batches.
|
309
|
+
* Add `Dataset#insert` to support creating a table while inserting rows if the table does not exist.
|
310
|
+
* Update retry logic to conform to the [BigQuery SLA](https://cloud.google.com/bigquery/sla).
|
311
|
+
* Use a minimum back-off interval of 1 second; for each consecutive error, increase the back-off interval exponentially up to 32 seconds.
|
312
|
+
* Retry if all error reasons are retriable, not if any of the error reasons are retriable.
|
313
|
+
* Add support for labels to `Dataset`, `Table`, `View` and `Job`.
|
314
|
+
* Add `filter` option to `Project#datasets` and `Project#jobs`.
|
315
|
+
* Add support for user-defined functions to `Project#query_job`, `Dataset#query_job`, `QueryJob` and `View`.
|
316
|
+
* In `Dataset`, `Table`, and `View` updates, add the use of ETags for optimistic concurrency control.
|
317
|
+
* Update `Dataset#load` and `Table#load`:
|
318
|
+
* Add `null_marker` option and `LoadJob#null_marker`.
|
319
|
+
* Add `autodetect` option and `LoadJob#autodetect?`.
|
320
|
+
* Fix the default value for `LoadJob#quoted_newlines?`.
|
321
|
+
* Add `job_id` and `prefix` options for controlling client-side job ID generation to `Project#query_job`, `Dataset#load`, `Dataset#query_job`, `Table#copy`, `Table#extract`, and `Table#load`.
|
322
|
+
* Add `Job#user_email`.
|
323
|
+
* Set the maximum delay of `Job#wait_until_done!` polling to 60 seconds.
|
324
|
+
* Automatically retry `Job#cancel`.
|
325
|
+
* Allow users to specify if a `View` query is using Standard vs. Legacy SQL.
|
326
|
+
* Add `project` option to `Project#query_job`.
|
327
|
+
* Add `QueryJob#query_plan`, `QueryJob::Stage` and `QueryJob::Step` to expose query plan information.
|
328
|
+
* Add `Table#buffer_bytes`, `Table#buffer_rows` and `Table#buffer_oldest_at` to expose streaming buffer information.
|
329
|
+
* Update `Dataset#insert` and `Table#insert` to raise an error if `rows` is empty.
|
330
|
+
* Update `Error` with a mapping from code 412 to `FailedPreconditionError`.
|
331
|
+
* Update `Data#schema` to freeze the returned `Schema` object (as in `View` and `LoadJob`.)
|
332
|
+
|
333
|
+
### 0.28.0 / 2017-09-28
|
334
|
+
|
335
|
+
* Update Google API Client dependency to 0.14.x.
|
336
|
+
|
337
|
+
### 0.27.1 / 2017-07-11
|
338
|
+
|
339
|
+
* Add `InsertResponse::InsertError#index` (zedalaye)
|
340
|
+
|
341
|
+
### 0.27.0 / 2017-06-28
|
342
|
+
|
343
|
+
* Add `maximum_billing_tier` and `maximum_bytes_billed` to `QueryJob`, `Project#query_job` and `Dataset#query_job`.
|
344
|
+
* Add `Dataset#load` to support creating, configuring and loading a table in one API call.
|
345
|
+
* Add `Project#schema`.
|
346
|
+
* Upgrade dependency on Google API Client.
|
347
|
+
* Update gem spec homepage links.
|
348
|
+
* Update examples of field access to use symbols instead of strings in the documentation.
|
349
|
+
|
350
|
+
### 0.26.0 / 2017-04-05
|
351
|
+
|
352
|
+
* Upgrade dependency on Google API Client
|
353
|
+
|
354
|
+
### 0.25.0 / 2017-03-31
|
355
|
+
|
356
|
+
* Add `#cancel` to `Job`
|
357
|
+
* Updated documentation
|
358
|
+
|
359
|
+
### 0.24.0 / 2017-03-03
|
360
|
+
|
361
|
+
Major release, several new features, some breaking changes.
|
362
|
+
|
363
|
+
* Standard SQL is now the default syntax.
|
364
|
+
* Legacy SQL syntax can be enabled by providing `legacy_sql: true`.
|
365
|
+
* Several fixes to how data values are formatted when returned from BigQuery.
|
366
|
+
* Returned data rows are now hashes with Symbol keys instead of String keys.
|
367
|
+
* Several fixes to how data values are formatted when importing to BigQuery.
|
368
|
+
* Several improvements to manipulating table schema fields.
|
369
|
+
* Removal of `Schema#fields=` and `Data#raw` methods.
|
370
|
+
* Removal of `fields` argument from `Dataset#create_table` method.
|
371
|
+
* Dependency on Google API Client has been updated to 0.10.x.
|
372
|
+
|
373
|
+
### 0.23.0 / 2016-12-8
|
374
|
+
|
375
|
+
* Support Query Parameters using `params` method arguments to `query` and `query_job`
|
376
|
+
* Add `standard_sql`/`legacy_sql` method arguments to to `query` and `query_job`
|
377
|
+
* Add `standard_sql?`/`legacy_sql?` attributes to `QueryJob`
|
378
|
+
* Many documentation improvements
|
379
|
+
|
380
|
+
### 0.21.0 / 2016-10-20
|
381
|
+
|
382
|
+
* New service constructor Google::Cloud::Bigquery.new
|
383
|
+
|
384
|
+
### 0.20.2 / 2016-09-30
|
385
|
+
|
386
|
+
* Add list of projects that the current credentials can access. (remi)
|
387
|
+
|
388
|
+
### 0.20.1 / 2016-09-02
|
389
|
+
|
390
|
+
* Fix for timeout on uploads.
|
391
|
+
|
392
|
+
### 0.20.0 / 2016-08-26
|
393
|
+
|
394
|
+
This gem contains the Google BigQuery service implementation for the `google-cloud` gem. The `google-cloud` gem replaces the old `gcloud` gem. Legacy code can continue to use the `gcloud` gem.
|
395
|
+
|
396
|
+
* Namespace is now `Google::Cloud`
|
397
|
+
* The `google-cloud` gem is now an umbrella package for individual gems
|