cancel
Showing results for 
Search instead for 
Did you mean: 
Technical Blog
Explore in-depth articles, tutorials, and insights on data analytics and machine learning in the Databricks Technical Blog. Stay updated on industry trends, best practices, and advanced techniques.
cancel
Showing results for 
Search instead for 
Did you mean: 
pedrozanlorensi
Databricks Employee
Databricks Employee

This blog post will resonate if you/your company fit into any of the following profiles:

  • Your data models are stuck into specific dashboards that are maintained by few specialized people.
  • You don't have control over your business metrics because the calculations are locked into the specific dashboards or dashboard files that are not version controlled or stored into an enterprise repository or catalog.
  • Your Data Engineering team & Analysts team try to figure out where calculations should be made, and your company ultimately doesn't know where transformations occur.
  • You studied Entity Relationship Diagrams, Data Modeling, Governance, and have always aspired to have it implemented in your organization, but suffered from a great number of disparate tools and processes with a lack of centralization to actually have it in place. 
  • You are tired of paying license costs for your visualization tools, and your business users barely use the dashboards your team develops due to lack of interactivity, lack of centralization, and incapability of deep diving on specific measures in a more dynamic way.
  • You can't make AI “talk business” because it simply doesn't have access to your data models. 

You are a strong fit for this discussion if your data is already accessible through Databricks, but you use an External BI tool for visualization

A quick primer: Unity Catalog and Business Semantics

Unity Catalog is the central repository for your data, where you govern, monitor, and share it across your consumers. It governs your tables, views, functions, models, files (through Volumes), MCP servers, and Business Semantics too.

Databricks Unity CatalogDatabricks Unity Catalog

 Business Semantics has two integrated components:

  • Agent metadata: helps AI tools interpret your data in business terms, such as synonyms, definitions, and display names.
  • Metric views: a centralized way to define your data models: how tables should be joined, which fields matter for business analysis, how measures are calculated, common aggregations and filters, giving your end-users a trusted set of assets to pull from.

Metric Views in the Unity CatalogMetric Views in the Unity Catalog

 Why this migration matters

Many organizations want to reduce the fragmentation between their data platform and their BI layer. Migrating dashboards into Databricks brings the semantic logic and the dashboard experience closer to the governed data foundation. In the Genie Code import flow, the generated dashboard is connected to metric views, and those metric views can later be promoted to Unity Catalog so they become reusable across dashboards, Genie Agents, and notebooks, with governance features such as access controls, lineage, and discoverability.

That matters because a migration isn't only about copying charts. It's about preserving business logic in a reusable, governed form.

A practical migration playbook 

Here, we detail a practical migration framework for Power BI and Tableau reports, as they are currently supported out of the box for an automated migration. The table below outlines the shape of the journey: 

Phase

Steps

Plan

(1) Pilot 

(2) Guardrails

Prepare

(3) Data prep & Exporting dashboards

Import & refine

(4) Import with Genie Code 

(5) Iterate with screenshots

Productionize

(6) Know the coverage 

(7) Promote to Unity Catalog 

(8) Validate 

(9) Define the right permissions model for your objects and implement policies for granular access control

(10) Productionize and Go Live

1. Start with a representative pilot

Choose a representative subset of dashboards that varies in complexity, so you learn where the process is smooth and where follow-up work is needed.

A good pilot typically includes:

  • A dashboard with straightforward measures and filters
  • A dashboard that is widely used by the business
  • A dashboard with a more complex visual layout or shared data sources
  • A dashboard with heavier calculated logic

The goal at this stage isn't scale. It is to understand migration patterns early, build confidence, and identify which dashboards will need further refinement.

2. Set guardrails for security, governance, and naming

Before preparing files or prompting Genie Code, align on the target operating model. This matters most in larger migrations, where different teams might otherwise create dashboards, metric views, and Genie assets with inconsistent permissions and naming.

