Sitemap

How to Connect Google Looker to Google BigQuery: A Step-by-Step Guide

8 min readOct 22, 2026

--

Google Looker and Google BigQuery are a powerful combination for modern Business Intelligence (BI) and data analytics. By connecting Looker to BigQuery, organizations can explore large datasets, build interactive dashboards, analyze business performance, and deliver consistent insights through a centralized semantic modeling layer.

In this tutorial, we will walk through the process of connecting Google Looker to Google BigQuery, including the required permissions, service account configuration, connection settings, Persistent Derived Tables (PDTs), and connection testing.

Whether you are a Looker developer, BI engineer, data analyst, or someone preparing for a Looker project, this guide will help you understand the essential configuration steps.

What Is Google Looker?

Google Looker is an enterprise Business Intelligence platform that enables users to explore data, create dashboards, and generate reports using a governed semantic modeling layer called LookML (Looker Modeling Language).

LookML allows developers to define dimensions, measures, relationships, and business logic so that teams can use consistent metrics across their organization.

What Is Google BigQuery?

Google BigQuery is a fully managed, serverless data warehouse designed to store and analyze large volumes of data using SQL.

It allows organizations to analyze data without managing traditional database infrastructure.

Common use cases include:

  • Sales and revenue analytics
  • Customer behavior analysis
  • Marketing performance reporting
  • Financial and operational dashboards
  • Predictive analytics and machine learning
Press enter or click to view image in full size

Why Connect Looker to BigQuery?

Connecting Looker to BigQuery allows business users to explore data stored in BigQuery through Looker’s modeling and visualization capabilities.

Key benefits include:

  • Advanced data exploration: Analyze large datasets through Explores and dashboards.
  • Centralized business logic: Define reusable metrics and relationships using LookML.
  • Interactive reporting: Build dashboards with filters, visualizations, and drill-down capabilities.
  • Scalable analytics: Leverage BigQuery’s data processing infrastructure.
  • Governed reporting: Apply appropriate access controls and consistent metric definitions.
  • Performance optimization: Use caching, aggregate awareness, and PDTs where appropriate.

Important: Looker generally queries data in BigQuery rather than importing the entire warehouse into Looker. Query execution and data storage remain primarily within BigQuery, while Looker provides the BI and semantic modeling capabilities.

Prerequisites: Permissions Required

Before configuring the connection, ensure that your Google Cloud service account has the required permissions.

1. BigQuery Job User

The service account needs the BigQuery Job User role (roles/bigquery.jobUser) on the project where query jobs will be executed and billed.

This permission allows Looker to create BigQuery jobs.

2. BigQuery Data Viewer

The service account needs BigQuery Data Viewer (roles/bigquery.dataViewer) permissions on the datasets or projects containing the data that Looker must access.

This role allows the service account to read the relevant tables, views, and dataset metadata, subject to applicable permissions.

3. BigQuery Data Editor for PDTs

If you plan to use Persistent Derived Tables, the service account needs sufficient permissions to create and manage the required tables in the designated PDT dataset.

The BigQuery Data Editor role (roles/bigquery.dataEditor) is a common option for granting those dataset-level permissions.

Follow your organization’s least-privilege security policy when assigning roles. Avoid granting broad project-level access when dataset-level permissions are sufficient.

Step 1: Create a Service Account in Google Cloud

A service account provides an identity that Looker can use to authenticate with BigQuery.

Follow these steps:

  1. Open the Google Cloud Console.
  2. Select the appropriate Google Cloud project.
  3. Navigate to IAM & Admin → Service Accounts.
  4. Click Create Service Account.
  5. Enter a meaningful name, such as looker-bigquery-connection.
  6. Provide a description and complete the creation process.
  7. Grant the required BigQuery permissions to the service account.

The exact roles depend on your billing project, data projects, and whether PDTs are enabled.

Generate the JSON key

If your Looker connection uses service account JSON-key authentication:

  1. Open the newly created service account.
  2. Navigate to its Keys section.
  3. Select Add Key → Create New Key.
  4. Choose JSON.
  5. Download the key file and store it securely.

Security tip: A JSON key is a sensitive credential. Never commit it to GitHub, include it in a public repository, or share it through email or chat. Follow your organization’s key-management policy, and use a supported keyless authentication method where available.

Step 2: Open Looker Connection Settings

Next, sign in to your Google Looker instance with an account that has the necessary administrative permissions.

Navigate to:

Admin → Connections → Add Connection

This section allows administrators to configure connections between Looker and supported database platforms.

Click Add Connection to begin creating a new BigQuery connection.

Note: The available options and labels can vary depending on your Looker deployment and version.

Step 3: Configure the Connection Details

Enter the basic connection information.

Connection Name: Choose a descriptive name, such as bigquery_production or looker_bigquery_sales.

Dialect: Select the Google BigQuery Standard SQL option.

Billing Project ID: Enter the Google Cloud project ID that Looker will use to execute and bill query jobs.

Make sure the project ID is correct and that the service account has the required permissions on that project.

If your data resides in another Google Cloud project, grant the service account appropriate access to the datasets in that project as well.

For example:

  • Billing project: company-analytics-billing
  • Data project: company-sales-data
  • Dataset: sales_reporting

These are illustrative names. Replace them with the actual project and dataset identifiers in your environment.

Step 4: Configure Authentication

Configure the authentication method supported by your Looker instance.

Get Narayan Yadav’s stories in your inbox

Join Medium for free to get updates from this writer.

