Skip to main content

Migration

The migration route rebuilds a legacy BI model — Qlik, Power BI and similar — on your data platform. The output tables keep their exact names, so your existing BI app can reconnect. The rebuilt numbers are checked against the legacy app's numbers.

Prerequisites
  • The legacy model decoded with ekai-decode (see step 1)
  • The legacy data loaded into your warehouse, and a connection to it

How It Works​

TabWhat happens
Model DetailsName, requirements, connection, the uploaded bundle
Business RequirementsReview the imported requirements — keep, review or change
AI ModelingPlans the target model and its lineage from the legacy one
Data TransformationBuilds the tables with dbt, under their exact legacy names
ValidationCompares the rebuilt numbers with the legacy app
Code SyncDownload or sync the artifacts

1. Decode the Legacy Model​

ekai-decode is a separate command-line tool. Export your legacy BI app to a folder with the BI tool's own CLI, then run ekai-decode on that folder. It does two things:

  • Writes a bundle (a zip) describing the legacy model: requirements, the technical document, tables, lineage and the load script.
  • Lists the tables the legacy app reads, so its data can be loaded into your warehouse as the migration's input tables.
From a Qlik app to ekai inputs with ekai-decode

2. Start a Migration​

Select Migrate in the sidebar, then New Migration.

Migrate list with the New Migration button

The wizard walks you through five steps:

  1. Model — name the model and describe what it is for
  2. Choose source — the warehouse holding the legacy data
  3. Connection details — test the connection, then save
  4. Select tables — the input tables to use
  5. Profiling — runs in the background; then click Go to migration
Slide 1
Slide 2
Slide 3

3. Upload the Bundle​

On Model Details, upload the ekai-decode zip under Agent Context Files. ekai imports it and summarises what it carried over.

Bundle uploaded on Model Details
Add reconciliation figures

Reconciliation figures are numbers from the legacy app — totals, counts, averages for given periods. ekai uses them to prove that the rebuilt model gives the same numbers. Upload them as a file in any layout, or paste them in the chat later.


4. Review the Requirements​

Business Requirements opens with a summary of the import: what was carried over, whether the input tables are in your warehouse, and any alerts. Then choose:

OptionWhat happens
Keep it as isThe requirements go to AI Modeling unchanged
Review the documentsAsk about anything in them first
Change somethingTell the agent what to change or add
Business Requirements opening summary

Changes are marked (edited in ekai) or (added in ekai) in the documents. After each change, the agent asks if everything looks good before moving on.


5. AI Modeling​

AI Modeling turns the legacy model into a build plan and a lineage diagram — every input, intermediate and output table, as the legacy load script builds them. It also defines the metrics, glossary and validation rules.

Slide 1
Slide 2

6. Data Transformation​

The dbt agent builds the tables in your warehouse, one model per step of the plan. Output tables and columns keep their exact legacy names — including names with spaces.

Data Transformation build

7. Validation​

The Validation tab shows every check run on the built tables — the validation rules and each reconciliation figure — with its result. Each check that doesn't pass is classified:

ResultMeaning
Model defectThe build differs from the legacy model. ekai fixes it and re-checks
Source data qualityThe input data itself is wrong. Reported to you, never hidden
Not runSomething is missing — for example, reconciliation figures
Validation tab

Once validation is clean, Publish and Ask Agent work the same as for any other semantic model.