- To establish a connection with the BigQuery data source, you need to enable BigQuery API in your Google Cloud Console. You can follow the steps to enable BigQuery API from **[Google Cloud](https://cloud.google.com/bigquery/docs/bigquery-web-ui)**.
- Next, you need to create a service account and generate a key for the same. You can follow the steps to create a service account from **[Google Cloud](https://cloud.google.com/iam/docs/creating-managing-service-accounts)**.
- Once you have created the service account after following the steps mentioned in the Google Cloud guide, create a new **Key** and download it in a JSON file.
Click on the **Test Connection** button to verify if the credentials are correct and that the API is accessible to ToolJet server. Click on **Save** button to save the data source.
Click on the **+Add** button of the query manager at the bottom panel of the editor and select the database added in the previous step as the data source. Select the operation that you want to perform from the **Operation** dropdown and click on the **Run** button to run the query.
**Note**: Follow the reference given in **Google Cloud** about the operations: **[Query options](https://cloud.google.com/bigquery/docs/reference/rest/v2/Job)** and **[Query results options](https://cloud.google.com/nodejs/docs/reference/bigquery/latest/overview#_google_cloud_bigquery_QueryResultsOptions_type)**.
- **Query options:** The JSON object specifies additional options for the query.
- **Query results options:** The `{ wrapIntegers: true }` option instructs how integers in the results should be handled, particularly relevant for languages or interfaces that may have issues with large integers.
<imgstyle={{border:'0',marginBottom:'15px'}}className="screenshot-full"src="/img/datasource-reference/bigquery/list-datasets-v2.png"alt="BQ list datasets"/>
This operation returns the list of tables within a dataset.
#### Required parameters:
- **Dataset id:** The ID for the dataset from which to list the tables.
<divstyle={{textAlign:'center'}}>
<imgstyle={{border:'0',marginBottom:'15px'}}className="screenshot-full"src="/img/datasource-reference/bigquery/listtables-v2.png"alt="BQ list tables"/>
- **Table id**: The ID of the table from which the data will be selected to create the view.
- **Dataset id**: This field requires the dataset ID where the view will be created.
- **View name**: Specify the name for the new view.
- **View columns**: List the columns you want to include in the view. This is typically done by specifying column names separated by commas.
- **Condition**: This specifies the SQL conditions for the view creation.
- **Query options**: The JSON object specifies additional options for the query.
- **Query results options**: The `{ wrapIntegers: true }` option instructs how integers in the results should be handled, particularly relevant for languages or interfaces that may have issues with large integers.
- **Table id**: The ID for the table from which records need to be deleted.
- **Dataset id**: The ID for the dataset containing the table specified above.
- **Condition**: The condition specifies which records should be deleted. Any record that meets this condition will be deleted from the table.
- **Query options**: The JSON object specifies additional options for the query.
- **Query results options**: The `{ wrapIntegers: true }` option instructs how integers in the results should be handled, particularly relevant for languages or interfaces that may have issues with large integers.
- **Table id**: The ID for the table from which records need to be updated.
- **Dataset id**: The ID for the dataset containing the table specified above.
- **Columns**: This is where the user specifies the data to be updated.
- **Condition**: The condition specifies which records should be updated. Any record that meets this condition will be updated from the table.
- **Query options**: The JSON object specifies additional options for the query.
- **Query results options**: The `{ wrapIntegers: true }` option instructs how integers in the results should be handled, particularly relevant for languages or interfaces that may have issues with large integers.