Forum Discussion

Hussein_charif's avatar
11 months ago
Solved

Splitting tables between directquery and import mode

hello, i've been seeing recently many articles and videos about composite/hybrid models, where the developer splits the fact table between directquery and import mode, having directquery for older h...
  • v-kpoloju-msft's avatar
    11 months ago

    Hi Hussein_charif,

    Thank you for reaching out to the Microsoft fabric community forum and sharing the details. Also, thanks to Shahid12523GabryNabha-Ahmedamitchandak, for those inputs on this thread.

    You are right. what you are describing is called a hybrid/composite model in Power BI, where part of the fact table is cached in Import mode for speed, and the rest is kept in Direct Query, so you don’t have to load all the historical data.

    The easiest and most efficient way to achieve this is by using Incremental Refresh with Hybrid Mode. You can tell Power BI to keep (for example) the last 6 months of data in Import mode, and anything older will stay in Direct Query. That way, when users look at recent data, it loads instantly from memory, but if they need history, Power BI queries the source on demand.

    Here is how you can set it up: In Desktop, define an incremental refresh policy (Modelling → Incremental Refresh). Choose how much data to keep in Import and how far back you want to enable Direct Query. Enable Hybrid Mode. Publish the dataset, Power BI automatically manages the split partitions for you. This setup is much cleaner than manually splitting tables, and it scales well.

    Refer these links:
    1. https://learn.microsoft.com/en-in/power-bi/connect-data/incremental-refresh-overview 
    2. https://learn.microsoft.com/en-us/power-bi/connect-data/incremental-refresh-configure 

    Hope this clears it up. Let us know if you have any doubts regarding this. We will be happy to help.
    Thank you for using the Microsoft Fabric Community Forum.

  • Poojara_D12's avatar
    11 months ago

    Hi Hussein_charif 

    A hybrid or composite model in Power BI is designed to balance performance and scale by splitting a large fact table between Import and DirectQuery storage modes. The idea is that recent, frequently accessed “hot” data is loaded into Import mode for fast, in-memory querying, while older, rarely accessed “cold” historical data remains in DirectQuery, so it doesn’t bloat the dataset. When users run reports, Power BI automatically determines whether to pull data from Import or DirectQuery partitions, combining results seamlessly so the experience feels like a single table. In Premium or Fabric capacities, this can be achieved easily with Incremental Refresh and the “Get the latest data in real time with DirectQuery” option, which automatically manages Import vs. DirectQuery partitions. Without Premium, developers can simulate this by manually creating one table in Import (filtered to recent years) and another in DirectQuery (for history), then combining them into a logical model. The key to efficiency is keeping the Import partition small enough for quick refreshes, ensuring the DirectQuery source is optimized with indexes, and designing reports to minimize queries against large historical partitions.