Qlik to Power BI Migration

July 16, 2026 ยท View on GitHub

Qlik Sense Arrow Power BI

Python Version License Openability

Migrate Qlik Sense applications to Power BI .pbip projects with one command, while keeping the output structured, validated, and easy to inspect.

Migration Flow

flowchart LR
  A[Qlik App\n.qvf / .json / .qvw] --> B[Extraction\nqlik_export/]
  B --> C[Conversion\nDAX + Power Query M + TMDL]
  C --> D[Validation\nSchema + relationship + Desktop openability]
  D --> E[Power BI Project\n.pbip + SemanticModel + Report]
  E --> F[Comparison & Lineage\nHTML reports]

Architecture

flowchart TB
  subgraph Qlik
    A[Qlik App\n.qvf / .json / .qvw]
    B[Extraction Layer\nqlik_export/]
  end

  subgraph PowerBI
    C[Conversion Layer\nDAX + M + TMDL]
    D[Validation Layer\nDesktop openability + QA]
    E[Generated Project\n.pbip + Report + SemanticModel]
  end

  subgraph Review
    F[Comparison Report]
    G[Data Prep Lineage]
    H[End-to-End Lineage]
  end

  A --> B --> C --> D --> E
  E --> F
  E --> G
  E --> H

At A Glance

  • ๐Ÿงญ Input: .qvf, .json, or .qvw with converted siblings
  • ๐Ÿงฑ Output: Power BI .pbip projects with Semantic Model and Report folders
  • ๐Ÿ” Workflow: extraction โ†’ conversion โ†’ validation โ†’ Desktop openability checks
  • ๐Ÿงช Quality gates: schema validation, DAX checks, M checks, relationship checks, and post-generation validation
  • ๐Ÿ“š Parity-friendly docs: clear CLI entry points, report artifacts, and lineage sections

Who It's For

  • ๐Ÿงช Migration engineers who need reproducible conversion and validation runs
  • ๐Ÿ“Š BI developers who want the generated project to stay readable in Power BI Desktop
  • ๐Ÿงญ Reviewers who need comparison, lineage, and openability evidence in one place
  • โš™๏ธ Automation users who want a CLI-first workflow for batch runs and CI

Input / Output

StageWhat It MeansArtifact
InputQlik source app or export.qvf, .json, .qvw
ExtractionParse Qlik objects and scriptqlik_export/ JSON files
ConversionBuild model and report layersDAX, Power Query M, TMDL
ValidationCheck structure and openabilityQA and Desktop gate results
OutputPower BI project package.pbip, .SemanticModel, .Report
ReviewInspect what changed and whyComparison and lineage HTML reports

Why This Project

This repository is designed for repeatable Qlik-to-Power-BI migration work, with a presentation style closer to a polished product README than a raw tool dump.

  • โœจ Clear first-run path for new users
  • ๐Ÿ› ๏ธ Direct CLI usage for automation and batch migration
  • ๐Ÿ“ˆ Report artifacts that make migration quality visible
  • ๐Ÿงฉ Lineage, comparison, and validation outputs that support review workflows

Installation

Create a virtual environment and install the development dependencies:

python -m venv venv
venv\Scripts\activate
pip install -e ".[dev]"

Quick Start

1. Migrate one app

python migrate.py app.qvf

2. Migrate a folder

python migrate.py ./exports

3. Send output somewhere else

python migrate.py app.qvf --out ./output

Input routing, binary model discovery, many-to-many bridge generation, validation, repair, and Power BI Desktop openability checks are automatic.

Core Capabilities

  • ๐Ÿง  Qlik expressions to DAX conversion
  • ๐Ÿ”„ Qlik load script to Power Query M conversion
  • ๐Ÿงฑ TMDL semantic model generation
  • ๐Ÿ–ผ๏ธ Visual mapping to PBIR report layout
  • ๐Ÿ›ก๏ธ Validation, QA, and deployment workflows
  • ๐Ÿ“‰ Comparison and lineage reports for review and cutover

Output

A successful run generates a Power BI project:

artifacts/powerbi_projects/<AppName>/
  <AppName>.pbip
  <AppName>.SemanticModel/
  <AppName>.Report/

Open the .pbip directly in Power BI Desktop (Developer Mode).

Reports And Lineage

  • ๐Ÿ“Š comparison_report.html โ€” side-by-side migration comparison
  • ๐Ÿงฌ End-to-end lineage โ€” source field โ†’ M โ†’ DAX โ†’ TMDL โ†’ visual
  • ๐Ÿงช Data preparation lineage โ€” Qlik script flow and Power Query M steps
  • ๐Ÿงฐ Desktop openability checks โ€” generated projects are tested against Power BI Desktop behavior

Documentation

Start with the documentation hub:

Most used guides:

Useful lineage and validation references:

Testing

The repository includes more than 2,000 automated tests covering extraction, conversion, generation, validation, and Power BI Desktop openability.

# Run tests
python -m pytest tests/ -q

# Focused CLI tests
python -m pytest tests/test_new_cli_flags.py tests/test_simple_mode.py -q

Project Shape

  • migrate.py โ€” main migration CLI
  • qlik_export/ โ€” extraction and conversion layer
  • powerbi_import/ โ€” Power BI generation and validation layer
  • artifacts/ โ€” generated projects, reports, and run outputs
  • docs/ โ€” guides, parity notes, and roadmap material

License

MIT