Set guardrails in four areas first:

  • Inventory and rationalization: Catalog your dashboards, reports, shared models, extracts, and dependencies, so you can decide what to migrate, what to consolidate into a single target model, and what to retire.
  • Security and governance: Decide which UC catalogs and schemas will hold migrated assets, how PII and sensitive fields should be handled, and which permissions apply to dashboards, metric views, and supporting data assets.
  • Credential model: Decide whether access and refresh behavior should rely on shared credentials, individual user access, or a phased mix during migration; and also whether this will be different during migration for testing and at production go live. 
  • Naming conventions: Define standard patterns for your objects, and follow your existing conventions. Schemas, metric views, dashboards, and Genie spaces, should all have a cohesive nomenclature. This way, the assets that are created as a part of the conversion process are easy to discover and operate at scale.

This is also where teams usually spot duplicate KPI logic, near-identical dashboards that can be merged, and shared semantic layers that should be migrated once and reused broadly.

A practical tip: Encode these conventions directly into your Genie Code instructions. You can tell Genie Code which catalog and schema to use, how to name assets, and when to prefer existing governed resources over creating new ones.

3. Export your legacy dashboards

Start by selecting reports that query from the Databricks Unity Catalog. If your Power BI/Tableau reports do not query from it today, can you make it so that they can query from Databricks? 

Here are some instructions on how you can connect to the data source and make it available/visible through Unity Catalog. Pick from one or more of the following connectivity options based on your source:

If your data is…

Use

What it does

In a source system, and you want to ingest this to the lakehouse

Lakeflow Connect

Ingests from enterprise apps, databases, cloud storage, message buses, and local files into Unity Catalog.

Must stay where it lives

Lakehouse Federation

Makes it visible from Unity Catalog without moving it. Watch latency on large inputs as queries still run against the source.

Just static files

Volumes

Makes the files visible from Unity Catalog.

Once your data is reachable, export your dashboards in two quick steps.

Step 1: Export from your BI tool

From

Export as

Reference

Tableau

.twb, .twbx, .tds, or .tdsx

Check out the Tableau documentation for more information.

Power BI

.pbit

Check out this documentation to learn more about this format. Make sure that you export the .pbit from the reports that were used to generate your semantic model in the first place from Power BI Desktop. 

Step 2: Save your exports to a Volume in Unity Catalog

Move the exported files to a Unity Catalog volume. Genie Code can import directly from there, and it's required for any file larger than 100 MB. 

Note that if your report file has less than 100 MB, you can directly attach it to the Genie Code chat instead of uploading it to a Volume, or use the Import dashboard from file approach outlined in the next section. 

Upload your dashboard files to a Volume in the Unity CatalogUpload your dashboard files to a Volume in the Unity Catalog

4. Import the dashboard with Genie Code

Pre-requisites: Please validate these requirements before proceeding with the migration.

There are two ways to start the import:

  • From the Dashboards page: click Create and choose Import dashboard from file.

Import dashboard from fileImport dashboard from file 

  • From a draft dashboard: switch Genie Code to Agent mode and run /importBI with your file or volume path.

The hands-on flow would be:

  1. Go to Dashboards → Create dashboard.
  2. Open the Genie Code panel (pedrozanlorensi_4-1786450556693.png, top-right) and start a new chat with the pencil icon (a fresh chat gives the best experience).
  3. Type /importBI and paste the Volume path to your first dashboard.

Using /importBI through Genie CodeUsing /importBI through Genie Code

 From here, Genie Code walks you through the migration:

  • Inspects your model and asks where target views and metric views should live.
  • Proposes a plan - identifies fact vs. dimension tables, reviews your metric definitions, and flags any formulas with no direct match. Review it, give feedback on anything you'd change, then approve.
  • Builds the objects in your target catalog and schema once you confirm.

