What are bulk operations in Microsoft Entra?

Masseoperationer i Microsoft Entra & Dataverse

10/10/2012

Rating: 4.11 (6097 votes)

I en verden, hvor datamængder konstant vokser, er effektiv administration afgørende. For IT-administratorer, der arbejder med Microsofts økosystem, er det en daglig udfordring at håndtere store mængder brugere, grupper, enheder og data. Her kommer masseoperationer (bulk operations) ind i billedet som en kraftfuld løsning. Disse operationer giver dig mulighed for at udføre handlinger som oprettelse, opdatering eller sletning på mange poster samtidigt, hvilket sparer tid og minimerer risikoen for manuelle fejl. Denne artikel dykker ned i, hvad masseoperationer er i Microsoft Entra ID og Dataverse, hvordan de fungerer, og hvordan du kan udnytte dem til at forbedre din effektivitet.

What happens when a bulk operation message is used?
When a bulk operation message is used, the respective Create and Update event occurs for each Entity instance in the Targets parameter. Any plug-ins or other event handlers for the corresponding individual events continue to work as they always have. You don't need to write new plug-ins to manage events raised by these messages.
Indholdsfortegnelse

Masseadministration i Microsoft Entra ID

Microsoft Entra ID (tidligere Azure Active Directory) er kernen i identitets- og adgangsstyring i Microsoft 365. Når en organisation har tusindvis af medarbejdere, bliver det hurtigt uholdbart at administrere hver bruger enkeltvist. Masseoperationer i Entra admin-portalen er designet til at løse dette problem, men de har deres begrænsninger.

Udfordringer med Admin-portalen

Selvom Entra admin-portalen tilbyder funktioner til masseimport og -oprettelse, kan disse operationer ofte fejle eller time ud i store organisationer (tenants). Dette er et kendt problem, der skyldes skaleringsbegrænsninger. Hvis en operation tager mere end en time, vil den sandsynligvis mislykkes. En typisk løsning er at opdele dine data i mindre bidder, hvilket kan være en omstændelig manuel proces.

Løsningen: PowerShell og Microsoft Graph API

En mere robust og pålidelig metode til at udføre masseoperationer i Entra ID er at bruge PowerShell sammen med Microsoft Graph API. Dette giver dig direkte adgang til at scripte og automatisere komplekse opgaver uden at være begrænset af portalens brugerflade.

Med PowerShell-cmdlets som Get-MgUser -All og Get-MgGroup -All kan du nemt hente komplette lister over brugere og grupper, selv i meget store tenants. Nedenfor er nogle eksempler på almindelige opgaver:

  • Download alle brugere: Du kan hente en komplet liste over brugere med specifikke egenskaber (som ID, DisplayName, UserPrincipalName) og eksportere dem til en CSV-fil til videre behandling eller rapportering.
  • Opret brugere i massevis: Ved at forberede en CSV-fil med brugeroplysninger kan du køre et PowerShell-script, der læser filen og opretter hver bruger i Entra ID med de nødvendige attributter, herunder et midlertidigt kodeord.
  • Slet brugere i massevis: Tilsvarende kan du bruge en liste af UserPrincipalName-værdier i en CSV-fil til at slette flere brugere på én gang.
  • Administrer gruppemedlemskaber: Du kan eksportere medlemmer fra en bestemt gruppe, tilføje en liste af nye medlemmer fra en fil eller fjerne flere medlemmer samtidigt.

At bruge PowerShell giver ikke kun en løsning på timeout-problemet, men åbner også op for avanceret automatisering og tilpasning af administrative arbejdsgange.

Bulk Operations vs. BulkSaveChanges i Entity Framework

Når vi bevæger os over i udviklerverdenen, specifikt inden for .NET og Entity Framework, støder vi også på begrebet masseoperationer. Her er det vigtigt at skelne mellem standardmetoder og specialiserede biblioteker som Entity Framework Extensions.

What are bulk operations in Microsoft Entra?
These actions can include creating, deleting, or updating multiple records in a single operation. Bulk operations can greatly streamline administrative tasks and improve efficiency. Bulk operations in the Microsoft Entra admin portal could time out and fail on large tenants.

Standardmetoden i Entity Framework, SaveChanges(), er fantastisk til mange scenarier, men den er ikke optimeret til store datamængder. Den bruger en funktion kaldet ChangeTracker til at registrere ændringer for hver enkelt post, før de sendes til databasen. Denne proces bliver meget langsom, når du arbejder med hundreder eller tusinder af poster.

Entity Framework Extensions tilbyder derimod metoder som BulkInsert(), BulkUpdate(), BulkDelete() og BulkMerge(). Disse metoder omgår ChangeTracker og kommunikerer mere direkte med databasen, hvilket resulterer i en dramatisk forbedring af ydeevne.

