Constructor

Job

new Job(bigQuery, id, options)

Parameter

bigQuery

BigQuery

BigQuery instance.

id

string

The ID of the job.

options

Optional

object

Configuration object.

Values in options have the following properties:

Parameter

location

Optional

string

The geographic location of the job. Required except for US and EU.

Example

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();

Property

getQueryResultsStream

Get the results of a job as a readable object stream.

Parameter

options

object

Configuration object. See Job#getQueryResults for a complete list of options.

Returns

stream 

Example

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'));

Methods

cancel

cancel(callback) returns Promise

Cancel a job. Use Job#getMetadata to see if the cancel completes successfully. See an example implementation below.

Parameter

callback

Optional

function()

The callback function.

Values in callback have the following properties:

Parameter

err

error

An error returned while making this request.

Value may be null.

apiResponse

object

The full API response.

See also

Jobs: get API Documentation

Returns

Promise 

Example

const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

const job = bigquery.job('job-id');

job.cancel((err, apiResponse) =>{
  // Check to see if the job completes successfully.
  job.on('error', (err) => {});
  job.on('complete', (metadata) => {});
});

//-
// If the callback is omitted, we'll return a Promise.
//-
job.cancel().then((data) => {
  const apiResponse = data[0];
});

exists

exists(callback) returns Promise

Check if the job exists.

Parameter

callback

Optional

function()

The callback function.

Values in callback have the following properties:

Parameter

err

error

An error returned while making this request.

Value may be null.

exists

boolean

Whether the job exists or not.

Returns

Promise 

Example

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

get(callback) returns Promise

Get a job if it exists.

Parameter

callback

Optional

function()

The callback function.

Values in callback have the following properties:

Parameter

err

error

An error returned while making this request.

Value may be null.

job

Job

The job.

Returns

Promise 

Example

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];
});

getMetadata

getMetadata(callback) returns Promise

Get the metadata of the job. This will mostly be useful for checking the status of a previously-run job.

Parameter

callback

Optional

function()

The callback function.

Values in callback have the following properties:

Parameter

err

error

An error returned while making this request.

Value may be null.

metadata

object

The metadata of the job.

apiResponse

object

The full API response.

See also

Jobs: get API Documentation

Returns

Promise 

Example

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];
});

getQueryResults

getQueryResults(options, callback) returns Promise

Get the results of a job.

Parameter

options

Optional

object

Configuration object.

Values in options have the following properties:

Parameter

autoPaginate

Optional

boolean

Have pagination handled automatically.

maxApiCalls

Optional

number

Maximum number of API calls to make.

maxResults

Optional

number

Maximum number of results to read.

pageToken

Optional

string

Page token, returned by a previous call, to request the next page of results. Note: This is automatically added to the nextQuery argument of your callback.

startIndex

Optional

number

Zero-based index of the starting row.

timeoutMs

Optional

number

How long to wait for the query to complete, in milliseconds, before returning. Default is to return immediately. If the timeout passes before the job completes, the request will fail with a TIMEOUT error.

callback

Optional

(QueryResultsCallback or ManualQueryResultsCallback)

The callback function. If autoPaginate is set to false a ManualQueryResultsCallback should be used.

See also

Jobs: getQueryResults API Documentation

Returns

Promise 

Example

const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

const job = bigquery.job('job-id');

//-
// Get all of the results of a query.
//-
job.getQueryResults((err, rows) => {
  if (!err) {
    // rows is an array of results.
  }
});

//-
// Customize the results you want to fetch.
//-
job.getQueryResults({
  maxResults: 100
}, (err, rows) => {});

//-
// To control how many API requests are made and page through the results
// manually, set `autoPaginate` to `false`.
//-
function manualPaginationCallback(err, rows, nextQuery, apiResponse) {
  if (nextQuery) {
    // More results exist.
    job.getQueryResults(nextQuery, manualPaginationCallback);
  }
}

job.getQueryResults({
  autoPaginate: false
}, manualPaginationCallback);

//-
// If the callback is omitted, we'll return a Promise.
//-
job.getQueryResults().then((data) => {
  const rows = data[0];
});