Aanbevolen procedures voor het maken van een dimensional model met behulp van gegevensstromen

Het ontwerpen van een dimensional model is een van de meest voorkomende taken die u met een gegevensstroom kunt uitvoeren. In dit artikel worden enkele aanbevolen procedures beschreven voor het maken van een dimensional model met behulp van een gegevensstroom.

Faseringsgegevensstromen

Een van de belangrijkste punten in een gegevensintegratiesysteem is het verminderen van het aantal leesbewerkingen van het operationele bronsysteem. In de traditionele architectuur voor gegevensintegratie wordt deze reductie uitgevoerd door een nieuwe database te maken die een faseringsdatabase wordt genoemd. Het doel van de faseringsdatabase is het laden van gegevens zoals ze zijn uit de gegevensbron in de faseringsdatabase volgens een regelmatig schema.

De rest van de gegevensintegratie gebruikt vervolgens de faseringsdatabase als bron voor verdere transformatie en conversie naar de dimensionale modelstructuur.

We raden u aan dezelfde benadering te volgen met behulp van gegevensstromen. Maak een set gegevensstromen die verantwoordelijk zijn voor het laden van gegevens zoals ze zijn uit het bronsysteem (en alleen voor de tabellen die u nodig hebt). Het resultaat wordt vervolgens opgeslagen in de opslagstructuur van de gegevensstroom (Azure Data Lake Storage of Dataverse). Deze wijziging zorgt ervoor dat de leesbewerking van het bronsysteem minimaal is.

Vervolgens kunt u andere gegevensstromen maken die hun gegevens uit faseringsgegevensstromen halen. De voordelen van deze aanpak zijn onder andere:

  • Het aantal leesbewerkingen van het bronsysteem verminderen en als gevolg hiervan de belasting van het bronsysteem verminderen.
  • De belasting van gegevensgateways verminderen als er een on-premises gegevensbron wordt gebruikt.
  • Het hebben van een tussenliggende kopie van de gegevens voor afstemmingsdoeleinden, voor het geval de bronsysteemgegevens veranderen.
  • De transformatiegegevensstromen brononafhankelijk maken.

Faseringsgegevensstromen.

Afbeelding waarin de nadruk wordt op faseringsgegevensstromen en faseringsopslag, en waarin de gegevens worden weergegeven die worden geopend vanuit de gegevensbron door de faseringsgegevensstroom en entiteiten die worden opgeslagen in Cadavers of Azure Data Lake Storage. De entiteiten worden vervolgens samen met andere gegevensstromen getransformeerd, die vervolgens als query's worden verzonden.

Transformatiegegevensstromen

Wanneer u uw transformatiegegevensstromen hebt gescheiden van de faseringsgegevensstromen, is de transformatie onafhankelijk van de bron. Deze scheiding is handig als u het bronsysteem migreert naar een nieuw systeem. In dat geval hoeft u alleen de faseringsgegevensstromen te wijzigen. De transformatiegegevensstromen werken waarschijnlijk probleemloos, omdat ze alleen afkomstig zijn uit de faseringsgegevensstromen.

Deze scheiding helpt ook als de verbinding met het bronsysteem traag is. De transformatiegegevensstroom hoeft niet lang te wachten op het ophalen van records via een trage verbinding van het bronsysteem. De faseringsgegevensstroom heeft dat deel al gedaan en de gegevens zijn klaar voor de transformatielaag.

Afbeelding vergelijkbaar met de vorige afbeelding, behalve dat transformaties worden benadrukt en de gegevens naar het datawarehouse worden verzonden.

Gelaagde architectuur

Een gelaagde architectuur is een architectuur waarin u acties in afzonderlijke lagen uitvoert. De faserings- en transformatiegegevensstromen kunnen twee lagen van een meerlaagse gegevensstroomarchitectuur zijn. Het uitvoeren van acties in lagen zorgt voor het minimale onderhoud dat nodig is. Als u iets wilt wijzigen, hoeft u dit alleen te wijzigen in de laag waarin het zich bevindt. De andere lagen moeten allemaal goed blijven werken.

In de volgende afbeelding ziet u een meerlaagse architectuur voor gegevensstromen waarin de entiteiten vervolgens worden gebruikt in Power BI-gegevenssets.

architectuur met meerdere lagen.

Een berekende entiteit zoveel mogelijk gebruiken

