Skip to main content

Documentation index: llms.txt. This page is also available as markdown: append .md to this URL or send Accept: text/markdown.

Looker

Integrate Looker with the Catalog to sync dashboards, looks, and metadata.

After your Looker content syncs to Catalog, use the Catalog browser extension in Looker while viewing dashboards for descriptions, ownership, and related Catalog features.

Requirements

Warehouse Required

A Warehouse type integration must already be configured to complete the first ingestion of this integration.

To get things started with Looker in the Catalog, you will need:

  • Credentials of a Looker admin
  • An admin Looker API key. Follow the steps below "Create a Looker API Key"
  • Read-only access to your Looker Git repository. Follow the steps below "Provide access to your LookML"

Related pages:

What Catalog Extracts From Looker

Extraction reads two sources: the Looker API, and the LookML code in your Git repository.

From the Looker API:

  • Dashboards, with their tiles and filters
  • Looks, with the explore each one queries
  • Explores, with their dimensions, measures, and joins
  • LookML models, with the warehouse connections each model is allowed to use
  • Folders, users, groups, and roles
  • Warehouse connections and projects
  • 30 days of content view history, which feeds dashboard popularity and frequent users

From your LookML repository:

  • View files, which resolve each explore to the warehouse tables and columns behind it

Looker objects appear in Catalog under Catalog's own names:

In LookerIn Catalog
DashboardDashboard
LookTile
ExploreViz model
Dimension or measure of an exploreField

Catalog then computes lineage across those assets:

  • Warehouse table to explore, and on to the looks and dashboards built on it
  • Warehouse column to explore field, and on to the dashboards that display it

Lineage stops wherever the warehouse side is missing: a table an Explore reads is only linked when your Warehouse integration ingests the database it lives in.

Catalog Managed

Enter your credentials directly in the Catalog App integration settings. You need:

  • base-url: for example, http://looker.catalog.com
  • client-id: API Key Client ID
  • client-secret: API Key Client Secret

Give Catalog read-only access to your Looker Git repository. See how to provide access to your LookML code.

For your first sync, it can take up to 48 hours before ingestion completes. Catalog notifies you when it finishes.

If you prefer not to share credentials with Catalog, continue to Client Managed.

Client Managed

Doing a One Shot Extract

For your trial, you can simply give us a one shot view of your BI tool. Run the extraction package below on a machine of your own, then send us the files it writes.

Running the Extraction Package

Install the PyPI Package

pip install castor-extractor[looker]

For further details on the extractor PyPI package, see the castor-extractor PyPI page.

Run the PyPI Package

Once the package has been installed, you should be able to run the following command in your terminal:

castor-extract-looker [arguments]

The script will run and display logs as following:

INFO - Extracting users from Looker API
INFO - Fetched page 1 / 500 results
INFO - Wrote output file: /tmp/catalog/1649079699-users.json
INFO - Extracting folders from Looker API
INFO - Wrote output file: /tmp/catalog/1649079699-folders.json
INFO - Extracting looks from Looker API
INFO - Wrote output file: /tmp/catalog/1649079699-looks.json
INFO - Extracting dashboards from Looker API
INFO - Wrote output file: /tmp/catalog/1649079699-dashboards.json
INFO - Extracting lookml models from Looker API
INFO - Wrote output file: /tmp/catalog/1649079699-lookml_models.json
INFO - Extracting explores from Looker API
INFO - Explore ecommerce/orders fetched
INFO - Wrote output file: /tmp/catalog/1649079699-explores.json

...

INFO - Wrote output file: /tmp/catalog/1649079699-projects.json
INFO - Wrote output file: /tmp/catalog/1649079699-summary.json

Credentials

  • -c, --client-id: API Key Client ID (mandatory)
  • -s, --client-secret: API Key Client Secret (mandatory)

Other Arguments

  • -b, --base-url: Looker base URL (mandatory)
  • -o, --output: Target folder to store the extracted files (mandatory)
  • -t, --timeout: Timeout (in s) parameter for Looker API
  • --log-to-stdout: Will write all log outputs to stdout instead of stderr
  • -S, --strict: fails the extraction on the first item-level error, such as a look whose query no longer exists or an explore that no longer compiles. Without it, that item is skipped and the extraction carries on

How Looks and Dashboards Are Fetched

  • --search-per-folder: fetches looks and dashboards folder by folder, one call per folder run in parallel, instead of one paginated search over the whole instance

Use --search-per-folder when the instance-wide search returns fewer looks or dashboards than you expect, which happens on instances holding tens of thousands of them.

Tuning Concurrency

  • --thread-pool-size: number of parallel API calls, between 1 and 200, defaults to 20

The thread pool drives the per-folder search above, the call that resolves each look to its explore, and the explore fetches. Lower it, to 5 for example, when extraction puts your Looker instance under more load than you want: fetching an explore compiles its LookML model server-side, so that concurrency lands on your own Looker infrastructure. Raising it past 10 gains nothing on the explore fetches, which stay within the connection pool of the Looker SDK.

Run any extractor command with --help to print the full argument list.

Scheduling and Push to Catalog

When moving out of trial, you'll want to refresh your Looker content in the Catalog. Here is how to do it:

The Catalog team will provide you with:

  1. Catalog Identifier (an id for us to match your Looker files with your Catalog instance)
  2. Catalog Token An API Token

You can then use the castor-upload command:

castor-upload [arguments]

Arguments

  • -k, --token: Token provided by Catalog
  • -s, --source_id: account id provided by Catalog
  • -t, --file_type: source type to upload. Currently supported are 0

Target Files

To specify the target files, provide one of the following:

  • -f, --file_path: to push a single file

or

  • -d, --directory_path: to push several files at once (*)
Directory Contents

(*) The tool will upload all files included in the given directory.

Make sure it contains only the extracted files before pushing.

Then you'll have to schedule the script run and the push to the Catalog. Use your preferred scheduler to create this job.

Troubleshooting

These scenarios apply to core Looker onboarding and first ingestion.

Lineage Drops After Database or Connection Changes

When Explores resolve to a warehouse database your Warehouse integration does not ingest, lineage that depended on matching those tables can disappear after a successful Looker sync. That often follows a switch between development and production databases in LookML or a connection change. For symptoms, prevention, recovery steps, and verification, see Lineage troubleshooting for Looker database and connection mismatches.

First Ingestion Runs Longer Than a Few Hours

Warehouse integrations must finish before visualization ingestion can complete. Large LookML repositories extend parsing time.

Resolution:

  1. Confirm the Warehouse integration listed under Requirements is healthy in Settings > Integrations.
  2. Verify read-only Git access to LookML still works from Catalog's perspective (SSH keys, tokens, branch protections).
  3. If ingestion stays unfinished beyond 48 hours while both prerequisites are green, contact Coalesce Support.

Looker Slows Down While the Extraction Runs

Client-managed extraction calls the Looker API in parallel, and fetching an explore compiles its LookML model on your Looker instance. On a small instance, that concurrency is felt by everyone else using Looker at the same time.

Resolution:

  1. Lower --thread-pool-size (default 20) until the load is acceptable, 5 for example.
  2. Schedule the extraction outside your Looker peak hours.

Looker Studio Versus LookML-Backed Looker Instances

Looker Studio connections follow Google's OAuth and connector scopes. Classic Looker uses API keys and Git-backed LookML. Mixing setup steps between products causes auth errors.

Resolution:

  1. Follow the integration path that matches your product (Looker with LookML vs Looker Studio OAuth apps).
  2. After changing Google Cloud scopes for Looker Studio, wait for the provider cache to refresh before re-testing ingestion.

Cannot Validate API Credentials

Wrong base URL format or revoked secrets surface as login failures in extractor logs.

Resolution:

  1. Confirm base-url matches Looker's documented pattern (https://company.looker.com) without typos.
  2. Rotate API keys in Looker admin, update Catalog credentials immediately, and revoke old secrets.

Missing Dashboards or Explores After a Partial Git Migration

Catalog indexes what appears in the Looker API plus accessible LookML.

Resolution:

  1. Confirm the Git branch Catalog reads matches production LookML.
  2. Run a fresh extraction after merges that rename explores or move files between folders.

Browser Extension Panels Empty Inside Looker

The Chrome extension depends on Catalog indexing your Looker assets first.

Resolution:

  1. Finish at least one successful Looker ingestion before expecting extension tiles.
  2. See Catalog browser extension in Looker for install steps.