Forum Discussion

icassiem's avatar
icassiem
Icon for Post Prodigy rankPost Prodigy
2 years ago

Large Volume of data broken up in chunks with multiple API Calls

Good day, 

 

I have a large dataset (1m records), we are trying to provide the data to a client via an API that has a param for orgID and areaID

The API only returns the dataset for the combination of orgID + areaID

"Me thinking out loud"

1. For powerbi to load all data, should i do a loop and meaning get a list of orgID + areaID and execute the API per combination and append the dataset > How ?

2. Not sure if Direct Mode can do this, as the API was developed on the bases of Lazy load similar to an app based on user selection fetches data for the selection - but this is not what i understand of pbi

 

Please what other options do i have, as loading the data in a storage layer is not an option as its built for external clients power users?

 

Please Any Help, Thanks

9 Replies

  • Are you using Fabric? If so, as a data mesh solution, there is a feature to share the data

     

    To provide datasets to external users, you can utilize the External Data Sharing feature in Microsoft Fabric. This feature allows Fabric users to share data from within their Fabric tenant with users in another Fabric tenant1. The data is shared “in-place” from OneLake storage locations, meaning that no data is actually copied to the other tenant2.

    Here’s a high-level overview of how to enable and use this feature:

    Enable External Data Sharing: Go to the tenant settings in the consuming tenant and find the “Users can accept external data shares (preview)” setting under export and sharing settings. Enable the toggle and specify who in the tenant can create external data shares3.
    Create and Configure Domains: Organize your data into domains and subdomains to manage governance and control access based on business units or departments4.
    Assign Workspaces to Domains: Assign workspaces to the relevant domains or subdomains in the admin portal5.
    Share Data with External Users: Use the external data sharing feature to share the necessary datasets with users in another Fabric tenant1.
    This approach allows for decentralized data ownership and governance, enabling each business unit to define its own rules and restrictions according to its specific business needs45. It’s a powerful way to collaborate across different Fabric tenants while maintaining control over your data. For a detailed guide, you can refer to the resources provided by Microsoft Fabric45213.

     

    • icassiem's avatar
      icassiem
      Icon for Post Prodigy rankPost Prodigy

      Hi, Thank You for assisting Mrquestionmark 

      Unfortunately No fabric, due to our landscape being AWS my reccomendation was Redshift but the thinking was to provide api only due to clients having different visualizers

       

      Any other ideas please?

  • Sorry icassiem , not much I can provide.

     

    If you are using power bi premium, dataflows or datamart might help. 

    • icassiem's avatar
      icassiem
      Icon for Post Prodigy rankPost Prodigy

      😞 thank you Mrquestionmark 

      I am new to this lazy loading "like app" and paginated load "pages"

      what does direct query do, something i should explore?

      would exploring looping work?

  • Is lazy loading "like app" and paginated load "pages" possible?

    What does direct query do, something i should explore?

    Would exploring looping work?

    • Mrquestionmark's avatar
      Mrquestionmark
      Icon for Helper I rankHelper I

      I might overthink your case. it sounds you just need users access your large dataset(semantic model?) based on orgID and areaID when they run report/browse semantic model. If so, using Row Level Security should be the answer.

       

       

       

      • icassiem's avatar
        icassiem
        Icon for Post Prodigy rankPost Prodigy

        Hi Mrquestionmark , There's no semantic layer, the users are external clients that needs to use the API to build their reports. The API was designed to only return data from operational/prod DB for a ordid + areaid but we need to build reports for an org with all its areas. I was hoping i could custom connect and loop the api call based on the list of areas, any ideas plz?

  • Good day,

    Any possible ideas, Loop, Paging etc?

    Please Help