Multitenancy beheren met ingesloten analyse in Power BIManage multi-tenancy with Power BI embedded analytics

Wanneer u een SaaS-app met meerdere tenants ontwerpt, moet u zorgvuldig overwegen welk tenancymodel het beste aansluit bij de behoeften van uw SaaS-app.When designing a multi-tenant SaaS application, you must carefully choose the tenancy model that best fits the needs of your SaaS application. Hetzelfde geldt wanneer u Power BI gebruikt als onderdeel voor ingesloten analyse in uw SaaS-app.This process is also valid for Power BI as an embedded analytics part of your SaaS application. Een tenancymodel bepaalt hoe gegevens van elke tenant in Power BI en het opslagaccount worden toegewezen en beheerd.A tenancy model determines how each tenant's data is mapped and managed within Power BI and the storage account. Het tenancymodel dat u kiest, beïnvloedt het ontwerp en beheer van de app.Your tenancy model impacts application design and management. Als u later moet overstappen op een ander model, kan dit kosten met zich meebrengen en verstorend zijn.Switching to a different model later may become costly and disruptive.

Power BI Embedded biedt twee algemene benaderingen om tenants gescheiden te houden.With Power BI Embedded, there are two main fundamental approaches to maintaining separation between tenants.

  1. Isolatie op basis van werkruimte , waarbij u voor elke tenant een afzonderlijke Power BI-werkruimte maakt.Workspace-based isolation - creating a separate Power BI Workspace per tenant.
  2. Isolatie op basis van beveiliging op rijniveau , waarbij de onderliggende gegevens worden gebruikt om de toegang tot gegevens per gebruiker of per groep te beheren.Row-level security-based isolation - where the underlying data is used to control and manage access to data per user or group.

In dit artikel worden de verschillende benaderingen besproken en geanalyseerd op basis van diverse evaluatiecriteria.This article describes the different approaches and analyzes them according to several evaluation criteria.

Concepten en terminologieConcepts and terminology

AAD : Azure Active Directory.AAD - Azure Active Directory.

AAD-app : een app-identiteit in AAD.AAD application - An application identity in AAD. Een AAD-app is vereist voor verificatie.An AAD application is required for authentication.

SaaS-app (Software as a Service) : een systeem dat is geïmplementeerd door een onderneming of ISV, meestal een online service.SaaS application (software-as-a-service) - A system implemented by an enterprise or ISV that is usually an online service. SaaS omvat ook gerelateerde softwaresystemen voor het bedienen van meerdere klanttenants (organisaties).Its also related software systems for serving multiple customer tenants (organizations). In dit artikel maakt de SaaS-app gebruik van Power BI Embedded om analysen uit te voeren voor alle verschillende tenants.For this article, the SaaS application uses Power BI Embedded to serve analytics to its different tenants. Power BI Embedded is geschikt voor alle soorten apps met een online verbinding.Power BI Embedded can also work for all types of applications when they have an online connection.

Tenant : één klant (organisatie) die de SaaS-app gebruikt en alle resources of gegevens die de klant toevoegt aan de SaaS-app.Tenant – A single customer (organization) that uses the SaaS application and any resources or data that the customer brings to the SaaS application.

Power BI : de Power BI-cloudservice die dient als platform voor Power BI Embedded.Power BI - The Power BI cloud service that serves as a platform for Power BI Embedded.

Power BI-tenant : een set Power BI-resources die is gekoppeld aan één AAD-tenant.Power BI tenant - Is a set of Power BI resources associated with a single AAD tenant.

Power BI-werkruimte : een container voor inhoud in Power BI.Power BI workspace - A container for content in Power BI.

Power BI-artefacten : Power BI-werkruimten bevatten verschillende Power BI-artefacten, zoals dashboards, rapporten, gegevenssets en gegevensstromen.Power BI artifacts – There are several Power BI artifacts in Power BI workspaces such as dashboards, reports, datasets, and dataflows.

Power BI Embedded : een set openbare API's waarmee ontwikkelaars apps kunnen maken om Power BI-inhoud en ingesloten Power BI-elementen te beheren.Power BI Embedded - A set of public APIs that allow developers to build applications that manage Power BI content and embed Power BI elements.

Beveiliging op rijniveau : biedt de mogelijkheid om gebruikerstoegang tot gegevens te beheren voor individuele rijen in een tabel.Row-level security (RLS) - Gives the ability to control user access to the data for individual rows in a table. U kunt beveiliging op rijniveau implementeren op gegevensbronniveau of in het semantische Power BI-model.You can implement row-level security at the data source level or in the Power BI semantic model.

Hoofdgebruiker : de identiteit die de SaaS-app vertegenwoordigt in Power BI en die de SaaS-app gebruikt wanneer API's van Power BI worden aangeroepen.Master user - The identity that represents the SaaS application in Power BI and that the SaaS application uses when calling Power BI APIs. De hoofdgebruiker moet een AAD-gebruiker met een Power BI Pro-licentie zijn.Needs to be an AAD user with a Power BI Pro license.

AAD-appgebruiker (service-principal) : de identiteit die de SaaS-app vertegenwoordigt in Power BI en die de SaaS-app gebruikt wanneer API's van Power BI worden aangeroepen.AAD Application user (service principal) - The identity that represents the SaaS application in Power BI and that the SaaS application uses when calling Power BI APIs. De AAD-appgebruiker moet een AAD-webtoepassing zijn.Needs to be an AAD web application. Deze kan in plaats van een hoofdgebruiker worden gebruikt om te verifiëren met Power BI.Can replace the use of a master user to authenticate with Power BI.

Capaciteit : een set resources die is bedoeld voor het uitvoeren van de Power BI-service.Capacity - A set of resources dedicated to running the Power BI service. Power BI Premium-capaciteit: bedoeld voor bedrijven die Power BI intern gebruiken, terwijl Power BI Embedded-capaciteit is bedoeld voor app-ontwikkelaars die SaaS-apps ontwikkelen voor externe partijen.Power BI Premium capacities Intended for enterprise companies using Power BI internally, while Power BI Embedded capacities intend for application developers to develop SaaS applications for third parties.

