Import from Looker or dbt
Bring your existing LookML explores, dbt models, or SQL DDL into Celiq as governed reveals and nodes.
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
| Source | What you paste | What you get |
|---|---|---|
| LookML / Looker | An explore plus its view definitions | A Celiq domain โ each LookML view becomes a node, each explore becomes a reveal, dimensions and measures preserved |
| dbt | A schema.yml for your models | One Celiq node per dbt model, with column descriptions and data-quality hints from your tests |
| SQL / DDL | CREATE TABLE or SELECT statements | A 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
/importpage. - Use the Import pill in the floating nav.
The wizard has three steps.
Choose a source
Pick where your definitions are coming from: LookML / Looker, dbt, or SQL / DDL.
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.
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.
- In your LookML project, open the model file (
*.model.lkml) that contains the explore you want to migrate. - Copy the
explore: { ... }block. - Copy the
view: { ... }blocks for every view that the explore joins in. - 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).
- Find the
schema.ymlthat documents the models you want to bring over โ typically alongside the models in yourmodels/directory. - Copy its contents.
- 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_nulltests โ data-quality hints
- 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.
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):
| Endpoint | What it does |
|---|---|
POST /api/import/looker | Parses LookML and returns a preview (no save) |
POST /api/import/dbt | Parses a dbt schema.yml and returns a preview (no save) |
POST /api/import/sql | Parses SQL / DDL and returns a preview (no save) |
POST /api/import/save | Saves 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.
Related
| Goal | Guide |
|---|---|
| Edit the imported model | Forge |
| Understand nodes and reveals | Key concepts |
| Write CML by hand | CML reference |
| Secure imported data | Data Keys |