Wanneer u het resultaat van een gegevensstroom in een andere gegevensstroom gebruikt, gebruikt u het concept van de berekende entiteit, wat betekent dat u gegevens ophaalt uit een entiteit die al is verwerkt en opgeslagen. Hetzelfde kan gebeuren in een gegevensstroom. Wanneer u vanuit een andere entiteit verwijst naar een entiteit, kunt u de berekende entiteit gebruiken. Dit is handig als u een set transformaties hebt die moeten worden uitgevoerd in meerdere entiteiten, die algemene transformaties worden genoemd.

Berekende entiteit die afkomstig is van een gegevensbron die wordt gebruikt voor het verwerken van algemene transformaties.

In de vorige afbeelding haalt de berekende entiteit de gegevens rechtstreeks op uit de bron. In de architectuur van faserings- en transformatiegegevensstromen is het echter waarschijnlijk dat de berekende entiteiten afkomstig zijn uit de faseringsgegevensstromen.

Berekende entiteit afkomstig uit gegevensstromen die worden gebruikt voor het verwerken van algemene transformaties.

Een stervormig schema maken

Het beste dimensionale model is een stervormig schemamodel met dimensies en feitentabellen die zijn ontworpen op een manier om de hoeveelheid tijd voor het uitvoeren van query's op de gegevens uit het model te minimaliseren, en maakt het ook gemakkelijk te begrijpen voor de gegevens visualiserende functie.

Het is niet ideaal om gegevens in dezelfde indeling van het operationele systeem in een BI-systeem te brengen. De gegevenstabellen moeten opnieuw worden aangepast. Sommige tabellen moeten de vorm hebben van een dimensietabel, waarin de beschrijvende informatie behouden blijft. Sommige tabellen moeten de vorm hebben van een feitentabel, om de geaggregeerde gegevens te behouden. De beste indeling voor feitentabellen en dimensietabellen om te vormen, is een stervormig schema. Meer informatie: Stervormig schema en het belang voor Power BI

Stervormige schemaafbeelding van een feitentabel, omgeven door dimensietabellen, in de vorm van een vijfpuntige ster.

Een unieke sleutelwaarde gebruiken voor dimensies

Wanneer u dimensietabellen maakt, moet u ervoor zorgen dat u voor elke tabel een sleutel hebt. Deze sleutel zorgt ervoor dat er geen veel-op-veel-relaties (of met andere woorden, 'zwakke') relaties tussen dimensies zijn. U kunt de sleutel maken door een transformatie toe te passen om ervoor te zorgen dat een kolom of een combinatie van kolommen unieke rijen in de dimensie retourneert. Vervolgens kan die combinatie van kolommen worden gemarkeerd als een sleutel in de entiteit in de gegevensstroom.

Een kolom markeren als sleutelwaarde.

Een incrementele vernieuwing uitvoeren voor grote feitentabellen

Feitentabellen zijn altijd de grootste tabellen in het dimensionale model. U wordt aangeraden het aantal rijen voor deze tabellen te verminderen. Als u een zeer grote feitentabel hebt, moet u ervoor zorgen dat u incrementeel vernieuwen gebruikt voor die entiteit. Een incrementeel vernieuwen kan worden uitgevoerd in de Power BI-gegevensset en ook in de gegevensstroomentiteiten.

U kunt incrementeel vernieuwen gebruiken om slechts een deel van de gegevens te vernieuwen, het deel dat is gewijzigd. Er zijn meerdere opties om te kiezen welk deel van de gegevens moet worden vernieuwd en welk deel moet worden behouden. Meer informatie: Incrementeel vernieuwen gebruiken met Power BI-gegevensstromen

Incrementeel vernieuwen voor gegevensstromen.

Verwijzen naar dimensies en feitentabellen maken

In het bronsysteem hebt u vaak een tabel die u gebruikt voor het genereren van zowel feiten- als dimensietabellen in het datawarehouse. Deze tabellen zijn goede kandidaten voor berekende entiteiten en ook voor tussenliggende gegevensstromen. Het algemene deel van het proces, zoals het opschonen van gegevens en het verwijderen van extra rijen en kolommen, kan eenmaal worden uitgevoerd. Door een verwijzing uit de uitvoer van deze acties te gebruiken, kunt u de dimensie- en feitentabellen maken. Bij deze benadering wordt de berekende entiteit gebruikt voor de algemene transformaties.

Afbeelding van een ordersquery met de verwijzingsoptie die wordt gebruikt om een nieuwe query te maken met de naam Orders geaggregeerd.