Power BI Pro-licentie : een op gebruikers gebaseerde licentie waarmee rechten worden verleend om inhoud te publiceren naar werkruimten, apps te gebruiken zonder Premium-capaciteit, dashboards te delen en te abonneren op dashboards en rapporten.Power BI Pro license - A user-based license, which grants rights to publish content to workspaces, consume apps without Premium capacity, share dashboards, and subscribe to dashboards and reports.

Modi voor gegevensconnectiviteit : er zijn verschillende modi voor het verbinden van gegevensbronnen met Power BI:Data connectivity modes - Connecting data sources to Power BI that can be done in different modes:

  • Importeren: de meest voorkomende manier om gegevens op te halen.Import - which is the most common way to get data.
  • DirectQuery: maak rechtstreeks verbinding met de gegevens in de opslagplaats van de gegevensbron.DirectQuery - connect directly to the data in its source repository.
  • Live-verbinding: een andere modus waarbij rechtstreeks verbinding wordt gemaakt met Analysis Services-gegevens (Azure en on-premises).Live connection - another mode that connects directly to Analysis Services data (both Azure and on-premises).

EvaluatiecriteriaEvaluation criteria

De beste keuze voor een geschikt tenancymodel voor uw SaaS-app hangt af van de specifieke zakelijke en technische vereisten, de gegevensarchitectuur en meer.The optimal choice for the right tenancy model for your SaaS application varies according to specific business and technical requirements, data architecture and more. Als u een grondig begrip hebt van deze vereisten en de opties en afwegingen van beschikbare tenancymodellen, kunt u een robuuste, betrouwbare, rendabele en schaalbare architectuur voor uw SaaS-app definiëren.Deep understanding of these requirements along with available tenancy model options and trade-offs can help define robust, performant, cost-effective, and scalable architecture for your SaaS application.

Houd rekening met onderstaande onderwerpen wanneer u een tenancymodel gaat kiezen.The following are a set of areas to consider when choosing between the different tenancy models.

GegevensarchitectuurData architecture

Ontwikkelaars die apps met Power BI Embedded maken, beschikken doorgaans al over een database met een of meerdere tenants.Usually, developers building applications with Power BI Embedded already have a single or multi-tenant database. Het is gemakkelijker om voor Power BI Embedded een tenancymodel te gebruiken dat vergelijkbaar is met het model van de database.It's easier to use a tenancy model for Power BI Embedded which is similar to the tenancy model of the database. Als het tenancymodel van de database nog niet is gedefinieerd, kunt u andere aspecten overwegen voordat u een gegevensarchitectuur kiest.If the database tenancy model hasn't been defined yet, you may want to consider other aspects before deciding on your data architecture.

GegevensisolatieData Isolation

Hoe gevoelig zijn de gegevens die worden opgeslagen?How sensitive is the data being stored? Welk isolatieniveau is nodig voor het scheiden van verschillende klanttenants?What level of isolation do you need separating different customer tenants? Het antwoord kan variëren afhankelijk van de betreffende vereisten voor verschillende branches of specifieke klanten.The answer might vary across different industries or specific customers that have certain requirements.

SchaalbaarheidScalability

Als u de beste oplossing wilt vinden, definieert u de schaal die u in de nabije toekomst bereikt.To find the best solution, define the scale you reach in the foreseeable future. Een oplossing die nu geschikt is, voldoet misschien niet meer wanneer gebruik en gegevens omhoog worden geschaald.Remember that a solution that might be suitable now might not suffice when usage and data scale up. Houd rekening met onderstaande punten wanneer u schaalbaarheid analyseert:When analyzing scalability, consider the following list:

  • het aantal tenants (klanten)Number of tenants (customers).
  • het aantal rapporten, dashboards en gegevenssets voor elke tenantNumber of reports, dashboards, and datasets for each tenant.
  • de grootte van gegevens in elke gegevensset en de frequentie van vernieuwingenSize of data on each dataset and frequency of refreshes.
  • het aantal gebruikersNumber of users.
  • het aantal gelijktijdige gebruikers op piekmomentenNumber of concurrent users in peak times.

Sommige SaaS-apps hebben weinig klanten en een laag gebruik, maar grote hoeveelheden gegevens.Some SaaS applications might have a low number of customers and low usage, but large amounts of data. Andere apps hebben veel klanten en een hoog gebruik, maar een kleine hoeveelheid gegevens en rapporten voor elke klant.Others might have many customers and high usage, but a small amount of data and reports for each customer. Hoge getallen in elk van deze scenario's kunnen toekomstige kosten en operationele complexiteit beïnvloeden.High numbers in any of these situations can impact future costs and operational complexity.

Automatisering en operationele complexiteitAutomation & operational complexity

Identificeer de processen die regelmatig voorkomen en die moeten worden geautomatiseerd.Identify frequently occurring processes that need automation.

  • Hoe vaak vindt onboarding van nieuwe tenants plaats?What is the frequency of onboarding new tenants? Welke acties zijn vereist om elke tenant volledig te onboarden?What actions are needed to fully onboard each one?
  • Wat is de vrijgeeffrequentie voor nieuwe of bijgewerkte Power BI-inhoud die moet worden geïmplementeerd?What is the release cadence for new or updated Power BI content, that needs to be deployed?
  • Hoeveel beveiligingsrollen op rijniveau worden gedefinieerd voor elke tenant?How many row-level security roles are defined for each tenant?

Wanneer u deze processen identificeert en bedenkt hoe u ze kunt benaderen, krijgt u meer inzicht in de operationele complexiteit voor het onderhouden van elk model.Identifying these processes and how you address them can help you understand the operational complexity involved in maintaining each model.

