modellerUpdated 2026-05-21

Import from a Semantic Layer Tool

What this covers

Tessallite can import semantic model definitions from three external platforms: dbt (MetricFlow v1.7+), AtScale (SML), and Cube.dev. The importer reads your existing YAML definitions and produces a Tessallite model with dimensions, measures, hierarchies, and a default persona. This article covers what each importer supports, what gets converted, and what needs manual setup after import.

Supported formats

PlatformInput formatKey construct
dbt MetricFlowYAML with semantic_models: and metrics: keysSemantic models, metrics, saved queries
AtScale SMLMulti-file YAML project (models, datasets, dimensions, metrics, calculations)SML object types with object_type: key
Cube.devYAML with cubes: keyCubes with measures, dimensions, joins

What gets imported

All three importers produce the same Tessallite bundle format. The table below shows what transfers and what needs manual attention.

ConceptdbtAtScaleCube.dev
TablesFrom model refFrom datasetsFrom sql_table
ColumnsFrom measure/dimension exprFrom dataset columnsFrom measure/dimension sql
MeasuresMapped (sum, count, count_distinct, average, min, max, median, percentile)Mapped (20 calculation methods including sum, count, average, min, max, median, percentile, stddev)Mapped (count, count_distinct, sum, avg, min, max, number, running_total)
Dimensionscategorical and timestandard, time, degeneratestring, number, time, boolean, geo
HierarchiesAuto-generated from time dimensionsFrom dimension hierarchy/level definitionsExplicit + auto-generated from time dimensions
JoinsWarning only (foreign entities signal relationships)From model relationshipsFrom cube join definitions
Format stringsNot availablePreserved from metric format fieldPreserved from measure format field
PersonasDefault "Everyone" createdDefault "Everyone" createdDefault "Everyone" created; private cubes skipped

What needs manual setup after import

Every import produces a warnings list that tells you exactly what needs attention. Common post-import tasks:

  1. Connections — The imported model has no database connections. Bind each table to a Tessallite connection pointing to your database.
  2. Joins — dbt imports produce join warnings from foreign entities. AtScale and Cube imports map joins automatically, but review them for correctness.
  3. Calculated measures — dbt derived/ratio/cumulative metrics, AtScale MDX calculations, and Cube rolling_window/multi_stage measures all produce warnings. Create equivalent calculated measures in Tessallite.
  4. Row security — AtScale row_security objects produce a security warning. Configure personas and row-level security rules in Tessallite.
  5. Deploy — Save and deploy the model to make it available via XMLA and JDBC.

How to import

Via the API

POST /api/v1/projects/{project_id}/import/{format}

Where {format} is dbt, atscale, or cube. Send the YAML file (or a zip of the project directory for multi-file formats) as a file upload.

The response includes:

Via the UI

  1. Open your project in the Explorer.
  2. Click Import next to Add Model.
  3. Select the import format (dbt, AtScale, or Cube).
  4. Upload your YAML file or project zip.
  5. Review the parsed models and warnings.
  6. Click Import to create the model.

Tips

Import from a data catalog

Besides YAML files, Tessallite can pull table and column metadata straight from a running data catalogDataHub, OpenMetadata, or Alation — and build a starter model from it. Use this when your tables are already catalogued and you would rather not hand-write a model from scratch. This is a live API import, not a file upload: Tessallite calls the catalog's API at import time and reads what it returns.

How it works. You give Tessallite the catalog's API URL and an API token, and optionally a dataset filter to limit which tables come across. Tessallite reads the catalogued tables and columns and creates a model where numeric columns become measures and the rest become dimensions. The model is created undeployed and bound to a placeholder connection — you point it at the real source database and review the model before you deploy and query.

To run it:

  1. Open the Model Builder and choose Import.
  2. Pick Data catalog (DataHub / OpenMetadata / Alation) as the format.
  3. Choose the Catalog system, then paste the Catalog API URL and an API token.
  4. Optionally set a Dataset filter to import only datasets whose name matches a pattern. Leave it blank to import everything the catalog returns.
  5. Optionally set a Model name, then run the import. Tessallite reports how many models, tables, measures, and dimensions it created, plus any warnings.

What needs your attention afterwards:

Tip: give the API token a read-only catalog role. Tessallite only reads metadata; it never needs write access to your catalog.

Related