Genie Code confirming the target catalog and schema for the Metric ViewsGenie Code confirming the target catalog and schema for the Metric Views

 Key considerations

  • Expect more than one object. The output usually isn't a single metric view, but a mix of metric views and views. Both Power BI and Tableau pack several transformation steps into their modeling and visualization layers, and splitting those into distinct objects keeps the semantic layer clean.
  • If you already have shared KPI logic in Unity Catalog, say so in the prompt.  The import will reference your existing metric views, or extend one when needed. Always be explicit about the catalog and schema you want as both source and target.
  • Example prompts
    • "/importBI <volume path>, and recreate the layout as closely as possible using the attached screenshot as the visual reference."
    • "/importBI <volume path>, and save the converted views/metric views to my schema <catalog_name>.<schema_name>."
    • "/importBI <volume path>, and save the converted views/metric views to my schema <catalog_name>.<schema_name>, using the same nomenclature standards we already use, with views starting with v_ and metric views starting with metricv_."
    • "/importBI Import the attached report and prefer existing Unity Catalog metric views from <catalog.schema path> for shared KPIs such as revenue, gross margin, and active customers. If an equivalent governed metric view does not exist, create dashboard-local metric views and identify which ones should be promoted later."

5. Improve fidelity with screenshots and iteration

Treat migration as an iterative workflow, not a one-shot conversion. Expect to prompt again after the first pass. Work through the migration plan step by step, checking whether each pattern is converted correctly and adding clues where one needs more guidance.

Start with the semantic layer: If your report depends on a shared Tableau data source or a shared Power BI model, migrate the semantic layer first, before recreating the visuals.

Example prompt:

  • "/importBI <volume path> Use the shared model definitions I uploaded, create the target views and metric views in <catalog>.<schema>, and focus on the semantic model first. Do not recreate visualizations yet"

Then build the visuals: When you refine the visuals, screenshots of the original dashboard still help improve layout and formatting fidelity.

Example prompts:

  • "Adjust this imported dashboard so the layout more closely matches the attached source screenshot, especially the KPI row, the left-hand filters, and the summary chart ordering."
  • "Review this migrated dashboard and fix any missing or incorrectly mapped filters. If a direct equivalent is not possible, use the closest supported interaction and explain the gap."
  • "Refine the imported metric views and field labels so the business names, display formats, and comments are consistent with the original report and our Unity Catalog standards."

Instructing Genie Code using ScreenshotsInstructing Genie Code using Screenshots

A common mistake here is a single generic prompt like "make it better." You'll get more reliable results by asking for one class of adjustment at a time: layout, filters, calculations, formatting, or field naming.

6. Understand what gets migrated well

The flow covers a meaningful slice of typical BI assets out of the box, but a few things need a human eye. Here are some insights based on multiple migrations executed by the Databricks team:

Migrates well

Watch for

Calculated fields and measures

Chart types match only where a direct equivalent exists

Data source connections

No equivalent? It may fall back to a bar chart

Charts and visualizations

Widget positioning is approximate: expect layout tweaks

Dashboard- and page-level filters

Some level-of-detail expressions and drill-down behavior may not be fully covered yet

Refer to the release notes for the latest feature coverage

7. Plan for Unity Catalog metric views in production

After import, Genie Code creates metric views for your measures and dimensions, local to the dashboard by default, which is ideal while you iterate. Point it at a specific catalog (with the right permissions) and it can create them directly in Unity Catalog instead.

For production, promote local metric views to Unity Catalog so they're reusable across dashboards, Genie Agents, and notebooks under central governance. 

This is the step that turns a dashboard migration into a governed analytics foundation, not just a dashboard-only conversion.

8. Validate before broad rollout

Before you scale migration across a larger estate, validate a few core areas carefully:

  • Are the metrics and dimensions producing the expected numbers?
  • Do filters behave the way end users expect?
  • Are charts mapped appropriately, especially where there's no direct visual equivalent?
  • Does the layout need manual adjustment for usability?
  • Are your most important dashboards backed by promoted metric views in Unity Catalog?

This final review is what separates a technically successful import from a truly production-ready rollout.

Ready-to-copy validation prompts:

  • "Compare this migrated dashboard to the source/screenshot and list any gaps in filters, KPIs, formats, or layout."
  • "Check whether this migrated report is production-ready. Focus on KPI logic, filter behavior, labels, and formatting."
  • "Validate whether this report reused the correct Unity Catalog metric views and flag any local metric views that should be promoted."

9. Define the right permissions model for your objects and implement policies for granular access control

