Google BigQuery Connector for JAVA

Read / write Google BigQuery data inside your app without coding using easy to use high performance API Connector

In this article you will learn how to quickly and efficiently integrate Google BigQuery data in JAVA. We will use high-performance Google BigQuery Connector to easily connect to Google BigQuery and then access the data inside JAVA.

Let's follow the steps below to see how we can accomplish that!

Download Documentation

Create Data Source in ZappySys Data Gateway based on API Driver

  1. Download and install ODBC PowerPack.

  2. Search for gateway in start menu and Open ZappySys Data Gateway:
    Open ZappySys Data Gateway

  3. Go to Users Tab to add our first Gateway user. Click Add; we will give it a name tdsuser and enter password you like to give. Check Admin option and click OK to save. We will use these details later when we create linked server:
    ZappySys Data Gateway - Add User

  4. Now we are ready to add a data source. Click Add, give data source a name (Copy this name somewhere, we will need it later) and then select Native - ZappySys API Driver. Finally, click OK. And it will create the Data Set for it and open the ZS driver UI.

    GoogleBigqueryDSN

    ZappySys Data Gateway - Add Data Source

  5. When the Configuration window appears give your data source a name if you haven't done that already, then select "Google BigQuery" from the list of Popular Connectors. If "Google BigQuery" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:

    GoogleBigqueryDSN
    Google BigQuery
    ODBC DSN Template Selection
  6. Now it's time to configure the Connection Manager. Select Authentication Type, e.g. Token Authentication. Then select API Base URL (in most cases, the default one is the right one). More info is available in the Authentication section.

    User accounts represent a developer, administrator, or any other person who interacts with Google APIs and services. User accounts are managed as Google Accounts, either with Google Workspace or Cloud Identity. They can also be user accounts that are managed by a third-party identity provider and federated with Workforce Identity Federation. [API reference]

    Steps how to get and use Google BigQuery credentials

    Follow these steps on how to create Client Credentials (User Account principle) to authenticate and access BigQuery API in SSIS package or ODBC data source:

    WARNING: If you are planning to automate processes, we recommend that you use a Service Account authentication method. In case, you still need to use User Account, then make sure you use a system/generic account (e.g. automation@my-company.com). When you use a personal account which is tied to a specific employee profile and that employee leaves the company, the token may become invalid and any automated processes using that token will start to fail.

    Step-1: Create project

    This step is optional, if you already have a project in Google Cloud and can use it. However, if you don't, proceed with these simple steps to create one:

    1. First of all, go to Google API Console.

    2. Then click Select a project button and then click NEW PROJECT button:

      Start creating a new project in Google Cloud
    3. Name your project and click CREATE button:

      Create a new project in Google Cloud
    4. Wait until the project is created:

      Wait until project is created in Google Cloud
    5. Done! Let's proceed to the next step.

    Step-2: Enable Google Cloud APIs

    In this step we will enable BigQuery API and Cloud Resource Manager API:

    1. Select your project on the top bar:

      Select project in Google Cloud
    2. Then click the "hamburger" icon on the top left and access APIs & Services:

      Access APIs and services in Google Cloud
    3. Now let's enable several APIs by clicking ENABLE APIS AND SERVICES button:

      Enable API for project in Google Cloud
    4. In the search bar search for bigquery api and then locate and select BigQuery API:

      Search for API in Google Cloud
    5. If BigQuery API is not enabled, enable it:

      Enable Google BigQuery API
    6. Then repeat the step and enable Cloud Resource Manager API as well:

      Enable Cloud Resource Manager API
    7. Done! Let's proceed to the next step.

    Step-3: Create OAuth application

    1. First of all, click the "hamburger" icon on the top left and then hit VIEW ALL PRODUCTS:

      View all products in Google Cloud
    2. Then access Google Auth Platform to start creating an OAuth application:

      Open Google Auth Platform in Google Cloud
    3. Start by pressing GET STARTED button:

      Start creating an app in Google Cloud
    4. Next, continue by filling in App name and User support email fields:

      Fill app info in Google Cloud
    5. Choose Internal option, if it's enabled, otherwise select External:

      Choose app audience in Google Cloud
    6. Optional step if you used Internal option in the previous step. Nevertheless, if you had to use External option, then click ADD USERS to add a user:

      Add test user in Google Cloud app
    7. Then add your contact Email address:

      Enter app contact info in Google Cloud
    8. Finally, check the checkbox and click CREATE button:

      Create app in Google Cloud
    9. Done! Let's create Client Credentials in the next step.

    Step-4: Create Client Credentials

    1. In Google Auth Platform, select Clients menu item and click CREATE CLIENT button:

      Start creating app client in Google Cloud
    2. Choose Desktop app as Application type and name your credentials:

      Create OAuth app client in Google Cloud
    3. Continue by opening the created credentials:

      View app client credentials in Google Cloud
    4. Finally, copy Client ID and Client secret for the later step:

      Use client ID and secret to read Google REST API data
    5. Done! We have all the data needed for authentication, let's proceed to the last step!

    Step-5: Configure connection

    1. Now go to SSIS package or ODBC data source and use previously copied values in User Account authentication configuration:

      • In the ClientId field paste the Client ID value.
      • In the ClientSecret field paste the Client secret value.
    2. Press Generate Token button to generate Access and Refresh Tokens.

    3. Then choose ProjectId from the drop down menu.

    4. Continue by choosing DatasetId from the drop down menu.

    5. Finally, click Test Connection to confirm the connection is working.

    6. Done! Now you are ready to use Google BigQuery Connector!

    Fill in all required parameters and set optional parameters if needed:

    GoogleBigqueryDSN
    Google BigQuery
    User Account [OAuth]
    https://www.googleapis.com/bigquery/v2
    Required Parameters
    UseCustomApp Fill-in the parameter...
    ProjectId (Choose after [Generate Token] clicked) Fill-in the parameter...
    DatasetId (Choose after [Generate Token] clicked and ProjectId selected) Fill-in the parameter...
    Optional Parameters
    ClientId
    ClientSecret
    Scope https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigquery.insertdata https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloud-platform.read-only https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/devstorage.read_write
    RetryMode RetryWhenStatusCodeMatch
    RetryStatusCodeList 429|503
    RetryCountMax 5
    RetryMultiplyWaitTime True
    Job Location
    Redirect URL (Only for Web App)
    ODBC DSN Oauth Connection Configuration

    Service accounts are accounts that do not represent a human user. They provide a way to manage authentication and authorization when a human is not directly involved, such as when an application needs to access Google Cloud resources. Service accounts are managed by IAM. [API reference]

    Steps how to get and use Google BigQuery credentials

    Follow these steps on how to create Service Account to authenticate and access BigQuery API in SSIS package or ODBC data source:

    Step-1: Create project

    This step is optional, if you already have a project in Google Cloud and can use it. However, if you don't, proceed with these simple steps to create one:

    1. First of all, go to Google API Console.

    2. Then click Select a project button and then click NEW PROJECT button:

      Start creating a new project in Google Cloud
    3. Name your project and click CREATE button:

      Create a new project in Google Cloud
    4. Wait until the project is created:

      Wait until project is created in Google Cloud
    5. Done! Let's proceed to the next step.

    Step-2: Enable Google Cloud APIs

    In this step we will enable BigQuery API and Cloud Resource Manager API:

    1. Select your project on the top bar:

      Select project in Google Cloud
    2. Then click the "hamburger" icon on the top left and access APIs & Services:

      Access APIs and services in Google Cloud
    3. Now let's enable several APIs by clicking ENABLE APIS AND SERVICES button:

      Enable API for project in Google Cloud
    4. In the search bar search for bigquery api and then locate and select BigQuery API:

      Search for API in Google Cloud
    5. If BigQuery API is not enabled, enable it:

      Enable Google BigQuery API
    6. Then repeat the step and enable Cloud Resource Manager API as well:

      Enable Cloud Resource Manager API
    7. Done! Let's proceed to the next step and create a service account.

    Step-3: Create Service Account

    Use the steps below to create a Service Account in Google Cloud:

    1. First of all, go to IAM & Admin in Google Cloud console:

      Access IAM & Admin in Google Cloud
    2. Once you do that, click Service Accounts on the left side and click CREATE SERVICE ACCOUNT button:

      Start creating service account in Google Cloud
    3. Then name your service account and click CREATE AND CONTINUE button:

      Create service account in Google Cloud
    4. Continue by clicking Select a role dropdown and start granting service account BigQuery Admin and Project Viewer roles:

      Start granting service account project roles in Google Cloud
    5. Find BigQuery group on the left and then click on BigQuery Admin role on the right:

      Grant service account BigQuery Admin role
    6. Then click ADD ANOTHER ROLE button, find Project group and select Viewer role:

      Grant service account project viewer role
    7. Finish adding roles by clicking CONTINUE button:

      Finish granting service account project roles in Google Cloud
      You can always add or modify permissions later in IAM & Admin.
    8. Finally, in the last step, just click button DONE:

      Finish configuring service account in Google Cloud
    9. Done! We are ready to add a Key to this service account in the next step.

    Step-4: Add Key to Service Account

    We are ready to add a Key (JSON or P12 key file) to the created Service Account:

    1. In Service Accounts open newly created service account:

      Open service account in Google Cloud
    2. Next, copy email address of your service account for the later step:

      Copy service account email address in Google Cloud
    3. Continue by selecting KEYS tab, then press ADD KEY dropdown, and click Create new key menu item:

      Start creating key for service account in Google Cloud
    4. Finally, select JSON (Engine v19+) or P12 option and hit CREATE button:

      Create JSON or P12 key for service account in Google Cloud
    5. Key file downloads into your machine. We have all the data needed for authentication, let's proceed to the last step!

    Step-5: Configure connection

    1. Now go to SSIS package or ODBC data source and configure these fields in Service Account authentication configuration:

      • In the Service Account Email field paste the service account Email address value you copied in the previous step.
      • In the Service Account Private Key Path (i.e. *.json OR *.p12) field use downloaded certificate's file path.
    2. Done! Now you are ready to use Google BigQuery Connector!

    Fill in all required parameters and set optional parameters if needed:

    GoogleBigqueryDSN
    Google BigQuery
    Service Account [OAuth]
    https://www.googleapis.com/bigquery/v2
    Required Parameters
    Service Account Email Fill-in the parameter...
    Service Account Private Key Path (i.e. *.json OR *.p12) Fill-in the parameter...
    ProjectId Fill-in the parameter...
    DatasetId (Choose after ProjectId) Fill-in the parameter...
    Optional Parameters
    Scope https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigquery.insertdata https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloud-platform.read-only https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/devstorage.read_write
    RetryMode RetryWhenStatusCodeMatch
    RetryStatusCodeList 429
    RetryCountMax 5
    RetryMultiplyWaitTime True
    Job Location
    Impersonate As (Enter Email Id)
    ODBC DSN Oauth Connection Configuration

  7. Once the data source connection has been configured, it's time to configure the SQL query. Select the Preview tab and then click Query Builder button to configure the SQL query:

    ZappySys API Driver - Google BigQuery
    Read / write Google BigQuery data inside your app without coding using easy to use high performance API Connector
    GoogleBigqueryDSN
    Open Query Builder in API ODBC Driver to read and write data to REST API
  8. Start by selecting the Table or Endpoint you are interested in and then configure the parameters. This will generate a query that we will use in JAVA to retrieve data from Google BigQuery. Hit OK button to use this query in the next step.

    #DirectSQL SELECT * FROM bigquery-public-data.samples.wikipedia LIMIT 1000 /* try your own dataset or Some FREE dataset like nyc-tlc.yellow.trips -- 3 parts ([Project.]Dataset.Table) */
    Configure table/endpoint parameters in ODBC data source based on API Driver
    Some parameters configured in this window will be passed to the Google BigQuery API, e.g. filtering parameters. It means that filtering will be done on the server side (instead of the client side), enabling you to get only the meaningful data much faster.
  9. Now hit Preview Data button to preview the data using the generated SQL query. If you are satisfied with the result, use this query in JAVA:

    ZappySys API Driver - Google BigQuery
    Read / write Google BigQuery data inside your app without coding using easy to use high performance API Connector
    GoogleBigqueryDSN
    #DirectSQL SELECT * FROM bigquery-public-data.samples.wikipedia LIMIT 1000 /* try your own dataset or Some FREE dataset like nyc-tlc.yellow.trips -- 3 parts ([Project.]Dataset.Table) */
    API ODBC Driver-based data source data preview
    You can also access data quickly from the tables dropdown by selecting <Select table>.
    A WHERE clause, LIMIT keyword will be performed on the client side, meaning that the whole result set will be retrieved from the Google BigQuery API first, and only then the filtering will be applied to the data. If possible, it is recommended to use parameters in Query Builder to filter the data on the server side (in Google BigQuery servers).
  10. Click OK to finish creating the data source.