Vereisten voor gegevenslocatie en ondersteuning voor meerdere regio'sData Residency Requirements and the need to support multiple geographies

Power BI Embedded ondersteunt implementatie in meerdere regio's (preview-functie).Power BI Embedded supports multi-geo deployment (preview feature). Met Multi-Geo kunt u Power BI Embedded-resources in verschillende regio's implementeren en specifieke inhoud toewijzen aan specifieke locaties.Multi-Geo enables Power BI Embedded resources to be deployed in different regions with specific content assigned to reside in specific regions. Deze functie is beschikbaar voor alle modellen, maar kan invloed hebben op de hoeveelheid inhoud die u moet beheren en op de kosten.This feature can be used across all models, but can have an impact on the amount of content to manage and cost. Multi-Geo is momenteel bedoeld om te voldoen aan vereisten op het gebied van gegevenslocatie. Prestaties worden niet verbeterd door gegevens dichter bij consumenten te brengen.Currently multi-geo is designed for meeting data residency requirements and doesn't improve performance by moving data closer to consumers.

CostCost

Power BI Embedded heeft een op resources gebaseerd aanschafmodel, net als Power BI Premium.Power BI Embedded has a resource-based purchase model, like Power BI Premium. U koopt een of meer capaciteiten met een vaste hoeveelheid rekenkracht en geheugen.You purchase one or more capacities with fixed computing power and memory. Deze capaciteit is het primaire kostenitem wanneer u met Power BI Embedded werkt.This capacity is the main cost item when working with Power BI Embedded. Er is geen limiet voor het aantal gebruikers van de capaciteit.There's no limit on the number of users using the capacity. Er geldt alleen een limiet voor de prestaties van de capaciteit.The only limit is the performance of the capacity. U hebt een Power BI Pro-licentie nodig voor elke hoofdgebruiker of voor specifieke gebruikers die toegang nodig hebben tot de Power BI-portal.A Power BI Pro license is required for each master user, or specific users that need to access the Power BI portal.

We raden aan om de verwachte belasting van uw capaciteit te testen en meten door de omgeving en het gebruik live te simuleren en belastingtests uit te voeren op de capaciteit.We recommend testing and measuring the expected load on your capacity by simulating live environment and usage and run load testing on the capacity. U kunt de belasting en prestaties meten aan de hand van de diverse metrische gegevens die beschikbaar zijn in de Azure-capaciteit of de app voor metrische gegevens van de Premium-capaciteit.You can measure the load and performance with the various Metrics available in the Azure capacity or Premium capacity metrics app.

Inhoud aanpassen en ontwerpenContent customization and authoring

Er zijn twee benaderingen voor SaaS-apps die gebruikers de mogelijkheid bieden om rapporten te bewerken en maken, of om gegevens in de service te uploaden als onderdeel van de stroom:There are two approaches to SaaS applications that give users the ability to edit and create reports or upload data into the service as part of the flow:

  • Bewerk-/maakmodus in een ingesloten iFrame: de gebruiker krijgt een weergave van het rapport of een nieuw leeg canvas in de SaaS-app.Edit/Create mode in an embedded iFrame - The user gets a view of the report or a new blank canvas inside the SaaS application. Zo kan de gebruiker met de Power BI-werkbalk inhoud maken op basis van een gegevensset in de werkruimte.This way they can use the Power BI toolbar to create content based on a dataset in the workspace. We raden deze optie aan, aangezien die zich bevindt in de gebruikerscontext in een bekende omgeving.We recommend this option since it's in the user's context in a familiar environment. De gebruiker kan dan makkelijker aan de slag met bewerkingen en maakt een rapport dat wordt toegevoegd aan een bestaande gegevensset.It's easier to get started working and editing, and the user creates a report attached to an existing dataset.

  • Gebruik Power BI Desktop om inhoud te maken en uploaden naar de werkruimte via de gebruikersinterface van de SaaS-app.Use Power BI Desktop to create content and upload it through the SaaS application UI to the workspace. In deze benadering hebben gebruikers meer hulpmiddelen die ze in Power BI Desktop kunnen gebruiken.In this approach, users have more tools to work with using the Power BI Desktop. We raden deze benadering echter niet aan, omdat gebruikers bekend moeten zijn met een extra hulpmiddel buiten de context van de SaaS-app.However, we do not recommend this approach since users need to be familiar with an additional tool outside of the SaaS application context. Door een PBIX-bestand te uploaden, voegt de gebruiker een extra gegevensset toe, die mogelijk een duplicaat is van gegevenssets die al in de werkruimte staan.Uploading a PBIX file means the user is adding an additional dataset, that might be a duplicate of datasets already in the workspace.

Isolatie op basis van Power BI-werkruimtePower BI workspace-based isolation

Met isolatie op basis van Power BI-werkruimte ondersteunt de SaaS-app meerdere tenants vanuit één Power BI-tenant.With Power BI workspace-based isolation, the SaaS application supports multiple tenants from a single Power BI tenant. Isolatie op basis van werkruimte bevat alle Power BI-inhoud die door verschillende tenants wordt gebruikt.Workspace-based isolation contains all the Power BI content that different tenants use. De scheiding van tenants wordt uitgevoerd op Power BI-werkruimteniveau door meerdere werkruimten te maken.The separation of tenants is done at the Power BI workspace level, by creating multiple workspaces. Elke werkruimte bevat de relevante gegevenssets, rapporten en dashboards voor de tenant.Each workspace contains the relevant datasets, reports, and dashboards for that tenant. Bovendien is elke werkruimte alleen verbonden met de gegevens van de betreffende tenant.Also, each workspace is connected only to that tenant's data. Als u extra isolatie nodig hebt, kunt u een hoofdgebruiker of een service-principal maken voor elke werkruimte en de inhoud ervan.If you need additional isolation, you can create a master user or a service principal for each workspace and its content.

Werkruimte