For a service account JSON-key setup:

  1. Select the appropriate service account authentication option.
  2. Upload or provide the JSON key file using the designated field.
  3. Confirm that the billing project ID is correct.
  4. Verify that the service account has the required BigQuery permissions.
  5. Review any additional connection settings required by your environment.

Authentication allows Looker to submit queries to BigQuery using the configured service account identity.

If authentication fails, verify that the JSON key belongs to the intended service account and that the service account has not been disabled or restricted by your organization’s security policies.

Step 5: Enable Persistent Derived Tables (PDTs)

Persistent Derived Tables, commonly known as PDTs, allow Looker to create and persist derived tables in the database for reuse.

PDTs can help optimize certain analytics workloads by avoiding repeated execution of expensive derived-table logic. Their usefulness depends on the query pattern, refresh strategy, and underlying data.

To configure PDTs:

  1. Locate the Enable PDTs setting in the connection configuration.
  2. Enable the setting if your project requires PDT functionality.
  3. Specify the BigQuery dataset intended for PDT storage.
  4. Confirm that the service account has the permissions needed to create, update, and manage tables in that dataset.
  5. Save the configuration.

For example, you might designate a dataset named looker_pdt for persistent derived tables.

Use an appropriate dataset in your own environment and follow your organization’s naming, retention, and access-control standards.

Important: PDTs are optional. If your project does not require them, you can configure the connection without enabling PDTs. If you enable them, verify the PDT-specific permissions and configuration required by your Looker environment.

Step 6: Save and Test the Connection

After completing the configuration, save the connection.

Return to the connection list and use the available Test function to validate the configuration.

A successful test helps confirm that Looker can establish the connection with the configured settings.

If the test fails, check the following:

  • Is the billing project ID correct?
  • Does the service account have BigQuery Job User permissions on the billing project?
  • Does the service account have Data Viewer permissions on the required datasets?
  • Is the JSON key valid and associated with the intended service account?
  • Are the necessary APIs and organization policies configured correctly?
  • If PDTs are enabled, does the service account have the required permissions on the PDT dataset?

Once the connection is working, you can proceed to configure LookML models and Explores for your BigQuery data.

Step 7: Start Exploring Your BigQuery Data

After establishing the connection, the next step is to make your data available for analysis through LookML.

A typical workflow involves:

  1. Creating or selecting a Looker project.
  2. Defining a LookML model that references the BigQuery connection.
  3. Creating views for the required BigQuery tables.
  4. Defining dimensions and measures.
  5. Configuring joins and relationships where required.
  6. Creating Explores for business users.
  7. Building dashboards and reports.

For example, a sales analytics model could expose dimensions such as order date, product category, and customer region, along with measures such as total revenue, order count, and average order value.

These definitions help business users explore data without writing SQL for every reporting requirement.

Common Issues and Troubleshooting

Here are some common problems you may encounter when connecting Looker to BigQuery.

Permission Denied Errors

Possible cause: The service account lacks the required permissions on the billing project or data dataset.

Solution: Verify BigQuery Job User permissions on the job project and Data Viewer permissions on the required data resources. Check PDT dataset permissions separately if PDTs are enabled.

Invalid Credentials

Possible cause: The JSON key is invalid, incorrectly configured, or associated with an unexpected service account.

Solution: Verify the authentication configuration and confirm that the service account is active. Follow your organization’s credential rotation and security procedures.

BigQuery Queries Fail

Possible cause: The billing project is incorrect, the dataset is inaccessible, or the query references unavailable resources.

Solution: Confirm the billing project, dataset identifiers, SQL dialect, and access permissions. Review the error message in Looker and the relevant BigQuery job details.

PDT Creation Fails

Possible cause: The service account cannot create or manage tables in the designated PDT dataset, or the PDT configuration is incomplete.

Solution: Check dataset-level permissions and verify that PDTs are configured according to the requirements of your Looker deployment.

Slow Dashboard Performance

Possible cause: Expensive SQL queries, large joins, inefficient LookML, or repeated processing of large datasets.

Solution: Inspect the generated SQL, optimize the underlying BigQuery queries and data model, and evaluate caching, aggregate awareness, and PDTs where appropriate.

Best Practices for a Production Environment

For a reliable and secure Looker–BigQuery integration, follow these recommendations:

  • Use least-privilege access: Grant only the permissions needed for the connection and its workloads.
  • Protect credentials: Secure JSON keys and avoid exposing them in source control.
  • Separate billing and data access thoughtfully: Understand which project executes and bills queries and which projects contain the data.
  • Plan PDT storage: Use an appropriate dataset with controlled access and suitable lifecycle management.
  • Optimize LookML: Review joins, measures, and generated SQL to prevent inefficient queries.
  • Monitor BigQuery usage: Track query processing, cost, and workload performance.
  • Test changes before production: Validate connection, model, and permission changes in a controlled environment.
  • Follow organizational security policies: Review service account management, audit logging, and credential rotation requirements.

Conclusion

Connecting Google Looker to Google BigQuery is an essential step in building a scalable Business Intelligence environment. With the right service account, permissions, connection settings, and optional PDT configuration, you can enable governed data exploration and interactive reporting on BigQuery data.

The process can be summarized in six main steps: create a service account, assign the required permissions, add a connection in Looker, configure authentication, enable PDTs if needed, and test the connection.

Once the connection is established, you can use LookML to define reusable business logic and create Explores and dashboards that help teams turn raw data into actionable insights.

If you are learning Looker development, understanding this connection process is an important foundation for working on real-world BI projects.

--

--