How to Combine Two Semantic Models in Power BI

Cody Schneider9 min read

Building a Power BI report on a single, clean semantic model is one thing, but what happens when your sales data lives in one model and your marketing performance data lives in another? By default, Power BI connects to one model at a time. This guide will walk you through exactly how to combine two (or more) semantic models into a single, unified report using Power BI’s composite model feature.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Why Would You Want to Combine Semantic Models?

Before diving into the "how," it's helpful to understand the "why." Combining models isn't just a technical exercise, it solves several common business intelligence challenges.

  • Creating a Full-Funnel View: The most common reason is to blend data that lives in separate but related business domains. Imagine your Sales team has a certified semantic model with detailed product sales and customer data from your CRM. At the same time, your Marketing team has another model with campaign performance, ad spend, and website traffic. By combining these, you can finally answer questions like, "Which marketing campaigns are driving the most high-value customers?" or "What is our true customer acquisition cost by sales region?"
  • Enhancing Agility and Reducing Complexity: A single, monolithic semantic model containing every piece of company data can become slow, complex, and difficult to manage. A better approach is often to create smaller, domain-specific models (e.g., Finance, Operations, HR). You can then combine these smaller, more manageable models in a report when you need to perform cross-functional analysis.
  • Reusing Existing Certified Models: Your organization might already have a central, IT-managed semantic model for corporate financial data that’s been validated and certified. Instead of rebuilding this logic from scratch, you can connect to it directly and then combine it with your team’s more specific data (like project management details from another source) to add your own context.

Understanding Composite Models: The Foundation

The magic that makes this all possible is a Power BI feature called composite models. A composite model allows a single Power BI report to have more than one data connection.

Traditionally, when you connect to a Power BI semantic model, you create a live connection. This means your report is directly and exclusively tied to that one remote model. You can't add other data sources. Composite models change this by allowing you to make a DirectQuery connection to a Power BI semantic model.

Here’s what that means in simple terms:

  • Import Mode: Data is loaded into and stored within your Power BI Desktop file (.pbix). This is fast but consumes memory and the data is only as fresh as your last refresh.
  • DirectQuery Mode: No data is stored in your .pbix file. Instead, when you interact with a visual, Power BI sends queries back to the original data source to fetch the latest data in real-time.

When you use the composite model feature to connect to another Power BI semantic model, you are essentially creating a DirectQuery connection to that model. This lets you connect to a second model, a third, or even a different data source like a local Excel file or SQL database, all in the same report.

Step-by-Step Guide: How to Combine Your Semantic Models

Let's walk through the process of combining a "Sales Model" with a "Marketing Model." For this to work, make sure you are using an up-to-date version of Power BI Desktop.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Step 1: Connect to Your First Semantic Model

Start by making your initial connection as you normally would. This first connection will begin as a live connection.

  1. In Power BI Desktop, go to the Home tab.
  2. Click Get Data and select Power BI datasets.
  3. A window will appear showing you all the semantic models you have access to. Find and select your primary model (e.g., "Company Sales Model") and click Create.

At this point, you've established a live connection. You can see this by looking at the status bar at the bottom right of the Power BI window, which will say "Connected live to the Power BI dataset [Model Name]." In this mode, if you try to click "Get Data" again, you’ll notice most other data source options are grayed out.

Step 2: Convert to a Composite Model (via DirectQuery)

This is the most important step in the process. To add a second data source, you need to convert your report from a live connection to a composite model. This is incredibly easy to do.

Just attempt to add another source. Simply click on Get Data once more and select Power BI datasets again. Power BI will then present you with a dialog box:

"Adding a DirectQuery to this live connection requires a local model. Making this change will unlock a whole host of modeling experiences... Would you like to add a local model?"

Click the Add a local model button. That's it!

Alternatively, you can click on the status bar text on the bottom right ("Connected live...") and select Make changes to this model. This achieves the same outcome.