GegevensarchitectuurData architecture

Er zijn twee primaire benaderingen voor het beheren van tenantgegevens.There are two main approaches to manage tenant's data.

  • een afzonderlijke database per tenantA separate database per tenant
  • één database voor meerdere tenantsA single multi-tenant database

Als de opslag van de SaaS-app een afzonderlijke database per tenant gebruikt, is het logisch om ook gegevenssets met één tenant in Power BI te gebruiken, waarbij de verbindingsreeks voor elke gegevensset verwijst naar de bijbehorende database.If the SaaS application storage is keeping a separate database per tenant, then the natural choice is to use single-tenant datasets in Power BI with the connection string for each dataset pointing to the matching database.

Als de opslag van de SaaS-app één database voor alle tenants gebruikt, is het eenvoudiger om tenants te scheiden per werkruimte.If the SaaS application storage is using a multi-tenancy database for all tenants, it's easy to separate tenants by workspace. U kunt de databaseverbinding voor de Power BI-gegevensset configureren met een geparameteriseerde databasequery die alleen gegevens van de relevante tenant ophaalt.You can configure the database connection for the Power BI dataset with a parameterized database query that only retrieves the relevant tenant's data. U kunt de verbinding bijwerken met Power BI Desktop of met de API met parameters voor de query.You can update the connection using the Power BI Desktop or using the API with parameters on the query.

GegevensisolatieData isolation

Gegevens worden in dit tenancymodel gescheiden op werkruimteniveau.Data in this tenancy model is separated at the workspace level. Dankzij een eenvoudige toewijzing tussen een werkruimte en een tenant voorkomt u dat gebruikers van de ene tenant inhoud van een andere tenant kunnen zien.A simple mapping between a workspace and a tenant prevents users from one tenant seeing content from another tenant. Wanneer u één hoofdgebruiker hebt, moet u toegang hebben tot alle verschillende werkruimten.Using a single master user demands you to have access to all the different workspaces. Welke gegevens een eindgebruiker kan zien, wordt gedefinieerd tijdens het genereren van een insluitingstoken. Dit proces vindt uitsluitend aan de back-end plaats en is niet zichtbaar of bewerkbaar voor gebruikers.The configuration of which data to show an end user is defined during the generation of the embed token, a backend-only process which end users can't see, or change.

Voor extra isolatie kan een app-ontwikkelaar een hoofdgebruiker of een app per werkruimte definiëren in plaats van één hoofdgebruiker of een app met toegang tot meerdere werkruimten.To add additional isolation, an application developer can define a master user or an application per workspace rather than a single master user or application with access to multiple workspaces. Op deze manier kunt u ervoor zorgen dat er in geval van een menselijke fout of lek van referentiegegevens geen gegevens van meerdere klanten openbaar worden gemaakt.This way, you can ensure that any human error or credential leak does not cause multiple customers' data to be exposed.

SchaalbaarheidScalability

Een voordeel van dit model is dat u, door de gegevens te scheiden in meerdere gegevenssets voor elke tenant, niet wordt beperkt door de limiet van een gegevensset (op dit moment 10 GB in een capaciteit).One advantage of this model is that separating the data into multiple datasets for each tenant overcomes the size limits of a single dataset (currently 10 GB in a capacity). Wanneer de capaciteit overbelast is, kan deze ongebruikte gegevenssets buitensluiten om geheugen vrij te maken voor actieve gegevenssets.When the capacity is overloaded, it can evict unused datasets to free memory for active datasets. Deze taak is niet mogelijk wanneer u één grote gegevensset hebt.This task isn't possible with a single large dataset. Wanneer u meerdere gegevenssets gebruikt, kunt u tenants indien nodig ook verdelen over meerdere Power BI-capaciteiten.Using multiple datasets, it is also possible to separate tenants into multiple Power BI capacities if needed.

Ondanks deze voordelen is het belangrijk om rekening te houden met de schaal die de SaaS-app in de toekomst mogelijk bereikt.Despite these advantages, one must consider the scale that the SaaS application can reach in the future. U kunt bijvoorbeeld te maken krijgen met beperkingen voor het aantal artefacten dat u kunt beheren.For example, one might reach limitations around the number of artifacts one can manage. Lees het gedeelte over implementatiebeperkingen verderop in dit artikel voor meer informatie.See deployment limitations later in this article for more details. De gebruikte capaciteit-SKU beperkt de hoeveelheid geheugen die gegevenssets nodig hebben, hoeveel vernieuwingen er tegelijkertijd kunnen worden uitgevoerd en de maximale frequentie van gegevensvernieuwingen.The capacity SKU used introduces a limit on the size of memory that datasets need to fit in, how many refreshes can run at the same time and the maximum frequency of data refreshes. Het is raadzaam om tests uit te voeren wanneer u honderden of duizenden gegevenssets beheert.It's recommended to test when managing hundreds or thousands of datasets. We raden ook aan rekening te houden met het gemiddelde en piekvolume van gebruik, evenals specifieke tenants met grote gegevenssets of afwijkende gebruikspatronen die anders worden beheerd dan andere tenants.It is also recommended to consider the average and peak volume of usage, as well as any specific tenants with large datasets, or different usage patterns, that are managed differently than other tenants.

Automatisering en operationele complexiteitAutomation & operational complexity

Met isolatie op basis van Power BI-werkruimte moet een app-ontwikkelaar mogelijk honderden of duizenden artefacten beheren.With Power BI workspace-based isolation, an application developer might need to manage hundreds or thousands of artifacts. Het is zeer belangrijk om processen te definiëren die regelmatig worden uitgevoerd in de levenscyclus van uw app. Bovendien moet u over de juiste hulpprogramma's beschikken om deze bewerkingen in dit tenancymodel op schaal uit te voeren.It's essential to define the processes that frequently happen in your application lifecycle management, and ensure you have the right set of tools to perform these operations at scale in this tenancy model. Enkele voorbeelden van zulke bewerkingen:Some example operations include:

  • een nieuwe tenant toevoegen (klant)Adding a new tenant (customer)
  • een rapport of dashboard bijwerken voor enkele of alle tenantsUpdating a report or dashboard for some or all the tenants
  • het schema van de gegevensset bijwerken voor enkele of alle tenantsUpdating the dataset schema for some or all the tenants
  • niet-geplande aanpassingen voor specifieke tenantsUnplanned customizations for specific tenants
  • frequentie van vernieuwingen van de gegevenssetFrequency of dataset refreshes

