Berekende entiteitsscenario's en use cases

Er zijn voordelen bij het gebruik van berekende entiteiten in een gegevensstroom. In dit artikel worden gebruiksvoorbeelden voor berekende entiteiten beschreven en wordt beschreven hoe ze achter de schermen werken.

Wat is een berekende entiteit?

Een entiteit vertegenwoordigt de gegevensuitvoer van een query die is gemaakt in een gegevensstroom, nadat de gegevensstroom is vernieuwd. Het vertegenwoordigt gegevens uit een bron en optioneel de transformaties die erop zijn toegepast. Soms wilt u mogelijk nieuwe entiteiten maken die een functie zijn van een eerder opgenomen entiteit.

Hoewel het mogelijk is om de query's die een entiteit hebben gemaakt te herhalen en nieuwe transformaties hierop toe te passen, heeft deze benadering nadelen: gegevens worden tweemaal opgenomen en de belasting van de gegevensbron wordt verdubbeld.

Berekende entiteiten lossen beide problemen op. Berekende entiteiten zijn vergelijkbaar met andere entiteiten omdat ze gegevens ophalen uit een bron en u kunt verdere transformaties toepassen om ze te maken. Maar hun gegevens zijn afkomstig van de gebruikte opslaggegevensstroom en niet van de oorspronkelijke gegevensbron. Dat wil gezegd, ze zijn eerder gemaakt door een gegevensstroom en vervolgens opnieuw gebruikt.

Berekende entiteiten kunnen worden gemaakt door te verwijzen naar een entiteit in dezelfde gegevensstroom of door te verwijzen naar een entiteit die is gemaakt in een andere gegevensstroom.

Computed entity.

Waarom een berekende entiteit gebruiken?

Het uitvoeren van alle transformatiestappen in één entiteit kan traag zijn. Er kunnen veel redenen zijn voor deze vertraging: de gegevensbron kan traag zijn of de transformaties die u uitvoert, moeten mogelijk worden gerepliceerd in twee of meer query's. Het kan handig zijn om eerst de gegevens van de bron op te nemen en deze vervolgens opnieuw te gebruiken in een of meer entiteiten. In dergelijke gevallen kunt u ervoor kiezen om twee entiteiten te maken: een entiteit die gegevens ophaalt uit de gegevensbron, en een andere, een berekende entiteit, die aanvullende transformaties toepast op gegevens die al zijn geschreven in de data lake die door een gegevensstroom wordt gebruikt. Dit kan de prestaties en hergebruik van gegevens verbeteren, waardoor tijd en resources worden bespaard.

Als twee entiteiten bijvoorbeeld zelfs een deel van hun transformatielogica delen, zonder een berekende entiteit, moet de transformatie tweemaal worden uitgevoerd.

Image showing transformation of data occurring twice.

Als er echter een berekende entiteit wordt gebruikt, wordt het gemeenschappelijke (gedeelde) deel van de transformatie eenmaal verwerkt en opgeslagen in Azure Data Lake Storage. De resterende transformaties worden vervolgens verwerkt vanuit de uitvoer van de gemeenschappelijke transformatie. Over het algemeen is deze verwerking veel sneller.

Image showing common transformations done once in the computed entity, and stored in the data lake, and the remaining unique tranformations occurring later.

Een berekende entiteit biedt één plaats als broncode voor de transformatie en versnelt de transformatie omdat deze slechts eenmaal hoeft te worden uitgevoerd in plaats van meerdere keren. De belasting van de gegevensbron wordt ook verminderd.

Voorbeeldscenario voor het gebruik van een berekende entiteit

Als u een geaggregeerde tabel in Power BI bouwt om het gegevensmodel te versnellen, kunt u de geaggregeerde tabel maken door te verwijzen naar de oorspronkelijke tabel en er extra transformaties op toe te passen. Met deze methode hoeft u uw transformatie niet te repliceren van de bron (het deel dat afkomstig is van de oorspronkelijke tabel).

In de volgende afbeelding ziet u bijvoorbeeld een entiteit Orders.

Orders entity.

Met behulp van een verwijzing van deze entiteit kunt u een berekende entiteit maken.

Creating a computed entity.

