Forum Discussion

jaryszek's avatar
jaryszek
Super User
9 months ago
Solved

DirectLake error – 4 GB string store limit (need help reshaping data)

Hi everyone, I’m getting the following error in my Power BI DirectLake model: “Error fetching data for this visual. The string store or binary store at compatibility level 1050 has reached its 4 G...
  • v-dineshya's avatar
    v-dineshya
    9 months ago

    Hi jaryszek ,

    Thank you for the update. Please try below two options.

     

    1. Keep the big string in Dim_EA_AmortizedCosts_Resources_Changed and add a surrogate key.

     

    It is simple and you only modify the existing dimension table. And No extra join complexity. The dimension table still holds the large text column, which contributes to the string store size though less critical than fact table. If the dimension table is also very large and queried often, performance might effect.


    2. Create a new lookup table with only ResourceKey + original string.

     

    It Keeps the main dimension lean, only attributes needed for analysis. The big string is isolated in a separate table, used only for drill-through or detailed views. It reduces memory pressure on visuals that don’t need the full path. It adds one more relationship like Fact --> Dim --> Lookup. Slightly more complex model.


    Please follow below approach for DirectLake.

     

    1. Use only numeric measures + surrogate keys in Fact table.

     

    2. Use only attributes needed for slicing/filtering in Main dimension.

     

    3. Use only for long text fields used rarely like drill-through in Separate detail table.

     

    Note: Please try option 2, The full path is rarely used in visuals. If you want to minimize memory and improve performance.


    Please refer below updated model.

    FactUsage --> Dim_EA_AmortizedCosts_Resources_Changed --> ResourcePathLookup


    Note: FactUsage stores ResourceKey. Dim_EA_AmortizedCosts_Resources_Changed stores attributes like SubscriptionID, ResourceGroup, Provider, StorageAccount. ResourcePathLookup stores ResourceKey + full original path.

     

    I hope this information helps. Please do let us know if you have any further queries.

     

    Regards,

    Dinesh