ssas-to-databricks

Parse SSAS tabular models and convert them to Databricks Delta tables, Metric Views, and RLS.

4|1|Updated May 22, 2026
One-click install
npx skills add https://github.com/ThomazRossito/ai-data-agents --skill ssas-to-databricks-thomazrossito
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ssas-to-databricks
Source: https://github.com/ThomazRossito/ai-data-agents/tree/main/plugins/ai-data-agents/skills/ssas-to-databricks
Command: npx skills add https://github.com/ThomazRossito/ai-data-agents --skill ssas-to-databricks-thomazrossito

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Migrating SSAS tabular models (.bim/TMSL JSON and .vpax files) to Databricks is error-prone: huge model dumps overflow context, hand-written SQL drifts from the physical sourceColumn names, and complex DAX measures get silently mis-converted. This Skill provides a deterministic, buffer-safe playbook that inventories the model, classifies complexity, requires human approval of a migration SPEC, and generates correct-by-construction DDL, Metric Views, RLS scaffolds, and reconciliation queries. ## Core Features & Use Cases - Buffer-safe parsing: Compact Python parsers extract dataSources, tables, columns, DAX measures, relationships, roles/RLS, perspectives, calculation groups, and KPIs from .bim/.vpax into sub-1MB JSON indexes without flooding context. - Deterministic generation: A single versioned generator script (scripts/ssas_generate.py) emits Gold-layer CREATE TABLE DDL, Metric Views for simple measures, flagged complex-measure reports, RLS scaffolds, and source-vs-target reconciliation SQL, validated by three built-in gates. - Approval-gated workflow: A mandatory SPEC document and human approval gate separates analysis from code generation, with a sanity self-review checklist before reporting completion. - Use Case: Given an SSAS model export for a sales cube, produce an inventory and complexity classification, get the migration proposal approved, then generate Unity Catalog tables, Metric Views, row filters, and reconciliation queries for Databricks. ## Quick Start Ask the agent to parse the .bim and .vpax files in your input directory and produce a migration proposal for Databricks before generating any code.

Frequently Asked Questions about ssas-to-databricks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate an SSAS tabular model to Databricks?▼

Follow the six-phase flow: parse the .bim/.vpax files with the compact Python parser, inventory and classify model objects by complexity, map them to Delta tables, Metric Views, and UC row filters, then get the SPEC approved before running the deterministic generator script.

How to convert DAX measures to SQL in Databricks?▼

Simple measures like SUM, COUNT, and DIVIDE are auto-converted into Metric Views by the generator. Complex DAX using CALCULATE, variables, or time-intelligence is flagged in a report for manual case-by-case rewriting rather than blind conversion.

Can I read a .bim or .vpax file directly for migration analysis?▼

No, reading the entire file overflows context since .vpax ColumnsSegments can exceed 100k lines. Parse them with the provided Python script, which produces compact ssas_index.json and vpax_summary.json files under 1MB each.

Does the migration handle SSAS row-level security roles?▼

Yes, roles and their DAX filter expressions are extracted during parsing and mapped to Unity Catalog row filters and column masks. The generator emits an RLS scaffold SQL file, but the USERNAME() to current_user() mapping requires manual review.

Why does hand-written DDL fail when migrating SSAS models?▼

Hand-written SQL tends to use display names with spaces instead of physical sourceColumn names and misses backticks, causing column-not-found errors in Databricks. The versioned generator script avoids this drift and enforces three validation gates.

What are the limitations of automated SSAS to Databricks conversion?▼

Calculation groups, time-intelligence, KPIs, perspectives, translations, and complex bidirectional RLS have no direct equivalent and are flagged for manual redesign. Legacy aggregated measures may also not reconcile 1:1 against atomic-grain Delta data.