Sammenligning af ydeevne

Tabellen nedenfor illustrerer den markante forskel i hastighed mellem standard SaveChanges og Bulk Operations fra Entity Framework Extensions.

Operation1.000 Poster5.000 Poster
SaveChanges1.000 ms5.000 ms
BulkInsert6 ms15 ms
BulkUpdate50 ms65 ms
BulkDelete45 ms60 ms

Som det ses, er Bulk Operations hundredvis af gange hurtigere, hvilket gør dem uundværlige i applikationer, der skal håndtere store datamigrationer, import eller synkroniseringer.

Massebeskeder i Microsoft Dataverse

Microsoft Dataverse, dataplatformen bag Power Platform og Dynamics 365, tilbyder også dedikerede masseoperationer for at opnå den bedst mulige ydeevne. Disse operationer udføres via specifikke API-beskeder:

  • CreateMultiple: Opretter flere poster af samme type i et enkelt kald.
  • UpdateMultiple: Opdaterer flere poster af samme type i et enkelt kald.
  • UpsertMultiple: En kombination, der opretter eller opdaterer poster baseret på, om de allerede eksisterer.
  • DeleteMultiple: Sletter flere poster. Bemærk, at denne kun er tilgængelig for elastiske tabeller (elastic tables).

Standard vs. Elastiske Tabeller

Hvordan du bruger disse masseoperationer afhænger af, om du arbejder med standard- eller elastiske tabeller i Dataverse. Forskellen er fundamental for at opnå optimal ydeevne og korrekt fejlhåndtering.

What is the difference between bulk operations and bulksavechanges?
Bulk operations method gives you additional flexibility by allowing to customize options such as primary key, columns, include childs entities and more. They are also faster than BulkSaveChanges since they don't use the ChangeTracker and doesn't call the DetectChanges method. Bulk Operations Available: // Easy to customize
EgenskabStandardtabeller (Azure SQL)Elastiske Tabeller (Azure Cosmos DB)
TransaktionerAlle operationer i et kald er en del af en samlet transaktion.Understøtter ikke transaktioner. Hver operation er uafhængig.
FejlhåndteringHvis én operation fejler, rulles hele kaldet tilbage. Alt-eller-intet.Hvis én operation fejler, fortsætter de andre. Delvis succes er mulig. Fejl kan inspiceres for hver enkelt post.
Anbefalet batchstørrelseSå mange som muligt, typisk 100-1000, for at maksimere transaktionens effektivitet.Mindre batches, f.eks. 100 poster pr. kald, men sendt parallelt for maksimal gennemstrømning.

Denne forskel skyldes de underliggende databaseteknologier. Standardtabeller bruger Azure SQL, som er optimeret til transaktionel integritet, mens elastiske tabeller bruger Azure Cosmos DB, som er designet til massiv skalerbarhed og høj gennemstrømning med lav latenstid, men uden transaktionsgarantier på tværs af flere dokumenter.

Ofte Stillede Spørgsmål (FAQ)

Hvordan påvirker API-grænser masseoperationer?

Masseoperationer er stadig underlagt de samme service protection- og API-grænser som enkeltoperationer. Hver masseoperation tæller som ét enkelt API-kald, hvilket reducerer risikoen for at ramme grænsen for antal anmodninger. Dog tager disse kald længere tid, så man skal være opmærksom på grænsen for samlet eksekveringstid. Hver post i en masseoperation tæller individuelt mod Power Platform Request-grænserne (dataændringer).

Hvad sker der, når en massebesked bruges i Dataverse?

Når du bruger f.eks. CreateMultiple, udløses den tilsvarende enkeltbesked (Create) for hver post i kaldet. Det betyder, at eksisterende plugins og workflows, der er registreret på Create-hændelsen, vil køre som normalt. Dette sikrer, at forretningslogik ikke skal vedligeholdes to steder. For optimal ydeevne anbefales det dog at flytte logik til plugins, der er registreret direkte på massebeskeder som CreateMultiple.

Hvad er de primære begrænsninger, jeg skal være opmærksom på?

De største begrænsninger er beskedstørrelse og tidsgrænser. Hvis den samlede datamængde (payload) i et kald overstiger 116.85 MB, kan du opleve fejl, især hvis der er plugins registreret. Ligeledes kan lange operationer time ud (standard er 2-4 minutter afhængig af klienten). Løsningen er typisk at reducere antallet af poster i hvert kald.

Hvis du vil læse andre artikler, der ligner Masseoperationer i Microsoft Entra & Dataverse, kan du besøge kategorien Teknologi.

Go up