Job objects are returned from various places in the BigQuery API:
They can be used to check the status of a running job or fetching the resultsof a previously-executed one.
| Name | Type | Attributes | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
bigQuery | BigQuery | BigQuery instance. | |||||||||
id | string | The ID of the job. | |||||||||
options | object | <optional> | Configuration object. Properties
|
```const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job('job-id');//-// All jobs are event emitters. The status of each job is polled// continuously, starting only after you register a "complete" listener.//-job.on('complete', (metadata) => { // The job is complete.});//-// Be sure to register an error handler as well to catch any issues which// impeded the job.//-job.on('error', (err) => { // An error occurred during the job.});//-// To force the Job object to stop polling for updates, simply remove any// "complete" listeners you've registered.//// The easiest way to do this is with `removeAllListeners()`.//-job.removeAllListeners();```Get the results of a job as a readable object stream.
```const through2 = require('through2');const fs = require('fs');const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job('job-id');job.getQueryResultsStream() .pipe(through2.obj(function (row, enc, next) { this.push(JSON.stringify(row) + '\n'); next(); })) .pipe(fs.createWriteStream('./test/testdata/testfile.json'));```Delete the job.
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callback | DeleteJobCallback | <optional> | The callback function. Properties
|
| Type | Description |
|---|---|
| Promise.<DeleteJobResponse> |
const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job(jobId);job.delete((err, apiResponse) => { if (!err) { // The job was deleted successfully. }});If the callback is omitted a Promise will be returnedconst [apiResponse] = await job.delete();Check if the job exists.
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callback | JobExistsCallback | <optional> | The callback function. Properties
|
| Type | Description |
|---|---|
| Promise.<JobExistsResponse> |
```const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job('job-id');job.exists((err, exists) => {});//-// If the callback is omitted, we'll return a Promise.//-job.exists().then((data) => { const exists = data[0];});```Get a job if it exists.
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options | object | <optional> | Configuration object. Properties
| ||||||||||||
callback | GetJobCallback | <optional> | The callback function. Properties
|
| Type | Description |
|---|---|
| Promise.<GetJobResponse> |
```const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job('job-id');job.get((err, job, apiResponse) => { if (!err) { // `job.metadata` has been populated. }});//-// If the callback is omitted, we'll return a Promise.//-job.get().then((data) => { const job = data[0]; const apiResponse = data[1];});```Get the metadata of the job. This will mostly be useful for checkingthe status of a previously-run job.
| Name | Type | Attributes | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callback | GetJobMetadataCallback | <optional> | The callback function. Properties
|
| Type | Description |
|---|---|
| Promise.<GetJobMetadataResponse> |
```const {BigQuery} = require('@google-cloud/bigquery');const bigquery = new BigQuery();const job = bigquery.job('id');job.getMetadata((err, metadata, apiResponse) => {});//-// If the callback is omitted, we'll return a Promise.//-job.getMetadata().then((data) => { const metadata = data[0]; const apiResponse = data[1];});```