Best practices voor het ontwerpen en ontwikkelen van complexe gegevensstromen
Als de gegevensstroom die u ontwikkelt steeds groter en complexer wordt, zijn er enkele dingen die u kunt doen om uw oorspronkelijke ontwerp te verbeteren.
Opbreken in meerdere gegevensstromen
Doe niet alles in één gegevensstroom. Niet alleen maakt één complexe gegevensstroom het gegevenstransformatieproces langer, maar maakt het ook moeilijker om de gegevensstroom te begrijpen en opnieuw te gebruiken. U kunt uw gegevensstroom ops delen in meerdere gegevensstromen door entiteiten in verschillende gegevensstromen of zelfs één entiteit in meerdere gegevensstromen te scheiden. U kunt het concept van een berekende entiteit of gekoppelde entiteit gebruiken om een deel van de transformatie in de ene gegevensstroom te bouwen en deze opnieuw te gebruiken in andere gegevensstromen.
Gegevensstromen voor gegevenstransformatie splitsen uit faserings-/extractiegegevensstromen
Een aantal gegevensstromen alleen voor het extraheren van gegevens (dat wil zeggen fasering van gegevensstromen) en andere alleen voor het transformeren van gegevens is niet alleen nuttig voor het maken van een meerlaagsearchitectuur, maar is ook nuttig voor het verminderen van de complexiteit van gegevensstromen. Sommige stappen extraheren alleen gegevens uit de gegevensbron, zoals wijzigingen in gegevens, navigatie en gegevenstype. Door de faseringsgegevensstromen en transformatiegegevensstromen te scheiden, kunt u uw gegevensstromen eenvoudiger ontwikkelen.
Afbeelding van gegevens die worden geëxtraheerd uit een gegevensbron naar faseringsgegevensstromen, waarbij de entiteiten worden opgeslagen in Dataverse- of Azure Data Lake-opslag. Vervolgens worden de gegevens verplaatst naar transformatiegegevensstromen waar de gegevens worden getransformeerd en geconverteerd naar de datawarehouse-structuur, waarna de gegevens naar de gegevensset worden verplaatst.
Aangepaste functies gebruiken
Aangepaste functies zijn handig in scenario's waarin een bepaald aantal stappen moet worden uitgevoerd voor een aantal query's uit verschillende bronnen. Aangepaste functies kunnen worden ontwikkeld via de grafische interface in Power Query Editor of met behulp van een M-script. Functies kunnen opnieuw worden gebruikt in een gegevensstroom in zoveel entiteiten als nodig is.
Een aangepaste functie helpt door slechts één versie van de broncode te gebruiken, zodat u de code niet hoeft te dupliceren. Als gevolg hiervan is het veel eenvoudiger Power Query transformatielogica en de hele gegevensstroom te onderhouden. Zie voor meer informatie het volgende blogbericht: Custom Functions Made Easy in Power BI Desktop.

Query's in mappen plaatsen
Door mappen voor query's te gebruiken, kunt u gerelateerde query's groepeert. Bij het ontwikkelen van de gegevensstroom moet u wat meer tijd besteden aan het rangschikken van query's in mappen die zinvol zijn. Met deze methode kunt u in de toekomst eenvoudiger query's vinden en is het onderhouden van de code veel eenvoudiger.
Berekende entiteiten gebruiken
Berekende entiteiten maken uw gegevensstroom niet alleen begrijpelijker, ze bieden ook betere prestaties. Wanneer u een berekende entiteit gebruikt, halen de andere entiteiten waarnaar wordt verwezen gegevens op uit een 'al verwerkte en opgeslagen' entiteit. De transformatie is veel eenvoudiger en sneller.
Profiteren van de verbeterde berekeningsen engine
Voor gegevensstromen die zijn ontwikkeld in Power BI-beheerportal, moet u gebruikmaken van de verbeterde berekeningsen engine door eerst joins uit te voeren en transformaties te filteren in een berekende entiteit voordat u andere typen transformaties gaat uitvoeren.
Veel stappen op te breken in meerdere query's
Het is moeilijk om een groot aantal stappen in één entiteit bij te houden. In plaats daarvan moet u een groot aantal stappen in meerdere entiteiten ops delen. U kunt Laden inschakelen voor andere query's gebruiken en uitschakelen als het tussenliggende query's zijn en alleen de uiteindelijke entiteit via de gegevensstroom laden. Wanneer u meerdere query's met kleinere stappen in elk ervan hebt, is het eenvoudiger om het afhankelijkheidsdiagram te gebruiken en elke query bij te houden voor verder onderzoek, in plaats van honderden stappen in één query te spitten.
Eigenschappen voor query's en stappen toevoegen
Documentatie is de sleutel tot het gebruik van eenvoudig te onderhouden code. In Power Query kunt u eigenschappen toevoegen aan de entiteiten en ook aan stappen. De tekst die u aan de eigenschappen toevoegt, wordt als knopinfo weergeven wanneer u de muisaanwijzer over die query of stap beweegt. Aan de hand van deze documentatie kunt u uw model in de toekomst onderhouden. In één oogopslag naar een tabel of stap kunt u zien wat er daar gebeurt, in plaats van opnieuw te kijken en te onthouden wat u in die stap hebt gedaan.
Zorg ervoor dat de capaciteit zich in dezelfde regio
Gegevensstromen bieden momenteel geen ondersteuning voor meerdere landen of regio's. De Premium-capaciteit moet zich bevinden in dezelfde regio als uw Power BI-tenant.
Scheid on-premises bronnen van cloudbronnen
U wordt aangeraden een afzonderlijke gegevensstroom te maken voor elk type bron, zoals on-premises, cloud, SQL Server, Spark en Dynamics 365. Het scheiden van gegevensstromen per brontype vereendigt snelle probleemoplossing en voorkomt interne limieten wanneer u uw gegevensstromen vernieuwt.
Gegevensstromen scheiden op basis van de geplande vernieuwing die vereist is voor entiteiten
Als u een verkooptransactietabel hebt die elk uur wordt bijgewerkt in het bronsysteem en u een tabel voor producttoewijzing hebt die elke week wordt bijgewerkt, moet u deze twee gegevensstromen opspabelen in twee gegevensstromen met verschillende schema's voor gegevensvernieuwing.
Vermijd het plannen van vernieuwing voor gekoppelde entiteiten in dezelfde werkruimte
Als uw gegevensstromen die gekoppelde entiteiten bevatten regelmatig worden vergrendeld, kan dit worden veroorzaakt door een overeenkomstige, afhankelijke gegevensstroom in dezelfde werkruimte die is vergrendeld tijdens het vernieuwen van de gegevensstroom. Dergelijke vergrendeling biedt transactionele nauwkeurigheid en zorgt ervoor dat beide gegevensstromen correct worden vernieuwd, maar het kan voorkomen dat u ze bewerkt.
Als u een afzonderlijk schema voor de gekoppelde gegevensstroom in stelt, kunnen gegevensstromen onnodig worden vernieuwd en kunt u de gegevensstroom niet bewerken. Er zijn twee aanbevelingen om dit te voorkomen:
- Stel geen vernieuwingsschema in voor een gekoppelde gegevensstroom in dezelfde werkruimte als de brongegevensstroom.
- Als u een vernieuwingsschema afzonderlijk wilt configureren en het vergrendelingsgedrag wilt voorkomen, verplaatst u de gegevensstroom naar een afzonderlijke werkruimte.