Het maken van een werkruimte voor een nieuwe tenant is bijvoorbeeld een veelvoorkomende taak die moet worden geautomatiseerd.For example, creating a workspace for a new tenant is a common task, which needs automation. Met de Power BI REST API kunt u zorgen voor volledige automatisering bij het maken van werkruimten.With the Power BI REST API, you can achieve full automation when creating workspaces.

Multi-Geo-behoeftenMulti-Geo needs

Multi-Geo omvat het aanschaffen van capaciteit in de gewenste regio's en het toewijzen van een werkruimte aan die capaciteit.Multi-geo involves purchasing capacity in the desired regions and assigning a workspace to that capacity. Als u ondersteuning moet bieden voor verschillende tenants in verschillende regio's, moet u de werkruimte van de tenant toewijzen aan een capaciteit in de gewenste regio.If you need to support different tenants in different regions, you need to assign the tenant's workspace to a capacity in the desired region. Dit is een eenvoudige taak en de kosten zijn niet hoger dan wanneer u alle werkruimten in dezelfde capaciteit plaatst.This task is a simple operation and one where the cost is not more than having all workspaces in the same capacity. Als u echter tenants hebt waarvoor gegevens in meerdere regio's moeten worden bewaard, moeten alle artefacten in de werkruimte worden gedupliceerd in elke regionale capaciteit. Dit betekent hogere kosten en complexer beheer.However, if you have tenants that need data resident in multiple regions, all artifacts in the workspace need to be duplicated in each regional capacity, increasing both cost and management complexity.

CostCost

App-ontwikkelaars die Power BI Embedded gebruiken, moeten Power Bi Embedded-capaciteit aanschaffen om naar productie te gaan.Application developers using Power BI Embedded need to purchase Power BI Embedded capacity to go to production. Het is belangrijk om inzicht te hebben in de impact van een op werkruimte gebaseerd isolatiemodel en het effect daarvan op capaciteiten.It's important to understand the impact of workspace-based isolation model and their effect on capacities.

Het op werkruimte gebaseerde isolatiemodel werkt om de volgende redenen goed met capaciteiten:The workspace-based isolation model sits well with capacities for the following reasons:

  • Het kleinste object dat u onafhankelijk aan een capaciteit kunt toewijzen, is een werkruimte (u kunt bijvoorbeeld geen rapport toewijzen). Wanneer u tenants scheidt door middel van werkruimten, kunt u elke afzonderlijke tenant en de prestatiebehoeften volledig flexibel beheren, en het capaciteitsgebruik optimaliseren door omhoog/omlaag te schalen.The smallest object you can independently assign to a capacity is a workspace that is, you can't assign a report, for example), so by separating tenants by workspaces, you get full flexibility in managing each tenant and its performance needs, and optimizing capacity utilization by scaling up/down. Grote, essentiële tenants met een hoog volume en hoge fluctuatie kunnen worden beheerd in een afzonderlijke capaciteit om een consistent serviceniveau te bieden. U kunt kleinere tenants groeperen in een andere capaciteit om de kosten te optimaliseren.For example, large and essential tenants with high volume and volatility can be managed in a separate capacity to ensure a consistent service level, while grouping smaller tenants in another capacity to optimize costs.

  • Wanneer u werkruimten scheidt, verdeelt u eveneens de gegevenssets over tenants, waardoor de gegevensmodellen uit meerdere kleinere delen bestaan in plaats van één grote gegevensset.Separating workspaces also means separating datasets between tenants so that data models can be in smaller chunks, rather than in a single large dataset. Met deze taak kan de capaciteit het geheugengebruik beter beheren, door kleine, niet-gebruikte gegevenssets uit te sluiten wanneer ze niet nodig zijn, en tegelijkertijd zorgen dat gebruikers tevreden blijven over de prestaties.This task allows the capacity to manage memory usage better, evicting small, and unused datasets when not needed, while keeping users satisfied with the performance.

App-ontwikkelaars moeten rekening houden met de limiet voor het aantal parallelle vernieuwingen. Vernieuwingsprocessen vereisen mogelijk extra capaciteit als u meerdere gegevenssets hebt.Application developers need to consider the limit on the number of parallel refreshes, as refresh processes might need extra capacity when you have multiple datasets.

Inhoud aanpassen en ontwerpenContent customization and authoring

Voor primaire gebruikssituaties bij het maken van inhoud moet de app-ontwikkelaar zorgvuldig overwegen welke tenants bewerkingsmogelijkheden krijgen en hoeveel gebruikers in elke tenant bewerkingsrechten krijgen.For the primary use cases of content creation, the application developer needs to carefully consider which tenants can have editing capabilities, and how many users in each tenant can edit. Als meerdere gebruikers in elke tenant bewerkingsrechten krijgen, kan er veel inhoud worden gegenereerd, waardoor de limiet van de gegevensset mogelijk wordt bereikt, bijvoorbeeld voor het aantal rapporten per gegevensset of het aantal gegevenssets in een werkruimte.Permitting multiple users in each tenant to edit can result in many contents being generated, that can reach a dataset limitation such as the number of reports per dataset, or the number of datasets in a workspace. Als u gebruikers deze mogelijkheid biedt, raden we aan de gegenereerde inhoud zorgvuldig te bewaken en indien nodig omhoog te schalen.If you give users this capability, we recommend monitoring the content generation closely and scale up as needed. Om dezelfde redenen raden we aan deze mogelijkheid niet te gebruiken voor personalisatie van inhoud, waarbij elke gebruiker kleine wijzigingen in een rapport kan aanbrengen en een persoonlijke kopie kan opslaan.For the same reasons, we don't recommend using this capability for content personalization, where each user can make small changes to a report and save it for themselves. Als inhoudspersonalisatie is toegestaan in de SaaS-app, kunt u bewaarbeleid voor gebruikersspecifieke inhoud in de werkruimte opstellen om de stroom van inhoudsverwijdering te bevorderen wanneer gebruikers een nieuwe functie krijgen, bij het bedrijf weggaan of het platform niet meer gebruiken.If the SaaS application allows content personalization, consider introducing and communicating workspace retention policies for user-specific content to facilitate the flow of content deletion when end users move to a new position, leaving the company or not using the platform anymore.

