# Google BigQuery

Google BigQuery is a serverless data warehouse built for fast SQL analytics over large datasets. Connecting BigQuery to Duvo lets your assignments query your data warehouse directly, pulling metrics, running analyses, and feeding results into automated workflows.

## Setup

### Prerequisites

* A Google Cloud project with the [BigQuery API enabled](https://console.cloud.google.com/apis/library/bigquery.googleapis.com)
* A service account with a JSON key file — see [Create and delete service account keys](https://cloud.google.com/iam/docs/keys-create-delete) for instructions

### Required Permissions

Grant the service account these IAM roles on the project (or on specific datasets if you prefer tighter scoping):

* **BigQuery Job User** (`roles/bigquery.jobUser`) — required to run query jobs
* **BigQuery Data Viewer** (`roles/bigquery.dataViewer`) — required to read table and view data

If your tables use column-level access control, the service account also needs the **Data Catalog Fine-Grained Reader** role (`roles/datacatalog.categoryFineGrainedReader`) on the relevant policy tags to read protected columns.

### Connection Fields

| Field               | Description                                                                                                                                                                                                                   |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Service Account** | The full contents of your service account JSON key file. Open the downloaded `.json` file in a text editor, copy everything, and paste it here. The JSON must include `project_id`, `client_email`, and `private_key` fields. |

### Third-Party Documentation

* [Authenticating with a service account key file](https://cloud.google.com/bigquery/docs/authentication/service-account-file)
* [BigQuery IAM roles and permissions](https://cloud.google.com/bigquery/docs/access-control)
* [Control access to resources with IAM](https://cloud.google.com/bigquery/docs/control-access-to-resources-iam)

## Capabilities

* **Run SQL queries** — Execute standard SQL against any dataset and table your service account can access, including aggregation and filtering queries.
* **Explore schemas** — List available datasets, tables, and column definitions using BigQuery's `INFORMATION_SCHEMA` views.
* **Export results** — Query results are automatically saved as files in your workspace, optimized for efficient downstream processing by your assignment.

## Key Benefits

* **Direct warehouse access** — Query petabytes of data without manual exports or CSV downloads.
* **Real-time insights** — Pull current metrics and KPIs straight from your data warehouse into automated workflows.
* **Secure, scoped access** — Service account permissions control exactly which projects and datasets your assignments can reach.
* **Data-driven automation** — Combine warehouse data with other connections to make intelligent decisions within a workflow.

## Works Well With

* **Google Sheets** — Query BigQuery for raw data, then write summaries or reports into a spreadsheet for stakeholders.
* **Slack** — Pull key metrics from your warehouse and post automated updates to team channels.
* **Gmail** — Generate data-driven reports from BigQuery and email them on a schedule.
