Interface Connection (2.45.0)

public interface Connection

A Connection is a session between a Java application and BigQuery. SQL statements are executed and results are returned within the context of a connection.

Methods

close()

public abstract boolean close()

Sends a query cancel request. This call will return immediately

Returns
Type Description
boolean
Exceptions
Type Description
BigQuerySQLException

dryRun(String sql)

public abstract BigQueryDryRunResult dryRun(String sql)

Execute a query dry run that returns information on the schema and query parameters of the query results.

Parameter
Name Description
sql String

typically a static SQL SELECT statement

Returns
Type Description
BigQueryDryRunResult
Exceptions
Type Description
BigQuerySQLException

executeSelect(String sql)

public abstract BigQueryResult executeSelect(String sql)

Execute a SQL statement that returns a single ResultSet.

Example of running a query.

{ @code ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setRequestTimeout(10L) .setMaxResults(100L) .setUseQueryCache(true) .build(); Connection connection = bigquery.createConnection(connectionSettings); String selectQuery = "SELECT corpus FROM bigquery-public-data.samples.shakespeare GROUP BY corpus;"; BigQueryResult bqResultSet = connection.executeSelect(selectQuery) ResultSet rs = bqResultSet.getResultSet(); while (rs.next()) { System.out.printf("%s,", rs.getString("corpus")); }

Parameter
Name Description
sql String

a static SQL SELECT statement

Returns
Type Description
BigQueryResult

a ResultSet that contains the data produced by the query

Exceptions
Type Description
BigQuerySQLException

executeSelect(String sql, List<Parameter> parameters, Map<String,String>[] labels)

public abstract BigQueryResult executeSelect(String sql, List<Parameter> parameters, Map<String,String>[] labels)

This method executes a SQL SELECT query

Parameters
Name Description
sql String

SQL SELECT query

parameters List<Parameter>

named or positional parameters. The set of query parameters must either be all positional or all named parameters.

labels Map<String,String>[]

(optional) the labels associated with this query. You can use these to organize and group your query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional and Label is a Varargs. You should pass all the Labels in a single Map .Label keys must start with a letter and each label in the list must have a different key.

Returns
Type Description
BigQueryResult

BigQueryResult containing the output of the query

Exceptions
Type Description
BigQuerySQLException

executeSelectAsync(String sql)

public abstract ListenableFuture<ExecuteSelectResponse> executeSelectAsync(String sql)

Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to process the response asynchronously.

Example of running a query.

{ @code ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setUseReadAPI(true) .build(); Connection connection = bigquery.createConnection(connectionSettings); String selectQuery = "SELECT corpus FROM bigquery-public-data.samples.shakespeare GROUP BY corpus;"; ListenableFuture<ExecuteSelectResponse> executeSelectFuture = connection.executeSelectAsync(selectQuery); ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();

if(!executeSelectRes.getIsSuccessful()){ throw executeSelectRes.getBigQuerySQLException(); }

BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult(); ResultSet rs = bigQueryResult.getResultSet(); while (rs.next()) { System.out.println(rs.getString(1)); }

Parameter
Name Description
sql String

a static SQL SELECT statement

Returns
Type Description
com.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse>

a ListenableFuture that is used to get the data produced by the query

Exceptions
Type Description
BigQuerySQLException

upon failure

executeSelectAsync(String sql, List<Parameter> parameters, Map<String,String>[] labels)

public abstract ListenableFuture<ExecuteSelectResponse> executeSelectAsync(String sql, List<Parameter> parameters, Map<String,String>[] labels)

Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to process the response asynchronously.

Example of running a query.

{ @code ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() ..setUseReadAPI(true) .build(); Connection connection = bigquery.createConnection(connectionSettings); String selectQuery = "SELECT TimestampField, StringField, BooleanField FROM "

  • MY_TABLE
  • " WHERE StringField = @stringParam"
  • " AND IntegerField IN UNNEST(@integerList)"; QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); QueryParameterValue intArrayParameter = QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); Parameter stringParam = Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build(); Parameter intArrayParam = Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build(); List<Parameter> parameters = ImmutableList.of(stringParam, intArrayParam);

    ListenableFuture<ExecuteSelectResponse> executeSelectFut = connection.executeSelectAsync(selectQuery, parameters); ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();

    if(!executeSelectRes.getIsSuccessful()){ throw executeSelectRes.getBigQuerySQLException(); }

    BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult(); ResultSet rs = bigQueryResult.getResultSet(); while (rs.next()) { System.out.println(rs.getString(1)); }

Parameters
Name Description
sql String

SQL SELECT query

parameters List<Parameter>

named or positional parameters. The set of query parameters must either be all positional or all named parameters.

labels Map<String,String>[]

(optional) the labels associated with this query. You can use these to organize and group your query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional and Label is a Varargs. You should pass all the Labels in a single Map .Label keys must start with a letter and each label in the list must have a different key.

Returns
Type Description
com.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse>

a ListenableFuture that is used to get the data produced by the query

Exceptions
Type Description
BigQuerySQLException

upon failure