Isolatie op basis van beveiliging op rijniveauRow-level security-based isolation

Met isolatie op basis van beveiliging op rijniveau gebruikt de SaaS-app één werkruimte om meerdere tenants te hosten.With row-level security-based isolation, the SaaS application uses a single workspace to host multiple tenants. Dit betekent dat alle Power BI-artefact (rapporten, dashboards, gegevenssets) worden gemaakt wanneer alle tenants ze gebruiken.It means each Power BI artifact report, dashboard, & dataset, is created once all tenants use it. Gegevensscheiding tussen tenants wordt bereikt met beveiliging op rijniveau voor de gegevensset met meerdere tenants.Data separation between tenants is accomplished using row-level security on the multi-tenant dataset. Wanneer eindgebruikers zich aanmelden bij de SaaS-app en inhoud openen, wordt er een insluitingstoken gegenereerd voor de sessie van die gebruiker. Dit token bevat de rollen en filters die ervoor zorgen dat de gebruiker alleen gegevens ziet waarvoor de gebruiker gemachtigd is.When end users log into the SaaS application and open content, an Embed token is generated for that user's session, with the roles and filters that ensure the user only sees the data they are permitted to see. Als gebruikers van dezelfde tenant niet zijn gemachtigd om dezelfde gegevens te bekijken, moet de app-ontwikkelaar hiërarchische rollen implementeren voor verschillende tenants en binnen dezelfde tenant.If users from the same tenant are not permitted to view the same data, the application developer needs to implement hierarchical roles both between tenants and within the same tenant.

Beveiliging op rijniveau

GegevensarchitectuurData architecture

Het implementeren van isolatie op basis van beveiliging op rijniveau is het eenvoudigst wanneer de gegevens van alle tenants worden opgeslagen in één datawarehouse.Implementing row-level security-based isolation is most comfortable when all tenants' data is stored in a single data warehouse. De app-ontwikkelaar kan dan, via DirectQuery of gegevensimport, alleen relevante gegevens meegeven van het datawarehouse naar de Power BI-gegevensset.In this case, the application developer can pass only the relevant data from the data warehouse into the Power BI dataset, either via Direct Query or data import. Als gegevens in de database worden gescheiden per tenant, moeten deze worden gecombineerd tot één gegevensset. Hierdoor bestaat er minder scheiding tussen de tenants in de database.If data in the database is separated per tenant, it needs to be combined into a single dataset, which results in a lower degree of separation between tenants that existed in the database.

GegevensisolatieData isolation

Met isolatie op basis van beveiliging op rijniveau wordt gegevensscheiding bereikt met beveiligingsdefinities op rijniveau in de gegevensset, wat inhoudt dat alle gegevens naast elkaar bestaan.With row-level security-based isolation, data separation is accomplished using row-level security definitions on the dataset, which means all the data coexist. Deze vorm van gegevensscheiding is gevoeliger voor gegevenslekken door ontwikkelaarsfouten.This form of data separation is more susceptible to data leakage through developer error. Beveiliging op rijniveau wordt uitgevoerd aan de back-end en is beveiligd voor eindgebruikers. Als de gegevens echter zeer gevoelig zijn of klanten vragen om gegevensscheiding, kan het toch beter zijn om isolatie op basis van werkruimte te gebruiken.Even though row-level security is done on the backend and secured from an end user, if the data is highly sensitive or customers are asking for data separation, it might be better to use workspace-based isolation.

SchaalbaarheidScalability

Met isolatie op basis van beveiliging op rijniveau moeten de gegevens binnen de limiet van de gegevensset passen (op dit moment 10 GB).With row-level security-based isolation, the data needs to fit within the dataset size limit, which is currently 10 GB. Met de introductie van incrementeel vernieuwen en de geplande release van een XMLA-eindpunt voor Power BI-gegevenssets, wordt de limiet voor de grootte van de gegevensset naar verwachting aanzienlijk verhoogd.With the introduction of incremental refresh and the upcoming release of an XMLA endpoint for Power BI datasets, the dataset size limit is expected to increase significantly. De gegevens moeten echter nog altijd passen in het geheugen van de capaciteit. Er moet bovendien genoeg geheugen overblijven om gegevensvernieuwingen uit te voeren.However, the data still needs to fit into the capacity's memory, with enough remaining memory for data refreshes to run. Grootschalige implementaties vereisen een grote capaciteit zodat gebruikers geen problemen ondervinden met betrekking tot overschrijding van de limieten van de huidige capaciteit.Large-scale deployments need a large capacity to avoid users experiencing issues due to memory exceeding the limits of the current capacity. U kunt ook voorzien in schalingsbehoeften door aggregaties te gebruiken of rechtstreeks verbinding te maken met de gegevensbron via DirectQuery of een live-verbinding, in plaats van alle gegevens in de Power BI-capaciteit in de cache op te slaan.Alternative ways to handle scale include using aggregations or connecting to the data source directly using DirectQuery or Live connection, rather than caching all the data in the Power BI capacity.

