---
title: Integrate Looker with Tiger Data | Tiger Data Docs
description: Connect Looker to Tiger Cloud or self-hosted TimescaleDB to model, explore, and visualize your data.
---

[Looker](https://cloud.google.com/looker) is a business intelligence and data modeling platform that lets you explore, analyze, and visualize data, then share governed dashboards across your organization.

This page shows you how to connect Looker to Tiger Data as a data source, so that you can model and visualize the data in your service or database.

In this integration guide, you:

- Create a dedicated Looker role and scratch schema in your service or database.
- Add the connection in Looker.
- Verify that Looker can query your data.

## Prerequisites for this integration guide

To follow these steps, you'll need:

- A [Tiger Cloud service](/get-started/quickstart/create-service/index.md), or a running instance of [self-hosted TimescaleDB](/get-started/choose-your-path/install-timescaledb/index.md).

* Your [connection details](/integrate/find-connection-details/index.md).

- A [Looker](https://cloud.google.com/looker) instance, with administrator access to create connections.

## Prepare your service or database

Looker connects with a dedicated database role and uses a scratch schema to materialize persistent derived tables (PDTs). Create both before you add the connection.

1. **Connect to your service or database**

   Connect to your service or database as a user with privileges to create roles and schemas, using your [connection details](/integrate/find-connection-details/index.md).

2. **Create a role for Looker**

   Create a dedicated role with a strong password:

   ```
   CREATE USER looker WITH ENCRYPTED PASSWORD '<password>';
   ```

3. **Grant read access**

   Allow the role to connect and read your data. Replace `<dbname>` with your database name:

   ```
   GRANT CONNECT ON DATABASE "<dbname>" TO looker;
   GRANT USAGE ON SCHEMA public TO looker;
   GRANT SELECT ON ALL TABLES IN SCHEMA public TO looker;
   GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO looker;
   ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO looker;
   ```

   The `ALTER DEFAULT PRIVILEGES` statement makes sure Looker can also read tables you create later.

4. **Create a scratch schema for persistent derived tables**

   Create a schema owned by the `looker` role for Looker to write PDTs into, then set the role's search path:

   ```
   CREATE SCHEMA looker_scratch AUTHORIZATION looker;
   ALTER USER looker SET search_path TO public, looker_scratch;
   ```

   Looker uses `looker_scratch` for temporary and derived tables, keeping them separate from your application data.

## Add the connection in Looker

Point Looker at your service or database using the role you created.

1. **Open the connection settings**

   In Looker, go to `Admin` > `Database` > `Connections`, then click `Add Connection`.

2. **Enter your connection details**

   Give the connection a name, then from the **Dialect** list select `PostgreSQL`. Enter your [connection details](/integrate/find-connection-details/index.md):

   - **Host**: your service or database `host`.
   - **Port**: your `port`, usually `5432`.
   - **Database**: your `dbname`.
   - **Username** and **Password**: `looker` and the password you set.

3. **Configure persistent derived tables**

   Turn on `Persistent Derived Tables` and set the **Temp Database** to `looker_scratch`, the scratch schema you created.

   If your service or database requires encrypted connections, enable SSL. When Looker is hosted, add Looker's egress IP addresses to your network or firewall allowlist so it can reach your service or database.

4. **Test and save**

   Click `Test` to confirm Looker can connect, then `Connect` to save.

   All connection tests should pass, confirming Looker can reach your service or database and use the scratch schema.

## Verify the integration

To confirm Looker is working with your service or database:

1. **Open SQL Runner**

   In Looker, go to `Develop` > `SQL Runner` and select your connection.

2. **Run a query**

   Run a simple query against one of your tables:

   ```
   SELECT * FROM <table_name> LIMIT 10;
   ```

   You see rows from your service or database in the results, confirming that Looker can read your data.

You have successfully integrated Looker with Tiger Data.

## Troubleshooting

- **Connection test fails on PDTs:** confirm the `looker_scratch` schema is owned by the `looker` role and that the role's `search_path` includes it.
- **Connection times out:** for hosted Looker, make sure Looker's egress IP addresses are allowlisted in your network, and that SSL is enabled for Tiger Cloud.

For other connectivity and authentication issues, see [Troubleshoot Tiger Cloud integrations](/integrate/troubleshooting/index.md).

## Next steps

[Find your connection details](/integrate/find-connection-details/index.md)

[Locate the host, port, database, user, and password for your service or database.](/integrate/find-connection-details/index.md)

[Integrate Tableau with Tiger Data](/integrate/bi-vizualization/tableau/index.md)

[Connect Tableau to your service or database to build dashboards.](/integrate/bi-vizualization/tableau/index.md)
