Hoe analyse werkt voor databronnen met meerdere tabellen die gebruikmaken van relaties
Het gebruik van een databron met meerdere, gerelateerde tabellen heeft invloed op de manier waarop analyses werken in Tableau. Omdat meerdere, gerelateerde tabellen onafhankelijke domeinen hebben en hun oorspronkelijke detailniveau behouden, geldt het volgende wanneer u velden naar de weergave sleept:
- Er worden query's uitgevoerd op het natuurlijke detailniveau van data.
- Er worden alleen query's uitgevoerd op data die relevant zijn voor een visualisatie.
- De relaties tussen de tabellen zijn van invloed op de resultaten van de query. De flow voor het maken van een visualisatie kan variëren afhankelijk van hoe tabellen en velden aan elkaar zijn gerelateerd in het datamodel, of van het feit dat ze niet direct gerelateerd zijn.
Bekijk deze video van 5 minuten voor een overzicht van verbeteringen in databronnen en een inleiding tot het gebruik van relaties.
Opmerking: De interface voor het bewerken van relaties die in deze video en in dit onderwerp wordt getoond, wijkt enigszins af van de huidige versie, maar heeft dezelfde functionaliteit.
Leer meer over hoe relaties werken in Laat u niet afschrikken door relaties en deze Tableau-blogposts:
- Relaties, deel 1: Introductie van nieuwe datamodellering in Tableau (in het Engels)(Link wordt in een nieuw venster geopend)
- Relaties, deel 2: Tips en trucs (in het Engels)(Link wordt in een nieuw venster geopend)
- Relaties, deel 3: Vragen stellen over meerdere gerelateerde tabellen (in het Engels)(Link wordt in een nieuw venster geopend)
Zie ook videopodcasts over relaties van Actieanalyses(Link wordt in een nieuw venster geopend), zoals Waarom heeft Tableau relaties uitgevonden?(Link wordt in een nieuw venster geopend) Klik op 'Videopodcast’ in de Bibliotheek(Link wordt in een nieuw venster geopend) om meer te zien.
In Tableau versie 2024.2 en hoger ondersteunt het Tableau-datamodel analyse op basis van meerdere feitentabellen en gedeelde dimensies via relaties tussen meerdere feiten. Zie Over datamodellen met relaties tussen meerdere feiten(Link wordt in een nieuw venster geopend), Wanneer een model met relaties tussen meerdere feiten gebruiken(Link wordt in een nieuw venster geopend) en Een datamodel maken met relaties tussen meerdere feiten(Link wordt in een nieuw venster geopend) voor meer informatie.
Opmerking: U kunt nog steeds databronnen met één tabel maken in Tableau. U kunt een logische tabel samenstellen met een combinatie van joins, verenigingen, aangepaste SQL, enzovoort. Het functioneren van analyses met één tabel in Tableau is niet veranderd. Analyse van één logische tabel die een combinatie van dimensies en meetwaarden bevat, werkt net als in Tableau-versies vóór 2020.2.
Overwegingen voor analyse
Relaties valideren
Er zijn verschillende opties om uw datamodel te valideren voor analyse. Bij het maken van het model voor uw databron raden we u aan naar een werkblad te gaan, die databron te selecteren en vervolgens een visualisatie te bouwen om de aantallen records, verwachte data, niet-overeenkomende waarden, null-waarden of herhaalde meetwaarden te bekijken. Probeer met velden in verschillende tabellen te werken om ervoor te zorgen dat alles er zo uitziet als u voor ogen had.
Let bijvoorbeeld op het volgende:
- Gebruiken uw relaties in het datamodel de juiste overeenkomende velden voor hun tabellen?
- Zou het toevoegen van meerdere overeenkomende veldparen de relatie nauwkeuriger maken?
- Wat gebeurt er als u verschillende dimensies en meetwaarden in de weergave sleept?
- Ziet u het verwachte aantal rijen?
- Als u een van de standaardinstellingen in de Instellingen voor prestatieopties hebt gewijzigd, zijn de waarden die u in de visualisatie ziet wat u zou verwachten? Als dat niet het geval is, kunt u de instellingen controleren of de standaardinstellingen herstellen.
Opties voor het valideren van relaties en het datamodel:
- Elke tabel bevat een telling van het aantal records, in de vorm van een veld met de naam TabelNaam(Aantal), op het detailniveau van die tabel. Sleep het veld Aantal naar de weergave om het aantal voor een tabel te zien. Als u het aantal voor alle tabellen wilt zien, selecteert u het veld Aantal voor elke tabel in het deelvenster Data en klikt u op de teksttabel in Laten zien.
- Klik op Data weergeven in het deelvenster Data om het aantal rijen en data per tabel weer te geven. Voordat u relaties gaat maken, kan het ook handig zijn om de data uit de databron voor of tijdens de analyse te bekijken, zodat u een idee krijgt van de scope van elke tabel. Zie Onderliggende data weergeven voor meer informatie.
- Sleep dimensies naar rijen om het aantal rijen in de statusbalk te zien. Als u niet-overeenkomende waarden wilt zien, klikt u op het menu Analyse en selecteert u Lay-out tabel > Lege rijen weergeven of Lege kolommen weergeven. U kunt ook verschillende meetwaarden naar de weergave slepen, zoals <UwTabel>(Aantal) uit een van de tabellen in uw visualisatie. Zo ziet u alle waarden van de dimensies uit die tabel.
Tip: u kunt de prestatieregistratie in Tableau Desktop gebruiken als u de query's wilt zien die voor relaties worden gegenereerd.
- Klik op het menu Help en selecteer vervolgens Instellingen en prestaties > Prestatieregistratie starten.
- Sleep velden naar de weergave om uw visualisatie samen te stellen.
- Klik op het menu Help en selecteer vervolgens Instellingen en prestaties > Prestatieregistratie stoppen. De werkmap Prestatieregistratie wordt automatisch geopend.
- Klik in het dashboard Prestatiesamenvatting onder Gebeurtenissen gesorteerd op tijd op een 'Query wordt uitgevoerd'-balk en bekijk de query eronder.
Een andere, meer geavanceerde optie is het gebruik van de Tableau Log Viewer(Link wordt in een nieuw venster geopend) op GitHub. Met behulp van end-protocol.query
kunt u filteren op een specifiek trefwoord. Ga naar de Tableau Log Viewer-wikipagina(Link wordt in een nieuw venster geopend) op GitHub voor meer informatie.
Visualisaties met alleen dimensies
Als u bij het gebruik van een databron met meerdere tabellen en gerelateerde tabellen een visualisatie met alleen dimensies bouwt, gebruikt Tableau binnenste joins en ziet u niet het volledige, niet-overeenkomende domein.
Als u gedeeltelijke combinaties van dimensiewaarden wilt bekijken, kunt u:
- Lege rijen/kolommen weergeven gebruiken om alle mogelijke rijen te zien. Klik op het menu Analyse en selecteer vervolgens Lay-out tabel > Lege rijen weergeven of Lege kolommen weergeven. Houd er rekening mee dat deze instelling ook verdichting voor de velden Datum en Numerieke bin activeert, wat mogelijk ongewenst is.
- U kunt een meetwaarde, zoals <YourTable>(Aantal), vanuit een van de tabellen in uw visualisatie aan de weergave toevoegen. Dit zorgt ervoor dat u alle waarden van de dimensies uit die tabel ziet.
Zie ook Verrassend gedrag van niet-overeenkomende waarden en Problemen in de analyse met meerdere tabellen oplossen voor meer informatie.
Wanneer LOD-berekeningen en -expressies gebruiken
Omdat Tableau het detailniveau (LOD) van uw invoertabellen begrijpt, hoeft u geen LOD-berekeningen te gebruiken om ongewenste duplicatie als gevolg van joins te verwijderen.
U kunt LOD-berekeningen nog steeds gebruiken om:
- Ongewenste duplicatie in uw brontabellen te verhelpen.
- Aggregaties op meerdere niveaus te berekenen (bijvoorbeeld een gemiddelde over een som)
- Een cohortanalyse uit te voeren (bijvoorbeeld om de eerste besteldatum voor elke klant te berekenen)
Als de dimensionaliteit van een LOD-berekening velden uit één tabel bevat, wordt die LOD-berekening weergegeven in de bijbehorende tabel in het deelvenster Data.
Voorbeelden van analyse met meerdere tabellen
De volgende reeks voorbeelden laat zien hoe data kunnen worden opgevraagd in meerdere, gerelateerde tabellen. Deze databron met meerdere tabellen bevat een korte lijst met rollen van acteurs in verschillende films.
Een rij in de tabel Appearances (Rollen) betekent dat een Actor (Acteur) een bepaald Character (Personage) in een specifieke Movie (Film) speelde. In deze dataset kan een Actor (Acteur) nul of meer Appearances (Rollen) hebben.
Leer meer over hoe relaties werken in deze Tableau-blogposts:
- Relaties, deel 1: Introductie van nieuwe datamodellering in Tableau (in het Engels)(Link wordt in een nieuw venster geopend)
- Relaties, deel 2: Tips en trucs (in het Engels)(Link wordt in een nieuw venster geopend)
Voorbeeld 1: Analyse van één vraag in samengevoegde data versus gerelateerde data
Wanneer u verbinding maakte met data in Tableau vóór versie 2020.2, kon uw databron bestaan uit één enkele tabel, of uit meerdere tabellen die waren samengevoegd of verenigd tot één enkele, gedenormaliseerde tabel. Vanaf Tableau 2020.2 herkent en bewaart Tableau genormaliseerde data voor databronnen met meerdere tabellen, waarbij de tabeldata gescheiden blijven en elke tabel het oorspronkelijke detailniveau behoudt. De volgende voorbeelden laten zien hoe de analyse verschilt tussen databronnen met één tabel en databronnen met meerdere tabellen.
In dit voorbeeld ziet u drie tabellen met filmdata: Appearances (Rollen), Actors (Acteurs) en Movies (Films).
Deze tabellen kunnen worden samengevoegd, waarbij de tabel Appearances (Rollen) wordt samengevoegd met de tabel Actors (Acteurs) op Actor = Actor en met de tabel Movies (Films) op Movie = Movie. Als de joins volledige buitenste joins zijn, zodat er geen rijen verloren gaan, ziet de uiteindelijke uitvoer er als volgt uit. Houd er rekening mee dat velden die in de JOIN-componenten worden gebruikt, tweemaal voorkomen.
Data die op deze manier in één tabel worden samengebracht, worden gedenormaliseerd of afgevlakt genoemd.
Deze samengevoegde data zijn afgevlakte data. Elke rij bestaat uit de rol van een acteur als personage in een film (John Rhys-Davies heeft dus twee rijen voor The Return of the King omdat hij twee personages speelde). Daarom ligt de granulariteit van de data op het niveau van een personage in een film. Informatie die relevant is in meerdere rijen wordt gedupliceerd. De premièredatum van The Return of the King is twee keer aanwezig omdat er twee personages uit die film in de dataset voorkomen. De lengte van John Rhys-Davies wordt vijf keer vermeld omdat er voor hem als acteur 5 unieke combinaties van personage en film zijn.
Deze afgevlakte data hebben dus enkele kenmerken om rekening mee te houden. Als u bijvoorbeeld de lengte van acteurs wilt plotten op basis van de gemiddelde bruto-omzet van hun films, zou u ervan uit kunnen gaan dat we de Height (Lengte) naar kolommen en de Gross (Bruto-omzet) naar rijen kunnen verplaatsen en vervolgens het gemiddelde van de Gross (Bruto-omzet) kunnen nemen. Maar als u dat doet, ziet de standaardweergave er niet goed uit. Hier wordt gesteld dat John Rhys-Davies 925 cm lang is, meer dan 9 meter!
Dit komt omdat de standaardaggregatie SUM is. Er zijn 5 rijen in de data voor hem, dus we krijgen vijf keer zijn werkelijke lengte van 185 cm. U kunt dit oplossen door de aggregatie voor Height (Lengte) te wijzigen, bijvoorbeeld naar gemiddeld of minimum. Dit retourneert effectief de waarde voor slechts één rij (aangezien ze allemaal hetzelfde zijn).
Wanneer u de aggregatie wijzigt, zijn de lengtes veel realistischer. Maar nu gaan we kijken naar de gemiddelde bruto-omzet. We zagen dat Tableau alle vijf de rijen in aanmerking neemt voor de lengte van John Rhys-Davies. De gemiddelde bruto-omzet voor de films waarin hij speelde, moet niet het gemiddelde van vijf rijen zijn, maar het gemiddelde van drie films. U wilt de bruto-omzet voor The Return of the King niet twee keer tellen, alleen maar omdat hij er twee personages in speelde. Maar is dat wat er gebeurt?
Als we even snel rekenen, zouden de Lord of the Rings-films een gemiddelde van (869 + 923 + 1119)/3 moeten hebben, dus 970,3 $. De waarde in het spreidingsdiagram is echter 990,6 $. Het huidige gemiddelde is afkomstig van de vijf rijen (869 + 923 + 923 + 1119 + 1119)/5.
Dit is niet zoals bij het probleem met de lengte eenvoudig op te lossen door de aggregatie te wijzigen. U moet een Level of Detail (LOD)-expressie gebruiken om te wijzigen naar welk detailniveau Tableau kijkt, waarbij u wijzigt van het standaardniveau Appearances (Rollen) naar het niveau Movie (Film). U kunt voor LOD-Bruto-omzet een berekening maken met {FIXED [Film] : MIN([Bruto-omzet (USD miljoen)])} en vervolgens het gemiddelde van het nieuwe veld LOD Gross (Bruto-omzet) nemen voor onze weergave.
De LOD-expressie kan worden gelezen als 'retourneer voor elke film de minimum bruto-omzet'. Hiermee wordt het duplicatieprobleem opgelost, omdat de bruto-omzet altijd per film wordt geretourneerd, ook al is de weergave opgebouwd met film en acteur.
Nu kloppen de cijfers. John Rhys-Davies is 185 cm lang en de gemiddelde brutowaarde voor zijn films in deze dataset is 970,3. U moet begrijpen hoe data worden gerepliceerd en hoe Tableau de data aggregeert voor de weergave, voordat u er zeker van kunt zijn dat de juiste waarden worden geretourneerd.
Genormaliseerde data in meerdere tabellen
Het maken van relaties tussen logische tabellen lijkt misschien op het maken van joins, maar in plaats van de data af te vlakken in één tabel, met alle replicaties van dien, blijft Tableau zich bewust van de relaties tussen de tabellen. Uit elke tabel wordt Informatie gehaald op het juiste detailniveau en gerelateerd aan andere data.
Op de pagina Databron, ziet u niet de 'volledige' rasterweergave van de afgevlakte tabel. Die bestaat niet. Tableau behoudt alle drie de tabellen zoals ze zijn en legt alleen de relaties vast, waarbij de vereiste data worden samengevoegd zoals nodig is voor de weergave.
Om hetzelfde spreidingsdiagram te maken, sleept u Height (Lengte) en Gross (Bruto-omzet) naar de weergave en stelt u Gross (Bruto-omzet) in op gemiddeld. Dat is alles. Tableau kijkt naar de manier waarop de data van elke tabel gerelateerd zijn aan data uit andere gerelateerde tabellen en leidt hieruit af hoe de lengte moet worden weergegeven (per acteur) en hoe de gemiddelde bruto-omzet moet worden berekend (per film).
Voorbeeld 2: Dimensie van één tabel
Als de dimensies in de visualisatie uit één tabel komen, stuurt Tableau de query alleen naar die ene tabel en worden de resultaten voor het hele domein weergegeven. U kunt meetwaarden toevoegen en toch het hele domein zien.
Als u bijvoorbeeld de hierboven geïntroduceerde databron Movie Appearances (Filmrollen) gebruikt, resulteert het toevoegen van het veld Actor (Acteur) aan een visualisatie in de volgende visualisatie:
Omdat de enige dimensie in de visualisatie afkomstig is uit de tabel Actors (Acteurs), voert Tableau alleen een query uit op de tabel Actors. Alle acteurs die in de tabel Actors (Acteurs) voorkomen, worden in de visualisatie weergegeven, ongeacht of ze Appearances (Rollen) hebben.
Door het velden Appearance (Rol) en Actor (Acteur) als meetwaarde in de weergave te plaatsen en vervolgens een aggregatie COUNT toe te passen, ontstaat een weergave waarin het aantal rollen van de acteurs wordt weergegeven. Merk op dat Sigourney Weaver geen rol heeft, maar dat haar naam nog steeds in de weergave staat.
Voorbeeld 3: Dimensies van meerdere tabellen
Als de dimensies in de weergave uit meerdere tabellen komen, zoekt Tableau de tabel die alle dimensies met elkaar in verband brengt en toont het domein uit die tabel. Als gevolg hiervan veranderen sommige dimensiewaarden die u in Voorbeeld 1 zag.
Als u bijvoorbeeld een veld uit de tabel Movies (Films) naar de visualisatie sleept, wordt de query gewijzigd. Omdat de tabellen Movies (Films) en Actors (Acteurs) aan elkaar gerelateerd zijn door de tabel Appearances (Rollen), retourneert de query alleen de paren Actor/Movie die voorkomen in de tabel Appearances.
Omdat Sigourney Weaver geen rollen in deze dataset heeft (en dus niet gerelateerd is aan een van de films in de dataset), laat de visualisatie van acteur/film-paren haar niet zien:
Voorbeeld 4: Meetwaarden die niet door een dimensie kunnen worden gesplitst
Als een meetwaarde niet door een dimensie kan worden gesplitst, repliceert Tableau de meetwaarde voor die dimensie.
De volgende visualisatie toont de totale bruto-omzet per Movie (Film). Omdat beide velden afkomstig zijn uit de tabel Movies (Films), zal Tableau alleen query's uitvoeren op de tabel Movies.
De tabel Movies (Films) bevat de reeds verzamelde bruto-inkomsten voor elke film, zoals weergegeven in de volgende visualisatie (de bruto-omzet voor Infinity War was niet beschikbaar op het moment dat deze dataset werd gemaakt en wordt weergegeven als nul).
Als u Actor (Acteur) aan deze visualisatie toevoegt, weet Tableau dat het de Movie Gross (Film, Bruto-omzet) niet per Acteur kan uitsplitsen, omdat deze meer gedetailleerde informatie niet beschikbaar is in het datamodel. In plaats daarvan toont Tableau de Movie Gross (Film, Bruto-omzet) voor elke film, gerepliceerd voor alle acteurs.
Voorbeeld 5: Dimensie die niet hiërarchisch gerelateerd is aan een meetwaarde
Door de dimensie Movie (Film) uit de vorige visualisatie te verwijderen, wordt de som van de meetwaarde Movie Gross (Film, Bruto-omzet) voor elke acteur opgevraagd. Het resultaat is de geaggregeerde Movie Gross (Film, Bruto-omzet) voor elke film waarin de acteur een rol had.
In dit geval is er geen hiërarchische relatie tussen de dimensie, Actor (Acteur), en de meetwaarde, Movie Gross (Film, Bruto-omzet). Er kunnen meerdere acteurs in dezelfde film zijn verschenen. Benedict Cumberbatch en Chris Hemsworth verschenen bijvoorbeeld allebei in Dr. Strange. In dit geval neemt Tableau de Movie Gross (Film, Bruto-omzet) voor Dr. Strange op in de totalen van beide acteurs.
Omdat dezelfde waarde voor Movie Gross (Film, Bruto-omzet) is opgenomen in de totalen van meerdere acteurs, zal Tableau deze waarden niet direct optellen.
Wanneer er echter totalen voor deze visualisatie worden weergegeven, berekent Tableau de totale Movie Gross (Film, Bruto-omzet) correct zonder films dubbel op te nemen.
Problemen in de analyse met meerdere tabellen oplossen
De volgende situaties zijn mogelijk bij gerelateerde tabellen met meerdere tabellen. In deze tabel worden bekende scenario's en beschrijvingen op hoog niveau beschreven voor het oplossen van problemen met uw analyse.
Analysesituatie | Beschrijving | |
---|---|---|
Binnenste join voor visualisaties met alleen dimensies | Mogelijk ziet u niet meteen alle waarden die u verwachtte wanneer u meerdere dimensies aan dezelfde weergave toevoegt. Of u merkt dat het toevoegen van een nieuwe dimensie aan de visualisatie vanuit een andere tabel ervoor zorgt dat sommige waarden uit de visualisatie verdwijnen. Tableau gebruikt query's die de combinatie van waarden behouden die daadwerkelijk in de data voorkomen. Dit betekent dat u rijen ziet die zouden worden geproduceerd door een binnenste join van de tabellen die dimensies aan de visualisatie leveren. Als u gedeeltelijke combinaties van de dimensiewaarden wilt zien, kunt u Lege rijen/kolommen weergeven inschakelen om alle mogelijke rijen te zien, of u kunt een meetwaarde, zoals <MyTable>(Aantal), toevoegen uit een van de tabellen in de weergave, om ervoor te zorgen dat u alle waarden van de dimensies uit die tabel ziet. | |
Constanten in berekeningen | In een databron met meerdere tabellen gedragen constante waarden zich alsof ze uit hun eigen tabel met één rij komen. Als u een constante waarde aggregeert, gedraagt deze zich alsof de aggregatie zich op één rij bevindt. Sum(10) zal altijd gelijk zijn aan 10. Avg(10) zal ook altijd gelijk zijn aan 10. Aantal(10) zal altijd gelijk zijn aan 1. Om compatibiliteit met eerdere versies te garanderen, gedragen constante waarden in een databron met één logische tabel zich alsof de constante waarde wordt gerepliceerd voor elke waarde in de tabel. Constanten in berekeningen op rijniveau veranderen het detailniveau van de berekening op rijniveau niet. De berekening [Verkoop] + 10 zal zich gedragen alsof deze uit dezelfde tabel komt als het veld [Verkoop]. | |
Buitenste join forceren | Tableau zorgt ervoor dat alle meetwaarden in de visualisatie worden weergegeven (samen met alle combinaties van dimensiewaarden die daadwerkelijk in de data voorkomen). Als u er dus zeker van wilt zijn dat u alle mogelijke waarden in uw data ziet, inclusief 'niet-overeenkomende null-waarden', kunt u dit doen door meetwaarden vanuit elke tabel in het werkblad in de weergave te zetten. | |
Ik zie niet de meetwaarden die ik zou verwachten van een berekening over meerdere tabellen | Het domein van een berekening is de binnenste join van de invoerdata. Als er geen overeenkomende waarden zijn in alle invoerdata van de meetwaardeberekening, worden deze niet opgenomen in de meetwaardeberekening. Overweeg een LOD-berekening te gebruiken om de meetwaarden naar hetzelfde object te verplaatsen voordat u de berekening op rijniveau maakt. | |
Berekening om te schakelen tussen velden uit verschillende logische tabellen levert onverwachte resultaten op | Als u een berekening hebt die schakelt tussen velden op rijniveau, met behulp van een CASE-instructie, IF-instructie of een functie als 'IFNULL', ziet u mogelijk onverwachte resultaten omdat deze berekening wordt berekend voor elke rij, waarbij rij de binnenste join is binnen de invoer van de berekening. Een betere aanpak is om te schakelen tussen Geaggregeerde waarden, in plaats van te proberen te schakelen binnen de berekening op rijniveau. Dit levert ook betere prestaties op in scenario's met één tabel. Aangezien dit alleen een probleem is voor berekeningen die zich tussen tabellen uitstrekken, zal het gebruik van LOD-berekeningen om alle velden naar dezelfde tabel te brengen ook werken. Gebruik niet: SUM(
IF [Parameter] == "Foo" THEN [Field 1] ELSE [Field 2] END
)
Gebruik dit: IF [Parameter] == "Foo" THEN SUM([Field 1]) ELSE SUM([Field 2]) END | |
Onverwachte, niet-overeenkomende null-waarden | Mogelijk ziet u meetwaarden die gekoppeld zijn aan een null-dimensiewaarde die u niet verwachtte. Dit kan mogelijk een teken zijn dat de relaties in de databron verkeerd zijn geconfigureerd. Het kan ook betekenen dat er niet-overeenkomende waarden zijn in de tabel die de meetwaarde bevat, en dat deze waarden geen overeenkomstige rij hebben in de dimensietabel. In het verleden gingen deze data mogelijk verloren als het verkeerde join-type werd geselecteerd. Wanneer u relaties gebruikt, blijven deze niet-overeenkomende waarden behouden. Als u de niet-overeenkomende waarden niet wilt zien, kunt u deze uitsluiten met een filter. | |
Onjuist geaggregeerde waarden | Maakt u gebruik van relaties of joins? Bij relaties worden aggregaties standaard correct berekend. Wanneer u joins gebruikt, moet u mogelijk LOD-berekeningen maken om waarden te ontdubbelen. Hebt u prestatieopties verkeerd ingesteld voor relaties? Probeer de prestatieopties terug te zetten naar de standaardinstellingen en kijk of dat de juiste aggregaties oplevert. | |
Dimensies repliceren meetwaarden in plaats van ze te partitioneren. Dimensiefilters maken geen subsets van meetwaarden. | Controleer of de velden die worden gebruikt om relaties te definiëren correct zijn. | |
Tableau genereert te veel query's of query's met veel left joins | Controleer de logboeken of prestatieregistratie om te zien hoeveel query's er worden gegenereerd en hoeveel left joins er worden gebruikt. Met de nieuwe mogelijkheden voor datamodellering genereert Tableau query's met left joins en/of aanvullende query's om ervoor te zorgen dat niet-overeenkomende meetwaarden altijd in de visualisatie worden opgenomen. Als u de niet-overeenkomende waarden niet hoeft te zien, gebruikt u filters om de niet-overeenkomende (NULL)-waarden uit uw visualisatie te verwijderen. Dit zou in minder query's moeten resulteren. Als u weet dat uw data geen niet-overeenkomende waarden bevatten, kunt u de instelling Referentiële integriteit voor elke relatie instellen op 'Alle waarden komen overeen' in de prestatieopties. Ook dit zal resulteren in minder query's. U kunt ook de complexiteit van uw visualisatie verminderen om het aantal gegenereerde query's te verminderen. Het verwijderen van meetwaarden en het verbergen van filterbesturingselementen zijn belangrijke manieren om query's in meerdere tabellen met gerelateerde data te vereenvoudigen. | |
Query's hebben veel subquery's | Controleer de logboeken of prestatieregistratie om de complexiteit te zien van de query's die Tableau genereert. Tableau genereert indien nodig automatisch subquery's om data te ontdubbelen en zo correcte aggregaties te genereren. Dit is vergelijkbaar met query's die worden gegenereerd door LOD-berekeningen. Als u weet dat de relaties tussen de logische tabellen in uw data een veel-op-één- of één-op-één-kardinaliteit hebben, kunt u deze kardinaliteitsinformatie instellen in de prestatieopties voor de relatie. Hierdoor kan Tableau onnodige subquery's elimineren, omdat het weet dat er geen duplicatie kan plaatsvinden. | |
Ik gebruikte joins om data te filteren | In versie 2020.2 zal Tableau hard werken om niet-overeenkomende waarden te herstellen. Soms betekent dit dat er een left join wordt gebruikt, terwijl u mogelijk een binnenste join hebt opgegeven om data weg te filteren. Als u de niet-overeenkomende waarden wegfiltert die door deze join worden ingebracht, kan Tableau de query optimaliseren door deze terug te brengen naar een inner join. Afhankelijk van uw specifieke scenario kan het zinvol zijn om deze binnenste join te modelleren als een fysieke join binnen een logische tabel. Dit is vooral krachtig als een tabel met meetwaarden wordt gebruikt om een dimensietabel te filteren, omdat er geen extra replicatie van meetwaarden wordt geïntroduceerd. |