In deze tweede blog over het bereiken van een andere mindset als je bedrijfstools wilt veranderen, wil ik het hebben over het creëren van een extra numerieke kolom als relatiekolom tussen tabellen. Als je meer wilt weten over genormaliseerde tabellen, lees dan mijn eerste blog over dit onderwerp. Als u binnen uw Power BI-model verbinding […]
In deze tweede blog over het bereiken van een andere mindset als je bedrijfstools wilt veranderen, wil ik het hebben over het creëren van een extra numerieke kolom als relatiekolom tussen tabellen. Als je meer wilt weten over genormaliseerde tabellen, lees dan mijn eerste blog over dit onderwerp.
Als u binnen uw Power BI-model verbinding kunt maken met een relationele database, is er meestal geen probleem. Onderdeel van de tabel is een numerieke kolom die speciaal voor relaties is gemaakt. Voeg die kolom toe aan uw modelsjabloon en meestal bent u klaar om te gaan. Als u de importsjabloon kunt aanpassen om deze kolommen te leveren, moet u dit zeker doen!
Maar niet iedereen heeft zo’n luxepositie. Als de enige manier om uw gegevens te verkrijgen het gebruik van een voorbereide sjabloondownload is, zonder de mogelijkheid om de originele tabel te downloaden, moet u zelf zorgen voor het maken van een dimensie- (of filter)tabel, inclusief de genormaliseerde, numerieke kolom. We beginnen met een verkooptabel, opgeslagen in CSV-formaat.
Opmerking. Gegevens uit een sjabloon kunnen gegevens in verschillende formaten ophalen en opslaan. Het populairste downloadformaat is Excel. Ik raad u aan om uw downloadformaat te wijzigen naar CSV- of tekstformaat. Als u zich realiseert dat de hoeveelheid gegevens geen probleem is binnen apps als Power BI of Power Pivot in Excel, maakt u liever een rapport over meerdere jaren en gebaseerd op het laagste hiërarchische niveau, in vergelijking met het gecomprimeerde rapport van één jaar. in traditioneel Excel. Als u een Excel-sjabloon gebruikt, bent u beperkt tot 1.048.576 rijen, terwijl tekst in CSV-formaat deze beperking niet heeft.
Nu heb je meerdere opties. Als u een dimensie- of filtertabel wilt maken en de feitentabel wilt aanpassen, heeft u in principe twee verschillende manieren: handmatig of automatisch gemaakte tabellen. Ik zal beide opties bespreken, maar vooraf zal ik stellen dat handenarbeid altijd vermeden moet worden.
Als u het heeft over het handmatig maken van een dimensietabel, kunt u de tabel maken in Excel of een ander programma dat gestructureerde gegevens kan verwerken, bijvoorbeeld een databasegebaseerde toepassing zoals Access of SharePoint-lijst.
Om de dimensietabel te maken, kunt u de tabel in Excel importeren en alle kolommen verwijderen, behalve de Kolom Productnaam.
Vervolgens wilt u dat deze kolom unieke waarden bevat. Je kunt deze actie handmatig uitvoeren, maar met veel data is dat geen duurzame optie. Gebruik daarom de optie Duplicaten verwijderen.
Typ 1 in de kolom na de eerste gegevensrij en gebruik de vulgreep om een uniek nummer naar de tabel te kopiëren.
Nu kunt u een eenvoudige VERT.ZOEKEN gebruiken om de ProductID aan de oorspronkelijke feitentabel toe te voegen.
Er zijn nadelen aan deze methode. Allereerst is handmatige interactie de belangrijkste bron van fouten, omdat u elke keer dat u een vernieuwing uitvoert alle acties op dezelfde manier moet herhalen. Deze optie kost u ongetwijfeld tijd in vergelijking met een automatisch proces. Het tweede probleem is dat u de kolom ProductName wilt verwijderen, omdat deze wordt vervangen door de PorductID. In Excel is dit niet mogelijk, omdat de VLOOKUP-berekening deze kolom gebruikt. Al met al kom je met deze methode nergens. Het laatste probleem is al eerder genoemd. Als uw feit meer dan een miljoen rijen bevat, wordt het Excel-blad volledig gevuld, waarbij het overschot aan rijen wordt genegeerd.
Laten we dus eens kijken hoe dit kan werken met behulp van Power Query in Power BI. U kunt dezelfde resultaten bereiken in Power Query in Excel als u de resultaten in het gegevensmodel (Power Pivot) plaatst om de problemen met het probleem van één miljoen rijen te voorkomen.
Ik heb het Sales.csv-bestand geopend in Power Query.
De volgende stap is het maken van een duplicaat van de tabel en het hernoemen van de query in Producten.
Nu selecteert u de kolom ProductName en Remove Other Columns.
Verwijder vervolgens duplicaten.
En voeg ten slotte een Index-kolom toe, beginnend bij 1.
In de volgende stappen voegt u de ProductId toe aan de tabel Sales met behulp van samenvoegquery’s (Ribbon Start).
En vouw de kolom Producten uit.
Omdat Power Query niet afhankelijk is van berekeningen, kunt u de kolom ProductName prima verwijderen.
U gebruikt de kolommen ProductId in beide tabellen binnen het Datamodel om de relatie aan te maken en te gebruiken.
Deze methode wordt herhaald elke keer dat u een (handmatige of automatische) vernieuwing uitvoert. Als u meerdere feitentabellen heeft, voegt u de verschillende feitentabellen samen tot één tabel en herhaalt u vervolgens de bovengenoemde acties. Er zijn ook enkele kleine achterstandsgroepen. Ten eerste heb je eigenlijk niet veel controle over het indexnummer, aangezien dit bij elke vernieuwing wordt vernieuwd. Omdat u het nummer opnieuw samenvoegt in de vernieuwingscyclus, waarin het nummer opnieuw wordt toegepast. Het andere nadeel kan de lange wachttijd zijn als er grote feitentabellen bij betrokken zijn tijdens het vernieuwen. Maar nogmaals, in de productiefase (en daar wil je snelheid en geen wachttijd) zal een kolom met numeriek type veel sneller presteren in vergelijking met een kolom met teksttype.
In mijn volgende blog bespreek ik de verschillen in de opslag van data. De keuzes die ik graag bespreek zijn het opslaan in (aparte) Excel-bestanden, SharePoint (online)lijsten, Power BI-modellen of in DataFlows.