BigQuery Client - Class QueryJobConfiguration (1.34.0)

Reference documentation and code samples for the BigQuery Client class QueryJobConfiguration.

Represents a configuration for a query job. For more information on the available settings please see the Jobs configuration API documentation .

Example:

 use Google\Cloud\BigQuery\BigQueryClient;

$bigQuery = new BigQueryClient();
$query = $bigQuery->query('SELECT commit FROM `bigquery-public-data.github_repos.commits` LIMIT 100'); 

Namespace

Google \ Cloud \ BigQuery

Methods

__construct

Parameters
Name
Description
mapper
ValueMapper

Maps values between PHP and BigQuery.

projectId
string

The project's ID.

config
array

A set of configuration options for a job.

location
string|null

The geographic location in which the job is executed.

allowLargeResults

Sets whether or not the query can produce arbitrarily large result tables at a slight cost in performance.

Only applies to queries performed with legacy SQL dialect and requires a QueryJobConfiguration::destinationTable() to be set.

Example:

 $query->allowLargeResults(true); 
Parameter
Name
Description
allowLargeResults
bool

Whether or not to allow large result sets.

Returns
Type
Description

clustering

Parameter
Name
Description
clustering
array

Clustering specification for the table.

Returns
Type
Description

createDisposition

Sets whether the job is allowed to create new tables.

Example:

 $query->createDisposition('CREATE_NEVER'); 
Parameter
Name
Description
createDisposition
string

The create disposition. Acceptable values include "CREATE_IF_NEEDED" , "CREATE_NEVER" .

Returns
Type
Description

defaultDataset

Sets the default dataset to use for unqualified table names in the query.

Example:

 $dataset = $bigQuery->dataset('my_dataset');
$query->defaultDataset($dataset); 
Parameter
Name
Description
defaultDataset
Dataset

The default dataset.

Returns
Type
Description

destinationEncryptionConfiguration

Sets the custom encryption configuration (e.g., Cloud KMS keys).

Example:

 $query->destinationEncryptionConfiguration([
    'kmsKeyName' => 'my_key'
]); 
Parameter
Name
Description
configuration
array

Custom encryption configuration.

Returns
Type
Description

destinationTable

Sets the table where the query results should be stored. If not set, a new table will be created to store the results. This property must be set for large results that exceed the maximum response size.

Example:

 $table = $bigQuery->dataset('my_dataset')
    ->table('my_table');
$query->destinationTable($table); 
Parameter
Name
Description
destinationTable
Table

The destination table.

Returns
Type
Description

flattenResults

Sets whether or not to flatten all nested and repeated fields in the query results.

Only applies to queries performed with legacy SQL dialect. QueryJobConfiguration::allowLargeResults() must be true if this is set to false.

Example:

 $query->useLegacySql(true)
    ->flattenResults(true); 
Parameter
Name
Description
flattenResults
bool

Whether or not to flatten results.

Returns
Type
Description

maximumBillingTier

Sets the billing tier limit for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge). If unspecified, this will be set to your project default.

Example:

 $query->maximumBillingTier(1); 
Parameter
Name
Description
maximumBillingTier
int

The maximum billing tier.

Returns
Type
Description

maximumBytesBilled

Sets a bytes billed limit for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default.

Example:

 $query->maximumBytesBilled(3000); 
Parameter
Name
Description
maximumBytesBilled
int

The maximum allowable bytes to bill.

Returns
Type
Description

parameters

Sets parameters to be used on the query. Only available for standard SQL queries.

For examples of usage please see BigQueryClient::runQuery() .

Parameter
Name
Description
parameters
array

Parameters to use on the query. When providing a non-associative array positional parameters ( ? ) will be used. When providing an associative array named parameters will be used ( @name ).

Returns
Type
Description

setParamTypes

Sets the parameter types for positional parameters.

Note, that this is of high importance when an empty array can be passed as a positional parameter, as we have no way of guessing the data type of the array contents.

 $queryStr = 'SELECT * FROM `bigquery-public-data.github_repos.commits` ' .
    'WHERE author.time_sec IN UNNEST (?) AND message IN UNNEST (?) AND committer.name = ? LIMIT 10';