Read data in Java from the DSN

  1. Java code to get the data:

    "jdbc:sqlserver://localhost:5000;databasename=GoogleBigqueryDSN;user=tdsuser;password=test"
    Java code to Make ZappySys Driver Data Source Call

  2. When you run the code it will make the API call and read the data:
    Java code ZappySys Driver Data Source Results

  3. Here is Java program's code in text format:

    
    //Step-1: Install ZappySys ODBC PowerPack and Configure Data Gateway
    
    //Step-2:Assuming the Microsoft SQL Server JDBC Driver is in below folder
    //C:\Program Files\Microsoft Jdbc Driver 6.0 for SQL Server\sqljdbc_6.0\enu\auth\x64
    package padaone;
    
    import java.sql.*;
    
    public class zappy {
    
        public static void main(String[] args) {
    
            // Create a variable for the connection string.
            String connectionUrl = "jdbc:sqlserver://localhost:5000;databasename=GoogleBigqueryDSN;user=test;password=test";
    
            // Declare the JDBC objects.
            Connection con = null;
            Statement stmt = null;
            ResultSet rs = null;
    
                try {
                    // Establish the connection.
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                    con = DriverManager.getConnection(connectionUrl);
    
                    // Create and execute an SQL statement that returns some data.
                    String SQL = "SELECT Country , SUM(UnitPrice * Quantity) Total " 
                               + "FROM value " 
                               + "GROUP BY Country "
                               + "WITH (SRC='https://services.odata.org/V3/Northwind/Northwind.svc/Invoices?$format=json')";
                    stmt = con.createStatement();
                    rs = stmt.executeQuery(SQL);
    
                    // Iterate through the data in the result set and display it.
                    while (rs.next()) {
                        System.out.println(rs.getString(1) + " " + rs.getString(2));
                    }
                }
    
            // Handle any errors that may have occurred.
            catch (Exception e) {
                e.printStackTrace();
            } 
            
            finally {
                if (rs != null) try { rs.close(); } catch (Exception e) {}
                if (stmt != null) try { stmt.close(); } catch (Exception e) {}
                if (con != null) try { con.close(); } catch (Exception e) {}
            }
        }
    }