Automatisering en operationele complexiteitAutomation & operational complexity

U kunt artefacten veel eenvoudiger beheren met isolatie op basis van beveiliging op rijniveau dan met isolatie op basis van werkruimte. U hebt dan namelijk maar één versie van een artefact voor elke omgeving (ontwikkeling/test/productie), in plaats van een versie per tenant.Managing artifacts is far more comfortable using row-level security-based isolation than with workspace-based isolation as there is only one version of an artifact for each environment (dev/test/production), instead of a version per tenant. Op grote schaal houdt het beheren van artefacten in dat u tientallen artefacten beheert en bijwerkt, niet duizenden tot tienduizenden.At a large scale, managing artifacts means managing and updating tens of artifacts, rather than thousands to ten-thousands.

Power BI heeft nog geen API om rollen en regels voor beveiliging op rijniveau aan te passen of te maken.Power BI doesn't yet have an API to modify or create RLS roles and rules. U kunt rollen alleen handmatig toevoegen of wijzigen in Power BI Desktop.Adding or changing roles can only be done manually in the Power BI Desktop. Als u een hiërarchie voor beveiliging op rijniveau wilt toepassen, kan deze foutgevoelig en lastig te beheren zijn als u geen zorgvuldige planning hebt.If an RLS hierarchy needs to be applied, it can be complicated and error-prone to manage if you don't plan it carefully.

Als de app-ontwikkelaar veel rollen en roldefinities moet beheren die regelmatig moeten worden gemaakt of bijgewerkt, is isolatie op basis van beveiliging op rijniveau met betrekking tot beheer niet schaalbaar.If the application developer needs to manage many roles and role definitions that need to be created or updated frequently, row-level security-based isolation isn't scalable, from a manageability perspective.

Een andere operationele complexiteit is de noodzaak om geheugengebruik nauwkeurig te bewaken en een robuust mechanisme te ontwikkelen voor meldingen en schaling, zodat gebruikers een soepele ervaring hebben.Another operational complexity is the need to closely monitor memory utilization and build a robust mechanism of alerts and scaling to ensure users get a smooth experience.

Multi-Geo-behoeftenMulti-Geo needs

Aangezien alle gegevens in één gegevensset worden opgeslagen, is het lastig om te voldoen aan vereisten voor gegevenslocatie, waarbij bepaalde gegevens aan bepaalde locaties moeten worden gekoppeld.Since all the data is stored in a single dataset, it is challenging to meet data residency requirements that require certain data to be bound to specific locations. Dit kan ook leiden tot aanzienlijk hogere kosten voor het gebruik van meerdere regio's, aangezien alle gegevens in elke regio worden gerepliceerd en opgeslagen.It can also significantly increase the cost of using multiple regions as all the data is replicated and stored in each region. Als slechts een beperkt aantal tenants verschillende regio's nodig heeft, kunt u alleen de gegevens van die tenants in een andere regio opslaan met behulp van het isolatiemodel op basis van werkruimte dat hierboven is beschreven.If only a limited number of tenants need different geographies, you can keep only those tenants' data in a different region, using the workspace-based isolation model described above.

CostCost

De primaire kostendrijver bij isolatie op basis van beveiliging op rijniveau is de geheugen-footprint van de gegevensset.The primary cost driver with row-level security-based isolation is the memory footprint of the dataset. U hebt voldoende capaciteit nodig om de gegevensset op te slaan en een extra geheugenbuffer te behouden voor pieken in de vraag naar geheugen.You need enough capacity to store the dataset and keep some additional memory buffer for any peaks in memory demand. Een oplossing voor deze situatie is het opslaan van de gegevens in een SQL Server-database of een SQL Server Analysis Services-kubus en DirectQuery of een live-verbinding gebruiken om gegevens in realtime op te halen uit de gegevensbron.One way to mitigate this situation is to store the data in a SQL Server database or SQL Server Analysis Services cube and using Direct Query or a Live connection to retrieve the data from the data source in real time. Met deze aanpak stijgen uw kosten voor gegevensbronnen, maar hebt u geen grote capaciteit nodig vanwege geheugenbehoefte, dus beperkt u de kosten voor Power BI-capaciteit.This approach increases the cost of the data sources, but reduces the need for large capacity because of memory needs, hence reducing the cost of Power BI capacity.

Inhoud aanpassen en ontwerpenContent customization and authoring

Wanneer eindgebruikers rapporten bewerken of maken, kunnen ze de gegevensset voor productie met meerdere tenants gebruiken.As end users edit or create reports, they can use the production multi-tenant dataset. We raden daarom aan alleen de ingesloten iFrame-optie te gebruiken om rapporten te maken of bewerken. Hiervoor wordt dezelfde gegevensset gebruikt en is beveiliging op rijniveau toegepast.For that reason, we advise only using the embedded iFrame option to edit or create reports, as it relies on the same dataset, with row-level security applied. Als gebruikers PBIX-bestanden met aanvullende gegevenssets uploaden, kan dit leiden tot hogere kosten en complexer beheer met isolatie op basis van beveiliging op rijniveau.Having users uploading PBIX files with additional datasets can be costly and difficult to manage with row-level security-based isolation. En wanneer gebruikers nieuwe inhoud genereren in dezelfde werkruimte, moet u ervoor zorgen dat de productiewerkruimte de limiet niet bereikt en moet u een robuust mechanisme ontwikkelen om te bepalen welke inhoud aan welke tenant is gekoppeld.Also, when users generate new content that is in the same workspace, you need to make sure the production workspace doesn't hit its limits and build a robust mechanism to distinguish which content is connected to which tenant.

Vergelijkingsoverzicht van de verschillende benaderingenSummary comparison of the different approaches

Belangrijk