Afbeelding die laat zien hoe u een berekende entiteit maakt op basis van de entiteit Orders. Klik eerst met de rechtermuisknop op de entiteit Orders in het deelvenster Query's, selecteer de verwijzingsoptie in de vervolgkeuzelijst, waarmee de berekende entiteit wordt gemaakt, die hier wordt hernoemd in Orders geaggregeerd.

De berekende entiteit kan verdere transformaties hebben. U kunt bijvoorbeeld Group By gebruiken om de gegevens op klantniveau samen te voegen.

Image showing the Customer column in the Orders aggregated entity emphasized.

Dit betekent dat de samengevoegde entiteit Orders gegevens ophaalt uit de entiteit Orders en niet opnieuw uit de gegevensbron. Omdat sommige transformaties die moeten worden uitgevoerd al zijn uitgevoerd in de entiteit Orders, zijn de prestaties beter en is gegevenstransformatie sneller.

Berekende entiteit in andere gegevensstromen

U kunt ook een berekende entiteit maken in andere gegevensstromen. Het kan worden gemaakt door gegevens op te halen uit een gegevensstroom met de Microsoft Power Platform-gegevensstroomconnector.

<Get data from Power Platform dataflows>

Afbeelding benadrukt de Connector voor Power Platform-gegevensstromen uit het Power Query gegevensbronvenster te kiezen, met een beschrijving waarin wordt aangegeven dat één gegevensstroomentiteit kan worden gebouwd op basis van de gegevens uit een andere gegevensstroomentiteit, die al in de opslag is opgeslagen.

Het concept van de berekende entiteit bestaat uit het behouden van een tabel in de opslag en andere tabellen die hiervan afkomstig zijn, zodat u de leestijd van de gegevensbron kunt verminderen en enkele algemene transformaties kunt delen. Dit kan worden bereikt door gegevens van andere gegevensstromen op te halen via de gegevensstroomconnector of door te verwijzen naar een andere query in dezelfde gegevensstroom.

Berekende entiteit: Met transformaties of zonder?

Nu u weet dat berekende entiteiten geweldig zijn voor het verbeteren van de prestaties van de gegevenstransformatie, is een goede vraag om te stellen of transformaties altijd moeten worden uitgesteld naar de berekende entiteit of dat ze moeten worden toegepast op de bronentiteit. Dat wil gezegd, moeten gegevens altijd worden opgenomen in één entiteit en vervolgens worden getransformeerd in een berekende entiteit? Wat zijn de voor- en nadelen?

Gegevens laden zonder transformatie voor tekst-/CSV-bestanden

Wanneer een gegevensbron geen ondersteuning biedt voor het vouwen van query's (zoals tekst-/CSV-bestanden), is er weinig voordeel bij het toepassen van transformaties bij het ophalen van gegevens uit de bron, met name als gegevensvolumes groot zijn. De bronentiteit moet alleen gegevens uit het tekstbestand/CSV-bestand laden zonder transformaties toe te passen. Vervolgens kunnen berekende entiteiten gegevens ophalen uit de bronentiteit en de transformatie uitvoeren op de opgenomen gegevens.

U kunt vragen, wat is de waarde van het maken van een bronentiteit die alleen gegevens opneemt? Een dergelijke entiteit kan nog steeds nuttig zijn, omdat als de gegevens uit de bron in meer dan één entiteit worden gebruikt, de belasting van de gegevensbron wordt verminderd. Daarnaast kunnen gegevens nu opnieuw worden gebruikt door andere personen en gegevensstromen. Berekende entiteiten zijn vooral nuttig in scenario's waarin het gegevensvolume groot is of wanneer een gegevensbron wordt geopend via een on-premises gegevensgateway, omdat ze het verkeer van de gateway en de belasting van gegevensbronnen daarachter verminderen.

Enkele algemene transformaties uitvoeren voor een SQL tabel

Als uw gegevensbron ondersteuning biedt voor het vouwen van query's, is het handig om enkele transformaties in de bronentiteit uit te voeren, omdat de query wordt gevouwen naar de gegevensbron en alleen de getransformeerde gegevens worden opgehaald. Dit verbetert de algehele prestaties. De set transformaties die gemeenschappelijk zullen zijn in downstream berekende entiteiten moeten worden toegepast in de bronentiteit, zodat ze kunnen worden gevouwen naar de bron. Andere transformaties die alleen van toepassing zijn op downstreamentiteiten, moeten worden uitgevoerd in berekende entiteiten.