BigQuery Client - Class BigQueryClient (1.35.1)

Namespace

Google \ Cloud \ BigQuery

Methods

__construct

Create a BigQuery client.

Parameters
NameDescription
configarray

Configuration options.

↳ apiEndpointstring

The hostname with optional port to use in place of the default service endpoint. Example:foobar.com orfoobar.com:1234.

↳ projectIdstring

The project ID from the Google Developer's Console.

↳ authCacheCacheItemPoolInterface

A cache for storing access tokens.Defaults to a simple in memory implementation.

↳ authCacheOptionsarray

Cache configuration options.

↳ authHttpHandlercallable

A handler used to deliver Psr7 requests specifically for authentication.

↳ credentialsFetcherFetchAuthTokenInterface

A credentials fetcher instance.

↳ httpHandlercallable

A handler used to deliver Psr7 requests. Only valid for requests sent over REST.

↳ keyFilearray

[DEPRECATED] This option is being deprecated because of a potential security risk. This option does not validate the credential configuration. The security risk occurs when a credential configuration is accepted from a source that is not under your control and used without validation on your side. If you know that you will be loading credential configurations of a specific type, it is recommended to create the credentials directly and configure them using thecredentialsFetcher option instead.use Google\Auth\Credentials\ServiceAccountCredentials; $credentialsFetcher = new ServiceAccountCredentials($scopes, $json); $creds = new BigQueryClient(['credentialsFetcher' => $creds]); This will ensure that an unexpected credential type with potential for malicious intent is not loaded unintentionally. You might still have to do validation for certain credential types. If you are loading your credential configuration from an untrusted source and have not mitigated the risks (e.g. by validating the configuration yourself), make these changes as soon as possible to prevent security risks to your environment. Regardless of the method used, it is always your responsibility to validate configurations received from external sources. @seehttps://cloud.google.com/docs/authentication/external/externally-sourced-credentials

↳ keyFilePathstring

[DEPRECATED] This option is being deprecated because of a potential security risk. This option does not validate the credential configuration. The security risk occurs when a credential configuration is accepted from a source that is not under your control and used without validation on your side. If you know that you will be loading credential configurations of a specific type, it is recommended to create the credentials directly and configure them using thecredentialsFetcher option instead.use Google\Auth\Credentials\ServiceAccountCredentials; $credentialsFetcher = new ServiceAccountCredentials($scopes, $json); $creds = new BigQueryClient(['credentialsFetcher' => $creds]); This will ensure that an unexpected credential type with potential for malicious intent is not loaded unintentionally. You might still have to do validation for certain credential types. If you are loading your credential configuration from an untrusted source and have not mitigated the risks (e.g. by validating the configuration yourself), make these changes as soon as possible to prevent security risks to your environment. Regardless of the method used, it is always your responsibility to validate configurations received from external sources. @seehttps://cloud.google.com/docs/authentication/external/externally-sourced-credentials

↳ requestTimeoutfloat

Seconds to wait before timing out the request.Defaults to0 with REST and60 with gRPC.

↳ retriesint

Number of retries for a failed request.Defaults to3.

↳ scopesarray

Scopes to be used for the request.

↳ quotaProjectstring

Specifies a user project to bill for access charges associated with the request.

↳ returnInt64AsObjectbool

If true, 64 bit integers will be returned as aGoogle\Cloud\Core\Int64 object for 32 bit platform compatibility.Defaults to false.

↳ locationstring

If provided, determines the default geographic location used when creating datasets and managing jobs. Please note: This is only required for jobs started outside of the US and EU regions. Also, if location metadata has already been fetched over the network it will take precedent over this setting (by callingTable::reload(), for example).

↳ loggerfalse|LoggerInterface

A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the 'GOOGLE_SDK_PHP_LOGGING' environment flag

query

Returns a BigQuery job configuration.

The job configuration is passed to eitherBigQueryClient::runQuery() orBigQueryClient::startQuery(). Aconfiguration can be built using fluent setters or by providing a fullset of options at once.

Unless otherwise specified, all configuration options will default based on thequery job configurationexcept forconfiguration.query.useLegacySql, which defaults tofalsein this client.

Example:

$queryJobConfig = $bigQuery->query(    'SELECT commit FROM `bigquery-public-data.github_repos.commits` LIMIT 100');
// Set create disposition using fluent setters.$queryJobConfig = $bigQuery->query(    'SELECT commit FROM `bigquery-public-data.github_repos.commits` LIMIT 100')->createDisposition('CREATE_NEVER');
// This is equivalent to the above example, using array configuration// instead of fluent setters.$queryJobConfig = $bigQuery->query(    'SELECT commit FROM `bigquery-public-data.github_repos.commits` LIMIT 100',    [        'configuration' => [            'query' => [                'createDisposition' => 'CREATE_NEVER'            ]        ]    ]);
// Set a region to run the job in.$queryJobConfig = $bigQuery->query(    'SELECT name FROM `my_project.users_dataset.users` LIMIT 100')->location('asia-northeast1');
Parameters
NameDescription
querystring

A BigQuery SQL query.

optionsarray

Configuration options.

