Best practices voor het maken van een dimensionaal model met behulp van gegevensstromen
Het ontwerpen van een dimensionaal model is een van de meest voorkomende taken die u met een gegevensstroom kunt uitvoeren. In dit artikel worden enkele van de best practices beschreven voor het maken van een dimensionaal model met behulp van een gegevensstroom.
Faseringsgegevensstromen
Een van de belangrijkste punten in elk systeem voor gegevensintegratie is het verminderen van het aantal leesgegevens uit het operationele bronsysteem. In de traditionele architectuur voor gegevensintegratie wordt deze vermindering uitgevoerd door een nieuwe database te maken die een faseringsdatabase wordt genoemd. Het doel van de faseringsdatabase is om gegevens volgens een vast schema vanuit de gegevensbron in de faseringsdatabase te laden.
De rest van de gegevensintegratie gebruikt vervolgens de faseringsdatabase als bron voor verdere transformatie en converteert deze 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 vanaf 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 bronen. De voordelen van deze benadering zijn:
- Het aantal leesbewerkingen van het bronsysteem verminderen en als gevolg hiervan de belasting van het bronsysteem verminderen.
- Het verminderen van de belasting van gegevensgateways als een on-premises gegevensbron wordt gebruikt.
- Een tussenliggende kopie van de gegevens voor afstemmingsdoeleinden, voor het geval de bronsysteemgegevens veranderen.
- De transformatiegegevensstromen onafhankelijk maken van de bron.
Afbeelding met nadruk op faseringsgegevensstromen en faseringsopslag, met de gegevens die worden gebruikt 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.
Gegevensstromen transformeren
Wanneer u uw transformatiegegevensstromen hebt gescheiden van de faseringsgegevensstromen, is de transformatie onafhankelijk van de bron. Deze scheiding helpt bij het migreren van het bronsysteem naar een nieuw systeem. In dat geval hoeft u alleen de faseringsgegevensstromen te wijzigen. De transformatiegegevensstromen werken waarschijnlijk zonder problemen, 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 om records te krijgen die afkomstig zijn van een trage verbinding van het bronsysteem. De faseringsgegevensstroom heeft dat deel al gedaan en de gegevens zijn gereed voor de transformatielaag.

Gelaagde architectuur
Een gelaagde architectuur is een architectuur waarin u acties in afzonderlijke lagen kunt uitvoeren. De faserings- en transformatiegegevensstromen kunnen twee lagen van een gegevensstroomarchitectuur met meerdere lagen zijn. Het uitvoeren van acties in lagen zorgt voor het minimale onderhoud dat is vereist. Als u iets wilt wijzigen, hoeft u deze alleen maar te wijzigen in de laag waarin deze zich bevindt. De andere lagen zouden allemaal goed moeten blijven werken.
In de volgende afbeelding ziet u een architectuur met meerdere lagen 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 op moet halen uit een 'al verwerkte en opgeslagen' entiteit. Hetzelfde kan gebeuren in een gegevensstroom. Wanneer u verwijst naar een entiteit van een andere entiteit, kunt u de berekende entiteit gebruiken. Dit is handig wanneer 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 uit de bron op. In de architectuur van faserings- en transformatiegegevensstromen zijn de berekende entiteiten echter waarschijnlijk afkomstig uit de faseringsgegevensstromen.

Een sterschema bouwen
Het beste dimensionale model is een sterschemamodel met dimensies en feitentabellen die zijn ontworpen om de hoeveelheid tijd te minimaliseren die nodig is om query's uit te voeren op de gegevens van het model, en die het ook gemakkelijk te begrijpen maakt voor de gegevensvisualiseerder.
Het is niet ideaal om gegevens in dezelfde indeling van het operationele systeem in een BI-systeem te zetten. De gegevenstabellen moeten opnieuw worden gemodelleerd. Sommige tabellen moeten de vorm hebben van een dimensietabel, die de beschrijvende informatie behoudt. Sommige tabellen moeten de vorm hebben van een feitentabel om de aggregateerbare gegevens te behouden. De beste indeling voor feitentabellen en dimensietabellen die moeten worden vorm gegeven, is een sterschema. Meer informatie: Inzicht in sterschema's en het belang voor Power BI

Een unieke sleutelwaarde gebruiken voor dimensies
Zorg er bij het bouwen van dimensietabellen voor dat u een sleutel voor elke tabel 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.

Incrementeel vernieuwen voor grote feitentabellen
Feitentabellen zijn altijd de grootste tabellen in het dimensionale model. U wordt aangeraden het aantal rijen te verminderen dat voor deze tabellen wordt overgedragen. Als u een zeer grote feitentabel hebt, zorg er dan voor dat u incrementeel vernieuwen gebruikt voor die entiteit. 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 gedeelte dat is gewijzigd. Er zijn meerdere opties om te kiezen welk deel van de gegevens moet worden vernieuwd en welk deel moet worden persistent. Meer informatie: Incrementeel vernieuwen gebruiken met Power BI gegevensstromen

Verwijzen naar het maken van dimensies en feitentabellen
In het bronsysteem hebt u vaak een tabel die u gebruikt voor het genereren van feiten- en dimensietabellen in het datawarehouse. Deze tabellen zijn goede kandidaten voor berekende entiteiten en ook tussenliggende gegevensstromen. Het algemene deel van het proces, zoals het ops schoonen van gegevens en het verwijderen van extra rijen en — — kolommen, kan één keer worden uitgevoerd. Met behulp van een verwijzing uit de uitvoer van deze acties kunt u de dimensie- en feitentabellen maken. Bij deze benadering wordt de berekende entiteit gebruikt voor de algemene transformaties.