De volgende analyse is gebaseerd op de huidige status van het product.The following analysis is based on the current state of the product. We introduceren maandelijks nieuwe functies en mogelijkheden die een oplossing vormen voor huidige beperkingen of zwakke plekken.As we are releasing new features on a monthly cadence, we continue to provide new capabilities and features that answer existing limitations and weak spots. Lees onze maandelijkse blogposts om op de hoogte te blijven van al het nieuws en raadpleeg dit artikel opnieuw om te zien hoe de nieuwe functies de aanbevelingen voor het tenancymodel beïnvloeden.Make sure to check our monthly blog posts to see what's new and come back to this article to see how new features affect the tenancy model recommendation.

EvaluatiecriteriaEvaluation Criteria Op basis van werkruimteWorkspace-based Op basis van beveiliging op rijniveauRow-level security-based
GegevensarchitectuurData architecture Eenvoudigst wanneer elke tenant een afzonderlijke database heeftEasiest when there's a separate database per tenant Eenvoudigst wanneer de gegevens voor alle tenants worden opgeslagen in één datawarehouseEasiest when all the data for all tenants are in a single data warehouse
GegevensisolatieData isolation Goed.Good. Elke tenant heeft een toegewezen gegevensset.Each tenant has a dedicated dataset. Gemiddeld.Moderate. Alle gegevens bevinden zich in dezelfde gedeelde gegevensset, maar worden beheerd door middel van toegangsbeheer.All data is in the same shared dataset but managed through access-control.
SchaalbaarheidScalability Gemiddeld.Medium. Het verdelen van gegevens over meerdere gegevenssets maakt optimalisatie mogelijk.Breaking the data into multiple datasets enables optimization. Laagst.Lowest. Beperkt door de limieten van gegevenssets.Constrained by dataset limits.
Multi-Geo-behoeftenMulti-Geo needs Geschikt wanneer de meeste tenants zich alleen in één regio bevinden.Good fit when most tenants are only in one region. Niet aanbevolen.Not recommended. Hierbij moet de volledige gegevensset in meerdere regio's worden opgeslagen.Needs to keep the entire dataset stored in multiple regions.
Automatisering en operationele complexiteitAutomation & operational complexity Goede automatisering voor de afzonderlijke tenant.Good automation for the individual tenant. Ingewikkeld om veel artefacten op schaal te beheren.Complex to manage many artifacts at scale. Eenvoudig om Power BI-artefacten te beheren maar ingewikkeld om beveiliging op rijniveau op schaal te beheren.Easy to manage Power BI artifacts but complex to manage RLS at scale.
CostCost Laag tot gemiddeld.Low-medium. Gebruik kan worden geoptimaliseerd om kosten per tenant te beperken.Can optimize utilization to reduce cost-per-tenant. Kosten kunnen toenemen wanneer regelmatige vernieuwingen vereist zijn.Might increase when frequent refreshes are needed. Gemiddeld tot hoog bij gebruik van de importmodus.Medium- high if using Import mode. Laag tot gemiddeld bij gebruik van DirectQuery.Low- medium if using Direct Query mode.
Inhoud aanpassen en ontwerpenContent customization and authoring Geschikt.Good fit. Op grote schaal kunnen limieten worden bereikt.Might hit limitations at large scale. Alleen inhoud genereren in ingesloten iFrame.Content generation in embedded iFrame only

Overwegingen en beperkingen voor implementatieDeployment considerations and limitations

Limieten voor Power BI-artefacten:Power BI Artifact limits:

  • Eén gebruiker/app kan van maximaal 250 werkruimten V1 (groepen) lid/beheerder zijn.The number of workspaces V1 (groups) that a single user/application can be a member/admin of is 250.
  • Eén gebruiker/app kan van maximaal 1000 werkruimten V2 (mappen) lid/beheerder zijn.The number of workspaces V2 (folders) that a single user/application can be a member/admin of is 1000.
  • Eén werkruimte kan 1000 gegevenssets bevatten.The number of datasets in a single workspace is 1000.
  • Eén gegevensset kan verbonden zijn met 1000 rapporten/dashboards.The number of reports/dashboards connected to a single dataset is 1000.
  • De limiet voor het geheugen van de gegevensset om een PBIX -bestand te uploaden, is 10 GB.The dataset memory size limit to upload a .pbix file is 10 GB.

Overwegingen en limieten voor Power BI-capaciteit:Power BI Capacity considerations and limitations:

  • Elke capaciteit kan alleen gebruikmaken van het toegewezen geheugen en de toegewezen v-cores, overeenkomstig de aangeschafte SKU.Each capacity can only use its allocated memory and V-cores, according to the SKU purchased.
  • Raadpleeg Premium-ondersteuning voor grotere gegevenssets voor meer informatie over de aanbevolen gegevenssetgrootte voor elke SKU.For the recommended dataset size for each SKU, reference Premium large datasets.
  • De maximale grootte van een gegevensset in een capaciteit is 10 GB.The max dataset size in a capacity is 10 GB.
  • Het aantal geplande vernieuwingen voor een gegevensset in de importmodus is 48 per dag.The number of scheduled refreshes for an import mode dataset in a day is 48.
  • De tijd tussen geplande vernieuwingen voor een gegevensset in de importmodus bedraagt 30 minuten.The time between scheduled refreshes for an import mode dataset is 30 minutes.
  • Raadpleeg Resourcebeheer en optimalisatie voor meer informatie over het aantal vernieuwingen dat tegelijkertijd kan worden uitgevoerd in een capaciteit.For the number of refreshes that can run concurrently on a capacity, reference resource management and optimization.
  • De gemiddelde tijd voor het schalen van een capaciteit bedraagt 1 tot 2 minuten.The average time of scaling a capacity is between 1-2 minutes. Gedurende die tijd is de capaciteit niet beschikbaar.During that time, the capacity isn't available. We raden aan een uitschalingsbenadering te gebruiken om downtime te voorkomen.We recommend using a scale-out approach to avoid downtime.

Volgende stappenNext steps