Actions supported by Google BigQuery Connector

Learn how to perform common Google BigQuery actions directly in JAVA with these how-to guides:

Conclusion

In this article we showed you how to connect to Google BigQuery in JAVA and integrate data without any coding, saving you time and effort. It's worth noting that ZappySys API Driver allows you to connect not only to Google BigQuery, but to any Java application that supports JDBC (just use a different JDBC driver and configure it appropriately).

We encourage you to download Google BigQuery Connector for JAVA and see how easy it is to use it for yourself or your team.

If you have any questions, feel free to contact ZappySys support team. You can also open a live chat immediately by clicking on the chat icon below.

Download Google BigQuery Connector for JAVA Documentation

More integrations

Other connectors for JAVA

All
Big Data & NoSQL
Database
CRM & ERP
Marketing
Collaboration
Cloud Storage
Reporting
Commerce
API & Files

Other application integration scenarios for Google BigQuery

All
Data Integration
Database
BI & Reporting
Productivity
Programming Languages
Automation & Scripting
ODBC applications

  • How to connect Google BigQuery in JAVA?

  • How to get Google BigQuery data in JAVA?

  • How to read Google BigQuery data in JAVA?

  • How to load Google BigQuery data in JAVA?

  • How to import Google BigQuery data in JAVA?

  • How to pull Google BigQuery data in JAVA?

  • How to push data to Google BigQuery in JAVA?

  • How to write data to Google BigQuery in JAVA?

  • How to POST data to Google BigQuery in JAVA?

  • Call Google BigQuery API in JAVA

  • Consume Google BigQuery API in JAVA

  • Google BigQuery JAVA Automate

  • Google BigQuery JAVA Integration

  • Integration Google BigQuery in JAVA

  • Consume real-time Google BigQuery data in JAVA

  • Consume real-time Google BigQuery API data in JAVA

  • Google BigQuery ODBC Driver | ODBC Driver for Google BigQuery | ODBC Google BigQuery Driver | SSIS Google BigQuery Source | SSIS Google BigQuery Destination

  • Connect Google BigQuery in JAVA

  • Load Google BigQuery in JAVA

  • Load Google BigQuery data in JAVA

  • Read Google BigQuery data in JAVA

  • Google BigQuery API Call in JAVA