Package com.google.cloud.bigquery
Interface Connection
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.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
close()
Sends a query cancel request.Execute a query dry run that returns information on the schema and query parameters of the query results.executeSelect
(String sql) Execute a SQL statement that returns a single ResultSet.This method executes a SQL SELECT querycom.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse>
executeSelectAsync
(String sql) Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to process the response asynchronously.com.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse>
Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to process the response asynchronously.
-
Method Details
-
close
Sends a query cancel request. This call will return immediately- Throws:
BigQuerySQLException
-
dryRun
Execute a query dry run that returns information on the schema and query parameters of the query results.- Parameters:
sql
- typically a static SQL SELECT statement- Throws:
BigQuerySQLException
- if a database access error occurs
-
executeSelect
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")); }
- Parameters:
sql
- a static SQL SELECT statement- Returns:
- a ResultSet that contains the data produced by the query
- Throws:
BigQuerySQLException
- if a database access error occurs
-
executeSelect
@BetaApi BigQueryResult executeSelect(String sql, List<Parameter> parameters, Map<String, String>... labels) throws BigQuerySQLExceptionThis method executes a SQL SELECT query- Parameters:
sql
- SQL SELECT queryparameters
- named or positional parameters. The set of query parameters must either be all positional or all named parameters.labels
- (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:
- BigQueryResult containing the output of the query
- Throws:
BigQuerySQLException
-
executeSelectAsync
@BetaApi com.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse> executeSelectAsync(String sql) throws BigQuerySQLException 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)); }
- Parameters:
sql
- a static SQL SELECT statement- Returns:
- a ListenableFuture that is used to get the data produced by the query
- Throws:
BigQuerySQLException
- upon failure
-
executeSelectAsync
@BetaApi com.google.common.util.concurrent.ListenableFuture<ExecuteSelectResponse> executeSelectAsync(String sql, List<Parameter> parameters, Map<String, String>... labels) throws BigQuerySQLExceptionExecute 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:
sql
- SQL SELECT queryparameters
- named or positional parameters. The set of query parameters must either be all positional or all named parameters.labels
- (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:
- a ListenableFuture that is used to get the data produced by the query
- Throws:
BigQuerySQLException
- upon failure
-