You’ll notice the status bar now says "Storage Mode: Mixed." You've just created a composite model. Your report's connection to the first semantic model has been changed from "Live" to "DirectQuery," which now allows you to connect to other sources. The visuals you've already built will continue to work perfectly.

Step 3: Connect to Your Second Semantic Model

Now that your report is in a composite model structure, connecting to a second semantic model is straightforward. The Get Data button is fully active.

  1. Go back to Get Data > Power BI datasets.
  2. This time, select your second model (e.g., "Marketing Performance Model") and click Create.

Look at your Fields pane on the right. You will now see the tables from both the "Company Sales Model" and the "Marketing Performance Model," ready to be used in your report. Power BI keeps them organized under their respective model names, so it's easy to see which tables came from where.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Step 4: Create Relationships Between the Models

This is an absolutely critical step that often trips people up. Just because you have two models in the same report doesn't mean they know how to interact with each other yet. You must manually create relationships between the tables from different models.

For your visuals to work correctly (e.g., a slicer based on a marketing campaign affecting a chart showing sales data), the models must be linked through a common dimension.

  1. Go to the Model view in Power BI Desktop (the icon with three connected boxes on the far left pane).
  2. You'll see a diagram of all the tables from both of your models.
  3. Let's say your "Marketing Model" has a "Campaigns" table and your "Sales Model" has a "Sales Transactions" table, and you want to link them by date. Let's also assume you have a master "Date" dimension table in your "Sales Model."
  4. Identify a common column. In this case, it's the date.
  5. Click and drag the Date column from your "Date" table (in the Sales Model) and drop it onto the Visit Date column in a table from your "Marketing Model."

A line will appear connecting the two tables, signifying that a relationship now exists. You can double-click this line to edit the relationship's properties, such as cardinality (one-to-many, many-to-many) and cross-filter direction.

Tips and Best Practices for Stable, Performant Reports

Combining models is powerful, but it comes with a few things to keep in mind to ensure your reports are useful and efficient.

1. Plan Your Relationships with "Conformed Dimensions"

Making relationships work is much easier if the source models were designed with this kind of analysis in mind. The best practice is to use conformed dimensions. This is just a fancy term for having a single, shared source of truth for common dimensions like Date, Customer, or Product. For instance, having one master "Date" table in a central model that all other models relate to ensures consistency.

2. Be Mindful of Performance

Since you are using DirectQuery, the responsiveness of your report will depend on the performance of the underlying semantic models and the complexity of your visuals. If a source model is slow, your composite model report will also be slow. It can be a good idea to create summary tables using Import mode for high-level visuals while leaving the DirectQuery connections for detailed drill-down analysis.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

3. Rename Ambiguous Tables and Columns

What if both of your models have a table named "Revenue"? In the Fields pane, Power BI will label them as "Revenue" and "Revenue (2)" to distinguish them. This can get confusing quickly. Take the time to rename the tables in your Model view for clarity (e.g., rename to "Marketing Sourced Revenue" or "Product Sales Revenue").

4. Understand How Security Works

One of the best aspects of combining models is that the Row-Level Security (RLS) defined in both source models is automatically honored. For example, if a user is restricted to only seeing sales data for the EMEA region in the "Sales Model," they will only see EMEA data when it’s presented in your new composite report, even if they have full access to the "Marketing Model." Power BI enforces the security from all sources.

Final Thoughts

Combining semantic models in Power BI using the composite model feature is a game-changer for creating truly comprehensive and insightful reports. By connecting different data silos in a manageable way, you can move from domain-specific reporting to full-business-cycle analysis, all while leveraging existing, certified data models.

While managing relationships and performance in Power BI is a critical skill, it's a technical process that's not always accessible to everyone on the team. That's a big part of why we built Graphed. We automate this 'model combining' process by giving you one-click connections to your core data sources like Shopify, Salesforce, HubSpot, and Google Ads. Instead of manually building relationships, you can just ask in plain English — "Compare product sales from Shopify versus ad spend from Facebook ads for each campaign" — and our AI builds the unified report for you in seconds, connected to your live data.

Related Articles