$queryJobConfig = $bigQuery->query("")
  ->parameters([[], ["abc", "def"], "John"])
  ->setParamTypes(['INT64']); 

In the above example, the first array will have a type of INT64 while the next one will have a type of STRING (even though the second array type is not supplied).

For named params, we can simply call:

 $queryJobConfig = $bigQuery->query("")
  ->parameters(['times' => [], 'messages' => ["abc", "def"]])
  ->setParamTypes(['times' => 'INT64']); 
Parameter
Name
Description
userTypes
array

The user supplied types for the positional parameters. This overrides the guessed types that the ValueMapper got from the toParameter method call.

Returns
Type
Description

priority

Sets a priority for the query.

Example:

 $query->priority('BATCH'); 
Parameter
Name
Description
priority
string

The priority. Acceptable values include "INTERACTIVE" , "BATCH" . Defaults to "INTERACTIVE" .

Returns
Type
Description

query

Sets the SQL query.

Example:

 $query->query(
    'SELECT commit FROM `bigquery-public-data.github_repos.commits` LIMIT 100'
); 
Parameter
Name
Description
query
string

SQL query text to execute.

Returns
Type
Description

schemaUpdateOptions

Sets options to allow the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is "WRITE_APPEND" ; when writeDisposition is "WRITE_TRUNCATE" and the destination table is a partition of a table, specified by partition decorators. For normal tables, "WRITE_TRUNCATE" will always overwrite the schema.

Example:

 $query->schemaUpdateOptions([
    'ALLOW_FIELD_ADDITION'
]); 
Parameter
Name
Description
schemaUpdateOptions
array

Schema update options. Acceptable values include "ALLOW_FIELD_ADDITION" (allow adding a nullable field to the schema), "ALLOW_FIELD_RELAXATION" (allow relaxing a required field in the original schema to nullable).

Returns
Type
Description

tableDefinitions

Sets table definitions for querying an external data source outside of BigQuery. Describes the data format, location and other properties of the data source.

Example:

 $query->tableDefinitions([
    'autodetect' => true,
    'sourceUris' => [
        'gs://my_bucket/table.json'
    ]
]); 
Parameter
Name
Description
tableDefinitions
array

The table definitions.

Returns
Type
Description

timePartitioning

Sets time-based partitioning for the destination table.

Only one of timePartitioning and rangePartitioning should be specified.

Example:

 $query->timePartitioning([
    'type' => 'DAY'
]); 
Parameter
Name
Description
timePartitioning
array

Time-based partitioning configuration.

Returns
Type
Description

rangePartitioning

Sets range partitioning specification for the destination table.

Only one of timePartitioning and rangePartitioning should be specified.

Example:

 $query->rangePartitioning([
    'field' => 'myInt',
    'range' => [
        'start' => '0',
        'end' => '1000',
        'interval' => '100'
    ]
]); 
Parameter
Name
Description
rangePartitioning
array
Returns
Type
Description

useLegacySql

Sets whether or not to use legacy SQL dialect. When not set, defaults to false in this client.

Example:

 $query->useLegacySql(true); 
Parameter
Name
Description
useLegacySql
bool

Whether or not to use legacy SQL dialect.

Returns
Type
Description

useQueryCache

Parameter
Name
Description
useQueryCache
bool

Whether or not to use the query cache.

Returns
Type
Description

userDefinedFunctionResources

Sets user-defined function resources used in the query.

Example:

 $query->userDefinedFunctionResources([
    ['resourceUri' => 'gs://my_bucket/code_path']
]); 
Parameter
Name
Description
userDefinedFunctionResources
array

User-defined function resources used in the query. This is to be formatted as a list of sub-arrays containing either a key resourceUri or inlineCode .

Returns
Type
Description

writeDisposition

Sets the action that occurs if the destination table already exists. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.

Example:

 $query->writeDisposition('WRITE_TRUNCATE'); 
Parameter
Name
Description
writeDisposition
string

The write disposition. Acceptable values include "WRITE_TRUNCATE" , "WRITE_APPEND" , "WRITE_EMPTY" . Defaults to * "WRITE_EMPTY" .

Returns
Type
Description
Create a Mobile Website
View Site in Mobile | Classic
Share by: