Celiq
v0.12Open app โ†—
Docs/Integrations/Import from Looker or dbt

Import from Looker or dbt

Bring your existing LookML explores, dbt models, or SQL DDL into Celiq as governed reveals and nodes.

WeaverLuminaryUpdated Jun 2026 ยท 8 min read
โœฆ
In this section
Part of Celiq's semantic layer platform. Connect your warehouse, model your data once, query it everywhere.
๐Ÿ’ก
Tip
What it is: A 3-step wizard that turns your existing LookML, dbt, or SQL definitions into Celiq nodes and reveals.
Why use it: Skip the cold-start. Paste what you already have instead of rebuilding your model from scratch.
Where to find it: Go to /import (also reachable via the Import pill in the floating nav).
Who can use it: Weavers and Luminaries โ€” anyone who can edit the semantic model.

If you are moving to Celiq from Looker or dbt โ€” or just have a pile of SQL DDL โ€” the migration importer gets you to a working semantic layer in minutes. Paste your existing definitions, Celiq converts them into a Celiq domain (nodes plus reveals), and you review a preview before anything is saved. Your dimension and measure definitions come along for the ride, so you keep the work you have already done while gaining Celiq's governed metrics and AI-powered analytics on top.

Supported import formats

SourceWhat you pasteWhat you get
LookML / LookerAn explore plus its view definitionsA Celiq domain โ€” each LookML view becomes a node, each explore becomes a reveal, dimensions and measures preserved
dbtA schema.yml for your modelsOne Celiq node per dbt model, with column descriptions and data-quality hints from your tests
SQL / DDLCREATE TABLE or SELECT statementsA basic Celiq node per table, with columns mapped to dimensions

Each format runs through the same wizard and produces a reviewable preview before saving.

Start an import

You can reach the importer two ways:

  • Navigate directly to the /import page.
  • Use the Import pill in the floating nav.

The wizard has three steps.

1

Choose a source

Pick where your definitions are coming from: LookML / Looker, dbt, or SQL / DDL.

2

Paste your content

Paste the relevant text into the textarea (see the export instructions below) and click Parse. Celiq parses the input and converts it into a Celiq domain YAML. Nothing is saved at this point.

3

Review and import

Celiq shows a preview of everything it will create โ€” the nodes, the reveals, and any warnings. Inspect it, optionally click View full YAML to see the generated domain, then click Import to Celiq to save. After import, you get an Open in Forge button (navigates to /forge/<domain>).

How to export from each tool

From Looker

The importer reads a LookML explore along with the views it references.

  1. In your LookML project, open the model file (*.model.lkml) that contains the explore you want to migrate.
  2. Copy the explore: { ... } block.
  3. Copy the view: { ... } blocks for every view that the explore joins in.
  4. Paste all of it together into the importer textarea.

Celiq extracts the explore name, view names, dimensions, measures, and joins. Each view becomes a node; the explore (with its measures and joins) becomes a reveal.

From dbt

The importer reads a dbt schema.yml (sometimes named models.yml or properties.yml).

  1. Find the schema.yml that documents the models you want to bring over โ€” typically alongside the models in your models/ directory.
  2. Copy its contents.
  3. Paste it into the importer textarea.

Celiq reads each model's name, columns, and descriptions. Column descriptions become node field descriptions, and dbt tests such as unique and not_null are turned into Celiq data-quality hints.

From SQL / DDL

Paste one or more CREATE TABLE statements (or representative SELECT statements). Celiq extracts the table name, columns, and types and generates a basic node for each table. This is the right path when you do not have a semantic layer yet but do have your warehouse schema.

What gets imported โ€” and what doesn't

Imported:
  • View/model/table names โ†’ Celiq nodes
  • Dimensions and their types
  • Measures and their aggregations (from LookML)
  • Column and field descriptions (from dbt)
  • Joins defined on a LookML explore โ†’ reveal joins
  • dbt unique / not_null tests โ†’ data-quality hints
Not imported (and may need manual work afterward):
  • Complex LookML conditionals, sql_always_where, Liquid templating, and derived tables โ€” these may surface as warnings rather than being converted automatically
  • Looker dashboards, Looks, and LookML dashboards (the importer covers the model, not the visualisations)
  • dbt SQL transformations themselves โ€” only the schema metadata is read, not the model logic
  • Row-level security โ€” set up Data Keys after import

Review the preview before saving

The preview step is mandatory: nothing is saved until you click Import to Celiq. This is your chance to catch anything the conversion got wrong.

A typical preview looks like this:

Preview: 3 nodes, 8 reveals will be created

Nodes:
โœ“ orders (12 dimensions, 6 measures)
โœ“ customers (8 dimensions, 4 measures)
โš ๏ธ order_items โ€” 2 warnings (review before importing)

Reveals:
โœ“ Revenue Analysis (from orders explore)
โœ“ Customer Analysis (from customers explore)
  • A โœ“ means the item converted cleanly.
  • A โš ๏ธ flags warnings โ€” for example, a LookML measure that uses an unsupported construct, or a column whose type could not be inferred. Items with warnings are still imported, but you should open the generated node in Forge afterward and confirm the definition is correct.

Click View full YAML to see exactly what will be created. If something looks off, click Back, adjust your source, and parse again.

๐Ÿ“
Note

The conversion is AI-assisted, so treat the result as a strong starting point rather than a perfect 1:1 translation. Always validate the generated nodes in Forge and run a sample query before relying on the metrics.

Behind the scenes

The importer is backed by four endpoints under /api/import (all require an authenticated session in the active workspace):

EndpointWhat it does
POST /api/import/lookerParses LookML and returns a preview (no save)
POST /api/import/dbtParses a dbt schema.yml and returns a preview (no save)
POST /api/import/sqlParses SQL / DDL and returns a preview (no save)
POST /api/import/saveSaves a previously previewed import โ€” body: { yaml, source_type, project_id? }

The parse endpoints return { yaml, source_type, preview: { nodes, reveals, warnings } }. Saving uses Celiq's standard domain-creation path (upserts nodes and the domains row), so an imported domain behaves identically to one you build by hand.

Known limitations

  • Complex LookML is best-effort. Conditional logic, Liquid templating, extends, and derived tables may be dropped or flagged as warnings. Review the preview carefully.
  • Joins must be present in what you paste. If a LookML explore joins a view you did not include, that join cannot be reconstructed.
  • Conversion is non-deterministic. Because conversion is AI-assisted, re-parsing the same input twice can produce slightly different labels or descriptions. The structure stays stable; cosmetic wording may vary.
  • No incremental sync. The importer is a one-time conversion, not a live connection to Looker or dbt. Future changes in your source tool are not pulled in automatically โ€” re-import or edit in Forge.
GoalGuide
Edit the imported modelForge
Understand nodes and revealsKey concepts
Write CML by handCML reference
Secure imported dataData Keys