↳ configurationarray

Job configuration. Please see theAPI documentation for the available options.

Properties
NameDescription
queryarray

Query job configuration. Please see thedocumentation for the available options.

Returns
TypeDescription
QueryJobConfiguration

queryConfig

Returns a BigQuery job configuration.

The job configuration is passed to eitherBigQueryClient::runQuery() orBigQueryClient::startQuery(). Aconfiguration can be built using fluent setters or by providing a fullset of options at once.

Unless otherwise specified, all configuration options will default based on thequery job configurationexcept forconfiguration.query.useLegacySql, which defaults tofalsein this client.

As this method is an alias, please seeBigQueryClient::query() for usage examples.

Parameters
NameDescription
querystring

A BigQuery SQL query.

optionsarray

Configuration options.

↳ configurationarray

Job configuration. Please see theAPI documentation for the available options.

Properties
NameDescription
queryarray

Query job configuration. Please see thedocumentation for the available options.

Returns
TypeDescription
QueryJobConfiguration

runQuery

Parameters
NameDescription
queryQueryJobConfiguration

A BigQuery SQL query configuration.

optionsarray

Configuration options.

↳ maxResultsint

The maximum number of rows to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large.

↳ startIndexint

Zero-based index of the starting row.

↳ timeoutMsint

How long, in milliseconds, each API call will wait for query results to become available before timing out. Depending on whether the $maxRetries has been exceeded, the results will be polled again after the timeout has been reached.Defaults to10000 milliseconds (10 seconds).

↳ maxRetriesint

The number of times to poll the Job status, until the job is complete. By default, will poll indefinitely.

↳ returnRawResultsbool

Returns the raw data types returned from BigQuery without converting their values into native PHP types or the custom type classes supported by this library. Default is false.

↳ formatOptions.useInt64Timestampboolean

Optional. Output timestamp as usec int64. Default is false.

Returns
TypeDescription
QueryResults

startQuery

Parameters
NameDescription
queryQueryJobConfiguration

A BigQuery SQL query configuration.

optionsarray

[optional] Configuration options.

Returns
TypeDescription
Job

job

Lazily instantiates a job.

There are no network requests made at thispoint. To see the operations that can be performed on a job pleaseseeJob.

Example:

$job = $bigQuery->job('myJobId');
Parameters
NameDescription
idstring

The id of the already run or running job to request.

optionsarray

Configuration options.

↳ locationstring

The geographic location of the job. Required for jobs started outside of the US and EU regions.Defaults to a location specified in the client configuration.

Returns
TypeDescription
Job

jobs

Parameters
NameDescription
optionsarray

Configuration options.

↳ allUsersbool

Whether to display jobs owned by all users in the project.Defaults tofalse.

↳ maxResultsint

Maximum number of results to return per page.

↳ resultLimitint

Limit the number of results returned in total.Defaults to0 (return all results).

↳ pageTokenstring

A previously-returned page token used to resume the loading of results from a specific point.

↳ stateFilterstring

Filter for job state. Maybe be eitherdone,pending, orrunning.

↳ maxCreationTimeint

Milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned.

↳ minCreationTimeint

Milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned.

↳ parentJobIdstring

If set, show only child jobs of the specified parent. Otherwise, show all top-level jobs.

Returns
TypeDescription
Google\Cloud\Core\Iterator\ItemIterator<Job>

dataset

Lazily instantiates a dataset.

There are no network requests made at thispoint. To see the operations that can be performed on a dataset pleaseseeDataset.

If the dataset is owned by a different project than the project used to authenticate the client,provide the project ID as the second argument.

Example:

$dataset = $bigQuery->dataset('myDatasetId');
// Reference a dataset from other project.$dataset = $bigQuery->dataset('samples', 'bigquery-public-data');
Parameters
NameDescription
idstring

The id of the dataset to request.

projectIdstring|null

The id of the project.Defaults to current project id.

Returns
TypeDescription
Dataset

datasets

Parameters
NameDescription
optionsarray

Configuration options.

↳ allbool

Whether to list all datasets, including hidden ones.Defaults tofalse.

↳ maxResultsint

Maximum number of results to return per page.

↳ resultLimitint

Limit the number of results returned in total.Defaults to0 (return all results).

↳ pageTokenstring

A previously-returned page token used to resume the loading of results from a specific point.

↳ filterstring

An expression for filtering the results of the request by label. The syntax is "labels.

Returns
TypeDescription
Google\Cloud\Core\Iterator\ItemIterator<Dataset>

createDataset

Parameters
NameDescription
idstring

The id of the dataset to create.

optionsarray

Configuration options.

↳ accessPolicyVersionint

Optional. Access policy schema version. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for conditional access policy binding in datasets must specify version 3. Dataset with no conditional role bindings in access policy may specify any valid value or leave the field unset. This field will be mapped toIAM Policy version and will be used to fetch policy from IAM. If unset or if 0 or 1 value is used for dataset with conditional bindings, access entry with condition will have role string appended by 'withcond' string followed by a hash value. For example : { "access": [ { "role": "roles/bigquery.dataViewer_with_conditionalbinding_7a34awqsda", "userByEmail": "user@example.com", } ] } Please referhttps://cloud.google.com/iam/docs/troubleshooting-withcond for more details.