To secure access to your objects and establish granular permissions, Databricks allows you to manage permissions and to implement policies at the Unity Catalog level using Row-Level Security (RLS) and Column-Level Masking (CLM). 

Learn more about these concepts and make sure to implement them so that your semantic model is well governed:

And note that when you publish your dashboards in AI/BI, you get to choose whether your users will all see the same thing (through shared data permissions), or they will only see what they are entitled to see, as per their permissions in the Unity Catalog (individual data permission).

Learn more about publishing and sharing your dashboards here: Share a dashboard.  

10. Polish, productionize and go live

No migration tool is a silver bullet, so expect some final tweaks even after Genie Code's back-and-forth: matching your business or dev standards, visual and color updates, filter or parameter changes, custom logic, or materializations for speed.

  • As you productionize, use Declarative Automation Bundles to version dashboard changes and enable CI/CD.
  • Don't stop at chart parity. Make sure the dashboard is Genie-enabled so users can ask questions the fixed visuals don't answer. Published dashboards include a Genie Agent by default (the Enable Genie toggle is on when you publish). If that default agent is enough, just verify it has the right datasets and permissions. If users need broader ad-hoc exploration, cross-dashboard context, or exception/drill-around analysis, link or deploy a separate Genie Agent alongside  and since Genie Agents work even better with metric views, all your migration work carries straight over. See Curate an Effective Genie Agent.

Ready-to-copy Genie prompt:

"Ensure this migrated dashboard is Genie-enabled. If the default companion Genie Agent is too narrow, recommend whether I should link an existing Genie Agent or create a separate one for ad-hoc business questions beyond the dashboard visuals”.

Enable Genie for your AI/BI DashboardsEnable Genie for your AI/BI Dashboards

Dashboard users can talk to Genie while examining the charts to get detailed insightsDashboard users can talk to Genie while examining the charts to get detailed insights

  • You can also define a custom skill in Genie Code that captures your formatting defaults — colors, fonts, starting page, and so on.

Ready-to-copy instruction prompt:

"Add to instruction that whenever I create or populate a new dashboard, The Genie Code should automatically add a first canvas page called "About" containing a text widget with the dashboard description, an image widget placeholder, and the owner's name as a mailto: markdown link. The widget summarizing the dashboard's purpose should include the brief summary for each page with hyperlinks"

Refer to these for advanced customizations:

To

Reference

Apply advanced metric view patterns

Advanced Metric view patterns: https://docs.databricks.com/aws/en/uc-semantics/metric-views/advanced-techniques

Level of Detail expressions   https://docs.databricks.com/aws/en/uc-semantics/metric-views/level-of-detail

Reference measures repo https://github.com/databricks-solutions/uc-semantics-patterns

Customize color palette

Design Beautiful Dashboards in AI/BI (https://www.databricks.com/blog/design-beautiful-dashboards-aibi)

Build custom visuals with VegaLite

Create custom visuals: https://docs.databricks.com/aws/en/dashboards/manage/visualizations/custom-visualizations

VegaLite examples: https://vega.github.io/vega-lite/examples/

Speed up common aggregations 

Materialize Metric Views: https://docs.databricks.com/aws/en/uc-semantics/metric-views/materialization

Conclusion

Migrating dashboards to Databricks AI/BI does not have to be a long, manual conversion project. 

As BI tools continue to evolve, organizations will need to migrate their older reports and dashboards.  The questions that need to be answered while deciding the best way forward are: 

  • Does the migration create fragmentation between BI assets and the data estate, or does it unify it? 
  • Can you model data and governance once leveraging Unity Catalog or does this have to be repeated across systems resulting in admin overhead? 
  • Are you still going to have to pay for user license fees? 
  • Can your users interact with your new reports & dashboards using natural-language?

The product is evolving quickly, and the migration target keeps strengthening as AI/BI and Business Semantics add richer capabilities.

So treat your migration as an iterative modernization effort, not a static task. Start with the fastest path to a trusted dashboard, reuse governed assets where possible, and keep refining the semantic layer as new capabilities arrive.

Our platform is moving really fast, and techniques that still need workarounds today may become first-class migration patterns by the time your next wave lands. Stay tuned!

2 Comments