Unravel for BigQuery Setup Guide
Overview
Unravel for Google Cloud BigQuery delivers observability and AI-driven optimization for BigQuery environments. The platform analyzes job, query, and billing metadata to highlight actionable insights, uncover inefficiencies, and provide recommendations that improve performance and control cloud costs.
Unravel for Google Cloud BigQuery utilizes a secure, scalable SaaS architecture designed to enable the monitoring and optimization of BigQuery workloads without requiring the movement or exposure of sensitive data.

User access: Users interact with Unravel through the web interface, REST API clients, or receive notifications by email, Slack, Microsoft Teams, or GitHub Actions. Authentication uses single sign-on (SSO), local credentials, or tokens.
Unravel SaaS environment: Unravel runs on Google Kubernetes Engine (GKE) within a dedicated VPC on Google Cloud. Core services include the UI and API service, notification service, and worker processes. All collected metadata and metrics are stored securely in our internal data store.
Data collection: Unravel worker services run in the SaaS environment and connect securely to your BigQuery environment. Workers access information schema views, billing export tables, and REST API endpoints to collect metadata, job details, and billing information. All access uses only the necessary IAM roles and secure, authenticated channels.
Customer data: Unravel collects authorized metadata, job information, and billing details. Raw table data, query results, or sensitive content do not leave your environment. All communication uses HTTPS/TLS for security.
Before you begin
Before you begin onboarding, ensure you have:
Project IDs for all BigQuery projects you want to monitor.
Important
Project and Account Limits
Item
Limit
Monitoring projects
100 projects
Admin project
1 project
Billing account
1 per setup
Billing export information—Project ID, Dataset ID, and Table ID—for cost analytics (required only if you intend to use Unravel’s billing and FinOps features)
Permissions for the required Google Cloud IAM roles
The following predefined Google Cloud IAM roles must be granted to your authentication identity (service account or workload identity):
Role | Permissions Granted | Views/APIs |
---|---|---|
roles/bigquery.resourceViewer |
| |
roles/bigquery.metadataViewer |
| |
roles/bigquery.resourceViewer |
|
|
roles/bigquery.user | bigquery.transfers.get | Method: transferConfigs.list |
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.user |
| Allows Unravel to run BigQuery jobs. NoteYou do not need to grant the bigquery.jobs.create permission to monitored projects if the polling project is already configured. |
roles/bigquery.resourceAdmin |
| Allows you to receive insights and recommendations from Google. |
No predefined roles are available. |
| Allows you to receive insights and recommendations from Google. |
A polling project is a project Unravel uses to run queries and retrieve metadata.
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.user | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |
If Unravel polls jobs data from a custom table (for example, during data de-identification), you also need to grant the following permission to the polling project.
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.dataViewer |
| Allows you to retrieve metadata from a custom table. |
Role | Permissions Granted | Views/APIs |
---|---|---|
roles/bigquery.resourceViewer |
|
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.user | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.dataViewer |
| Billing Export Table [Detailed usage cost] (gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>) |
Role | Permissions Granted | Usage |
---|---|---|
roles/bigquery.user | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |
Service | Method | Permissions Granted | Views/APIs |
---|---|---|---|
bigquery.googleapis.com |
| ||
bigquery.googleapis.com |
| ||
bigquery.googleapis.com | ReservationService.SearchAllAssignments | ||
bigquerydatatransfer.googleapis.com | * (only option with GCP) | ||
recommender.googleapis.com | * (only option with GCP) |
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com |
| Allows Unravel to run BigQuery jobs. |
Note
Although these services are not listed in the official VPC Service Controls supported method restrictions, they may still appear as selectable options in the service list.
bigquerydatatransfer.googleapis.com
recommender.googleapis.com


A polling project is a project Unravel uses to run queries and retrieve metadata.
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |
If Unravel polls jobs data from a custom table (for example, during data de-identification), you also need to grant the following permission to the polling project.
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com |
| Allows you to retrieve metadata from a custom table. |
Service | Methods | Permissions Granted | Views/APIs |
---|---|---|---|
bigquery.googleapis.com |
|
|
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com |
| Billing Export Table [Detailed usage cost] (gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>) |
Service | Methods | Permissions Granted | Usage |
---|---|---|---|
bigquery.googleapis.com | bigquery.jobs.create | Allows Unravel to run BigQuery jobs. |


Unravel supports two authentication methods when accessing your GCP resources for BigQuery monitoring. Choose one based on organizational policy.
Provide credentials via Workload Identity Federation or Single Key (Service Account Key).
Workload Identity Federation: Securely allows Unravel to access your GCP resources without sharing keys.
Single Key (Service Account JSON key): Provide Unravel with a GCP service account key file with the required permissions.
Complete this step only if you have not already configured BigQuery billing export in your environment.
You need the following to set up the exporting of the GCP billing data for Unravel:
Either the Billing Accounts Costs Manager role or the Billing Account Administrator role on the target Cloud Billing account.
BigQuery user role for the project in which you want to export the billing data.
Run the following steps to set up the exporting of the GCP billing data for the projects monitored by Unravel.
From the GCP console, choose a project to export the GCP billing data.
Note
Ensure this is also the same project that you want Unravel to monitor.
Export the GCP billing data of the billing account you want to integrate with Unravel to the chosen project. Do the following to export the billing data:
Search for the Billing Exports page and select the Cloud billing account you want to integrate with Unravel.
In the Detailed Usage Cost section, click the Edit Settings button and choose the project you selected to export the GCP billing data.
From the Dataset ID drop-down, select a dataset to export the billing data or create a new dataset.
Confirm that the project and the dataset in which you want to export the billing data are correct, and then click Save.
In the Billing export page > Detailed usage cost section, check and ensure that the Detailed usage cost is shown as Enabled and your selected project ID and dataset are displayed.
The table creation process in the chosen dataset will take a few minutes.
Note the following billing export details and keep them handy:
Dataset ID
Table ID
Billing Export project ID
Billing Export Dataset ID
Billing Export Table Name
Note
The administrator project manages the BigQuery Reservations resources and is the primary billing source for these resources. This project need not be the same project with BigQuery jobs. Google recommends creating a dedicated project for Reservations resources.
Getting started with Unravel for BigQuery
After your Unravel account is set, you will receive an email with the following details. Keep these handy to access your Unravel UI and integrate the BigQuery projects.
URL to access Unravel (BigQuery) SaaS
Login credentials
Service account
Run the following steps to integrate your BigQuery projects for Unravel monitoring:
Click the URL that you have received in the email and access the Unravel UI.
Enter the login credentials received by email on the login page. The Unravel UI is displayed.
From the top right, click
and select BigQuery configuration. The BigQuery account setting page is displayed.
Specify the following details:
In the Monitored projects section, specify the Project IDs you have integrated using Terraform.
In the Administrator Projects section, specify the admin project ID.
In the Google Cloud Billing Export Data section, specify the Project ID, Dataset ID, and Table ID. Refer to Prerequisites.
Click the Save button. The BigQuery projects are successfully integrated, and you can monitor these projects from the Unravel UI. In case any errors are shown, you must fix it and click the Save button again.