↳ metadataarray

The available options for metadata are outlined at theDataset Resource API docs

Returns
TypeDescription
Dataset

runJob

Parameters
NameDescription
configJobConfigurationInterface

The job configuration.

optionsarray

Configuration options.

↳ maxRetriesint

The number of times to retry, checking if the job has completed.Defaults to100.

Returns
TypeDescription
Job

startJob

Parameters
NameDescription
configJobConfigurationInterface

The job configuration.

optionsarray

[optional] Configuration options.

Returns
TypeDescription
Job

bytes

Create a Bytes object.

Example:

$bytes = $bigQuery->bytes('hello world');
Parameter
NameDescription
valuestring|resource|Psr\Http\Message\StreamInterface

The bytes value.

Returns
TypeDescription
Bytes

date

Create a Date object.

Example:

$date = $bigQuery->date(new \DateTime('1995-02-04'));
Parameter
NameDescription
valueDateTimeInterface

The date value.

Returns
TypeDescription
Date

int64

Create an Int64 object. This can be used to work with 64 bit integers asa string value while on a 32 bit platform.

Example:

$int64 = $bigQuery->int64('9223372036854775807');
Parameter
NameDescription
valuestring

The 64 bit integer value in string format.

Returns
TypeDescription
Google\Cloud\Core\Int64

time

Create a Time object.

Example:

$time = $bigQuery->time(new \DateTime('12:15:00.482172'));
Parameter
NameDescription
valueDateTimeInterface

The time value.

Returns
TypeDescription
Time

timestamp

Create a Timestamp object.

Example:

$timestamp = $bigQuery->timestamp(new \DateTime('2003-02-05 11:15:02.421827Z'));
Parameter
NameDescription
valueDateTimeInterface

The timestamp value.

Returns
TypeDescription
Timestamp

numeric

Create a Numeric object.

Numeric represents a value with a data type ofNumeric.

It supports a fixed 38 decimal digits of precision and 9 decimal digits of scale, and valuesare in the range of -99999999999999999999999999999.999999999 to99999999999999999999999999999.999999999.

Example:

$numeric = $bigQuery->numeric('99999999999999999999999999999999999999.999999999');
Parameter
NameDescription
valuestring|int|float

The Numeric value.

Returns
TypeDescription
numeric

bigNumeric

Create a BigNumeric object.

Numeric represents a value with a data type ofBIGNUMERIC.

It supports 76.76 (the 77th digit is partial) decimal digits of precisionand 38 decimal digits of scale. Values are in the range of-5.7896044618658097711785492504343953926634992332820282019728792003956564819968E+38to 5.7896044618658097711785492504343953926634992332820282019728792003956564819967E+38.

Example:

$bigNumeric = $bigQuery->bigNumeric('999999999999999999999999999999999999999999999.99999999999999');
Parameter
NameDescription
valuestring|int|float

The Numeric value.

Returns
TypeDescription
BigNumeric

geography

Create a Geography object.

Example:

$geography = $bigQuery->geography('POINT(10 20)');
Parameter
NameDescription
valuestring

The geography data in WKT format.

Returns
TypeDescription
Geography

json

Create a BigQuery Json object.

Json represents a value with a data type ofJSON

Example:

use Google\Cloud\BigQuery\BigQueryClient;$bigQuery = new BigQueryClient();$json = $bigQuery->json('{"key":"value"}');
Parameter
NameDescription
valuestring|null

The JSON string value.

Returns
TypeDescription
Json

getServiceAccount

Get a service account for the KMS integration.

Example:

$serviceAccount = $bigQuery->getServiceAccount();
Parameter
NameDescription
optionsarray

[optional] Configuration options.

Returns
TypeDescription
string

copy

Parameters
NameDescription
optionsarray

Configuration options.

↳ configurationarray

Job configuration. Please see theAPI documentation for the available options.

Properties
NameDescription
copyarray

Copy job configuration. Please see thedocumentation for the available options.

Returns
TypeDescription
CopyJobConfiguration

extract

Parameters
NameDescription
optionsarray

Configuration options.

↳ configurationarray

Job configuration. Please see theAPI documentation for the available options.

Properties
NameDescription
extractarray

Extract job configuration. Please see thedocumentation for the available options.

Returns
TypeDescription
ExtractJobConfiguration

load

Parameters
NameDescription
optionsarray

Configuration options.

↳ configurationarray

Job configuration. Please see theAPI documentation for the available options.

Properties
NameDescription
loadarray

Load job configuration. Please see thedocumentation for the available options.

Returns
TypeDescription
LoadJobConfiguration

Constants

VERSION

Value: '1.35.1'

MAX_DELAY_MICROSECONDS

Value: 32000000

SERVICE_NAME

Value: 'bigquery'

SCOPE

Value: 'https://www.googleapis.com/auth/bigquery'

INSERT_SCOPE

Value: 'https://www.googleapis.com/auth/bigquery.insertdata'

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-01-24 UTC.