ODBC and JDBC drivers for BigQuery

Introduction

Google has collaborated with Simba to provide ODBC and JDBC drivers that leverage the power of BigQuery's GoogleSQL.

The intent of the JDBC and ODBC drivers is to help users leverage the power of BigQuery with existing tooling and infrastructure. Some capabilities of BigQuery, including high performance storage integration and reservations management, are only available through the BigQuery APIs. These drivers can only be used with BigQuery and can't be used with any other product or service. You can use these drivers without any additional license requirements, but cannot redistribute the drivers as part of an application.

Current ODBC driver

ODBC release 3.0.4.1008

ODBC release 2.5.2.1004

We recommend that you upgrade to the 3.x release. The 2.5.x release is still supported for bug fixes and critical security updates, but new BigQuery features will only be added to the 3.x release.

Current JDBC driver

JDBC release 1.5.4.1008

Known issues and FAQ

Can I use these drivers to ingest or export data between BigQuery and my existing environment?

These drivers leverage the query interface for BigQuery and don't provide functionality to leverage BigQuery's large scale ingestion mechanisms or export functionality.

While you can use DML to issue small volumes of INSERT requests, it is subject to the limits on DML.

How do the drivers deal with BigQuery's nested and repeated data schemas?

Nested and repeated data, also known as STRUCTS and ARRAYS in GoogleSQL, is represented as the JSON output from the BigQuery API for these types because the ODBC data model does not have an appropriate way to represent the data. While you might run queries that manipulate these types, if the output schema from a query has complex types the drivers will present these encoded in JSON format.

Do the drivers support parameterized queries?

Yes, the drivers support positional parameterization. Note that preparing a query prior to execution provides validation information, but does not affect performance of the executed query.

Do the drivers support the SQL query prefix?

While BigQuery supports using query prefixes to switch between the legacy SQL and GoogleSQL dialects, the drivers do not. The drivers maintain specific state related to the SQL mode used and set the option explicitly when creating the connection. Because the SQL mode is fixed when the connection is created, the drivers do not support switching SQL dialects using query prefixes.

How do I get support for these drivers?

Please consult our support page for support options.

How am I being charged when querying BigQuery via the driver?

The drivers are available for download at no cost. Queries run using the driver are charged based on how the driver is configured:

  • Query pricing applies by default to all queries from the driver. Query pricing is the only pricing that applies when the driver is not configured to support large result sets.
  • Storage pricing applies in addition to query pricing when the driver is configured to write large results sets to a destination table. Data is stored for 24 hours, and table results will incur 24 hours worth of storage charges.
  • Storage API pricing applies when the Storage API is invoked using the driver. This pricing applies to data read from query results and not to the data scanned by the query. Storage API pricing only applies to large result sets.