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.
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.
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.
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.
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.
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
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 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
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.