Over datamodellen met relaties op basis van meerdere feitentabellen
Met relaties op basis van meerdere feitentabellen kunt u databronnen bouwen met meer dan één basistabel. Door meerdere basistabellen in uw datamodel te gebruiken, kunt u analyses op meerdere feiten uitvoeren in Tableau.
Door tabelbomen te creëren die in een basistabel zijn geworteld, kunt u datastructuren met verschillende conceptuele domeinen modelleren, en hun gedeelde kenmerken gebruiken om ze met elkaar te verbinden. Dit type analyse wordt vaak aangeduid als analyse van meerdere feiten, conforme dimensies of gedeelde dimensies. In Tableau noemen we dit een datamodel met relaties op basis van meerdere feitentabellen, omdat u relaties gebruikt om het model te bouwen. Een datamodel met relaties op basis van meerdere feitentabellen bevat altijd meerdere basistabellen. Basistabellen zijn de uiterst linkse tabellen in het datamodel. Raadpleeg Wanneer een model met relaties op basis van meerdere feitentabellen gebruiken voor richtlijnen over het bepalen van de tabellen die u als basistabellen gaat gebruiken.
Niveaus van verwantschap
Datamodellen met meerdere basistabellen bieden veel flexibiliteit wat betreft de manier waarop stukjes data zich al dan niet met elkaar kunnen verhouden.
Opmerking: verwantschap op elk niveau is alleen relevant in datamodellen met meerdere basistabellen. Vóór datamodellen met relaties op basis van meerdere feitentabellen was hetzij alles gerelateerd (in één databron), hetzij niets (meerdere databronnen).
Verwantschap in het datamodel
Tabellen zijn gerelateerd, niet-gerelateerd of gedeeld op basis van de structuur van het datamodel. In een databron is de verwantschap van tabellen een constante. In het kort:
- Gerelateerde tabellen bevinden zich in dezelfde boom.
- Vóór 2024.2 hadden alle databronnen één basistabel, bestaande uit één boom. In een databron met één basistabel zijn alle tabellen gerelateerd.
- Niet-gerelateerde tabellen bevinden zich in verschillende bomen. Basistabellen zijn nooit aan elkaar gerelateerd. Tabellen die zich downstream van precies één basistabel bevinden, hebben ook geen relatie met tabellen in andere bomen.
- Gedeelde tabellen hebben meerdere inkomende relaties en behoren tot meer dan één boom.
- Tabellen downstream van een tabel met meerdere inkomende relaties worden ook als gedeeld beschouwd.
Verwantschap tijdens analyse
Velden kunnen gerelateerd, niet gerelateerd, nog niet gerelateerd of ambigu gerelateerd zijn, of ze kunnen fungeren als samenhechtingsvelden. De onderlinge relaties tussen een groep velden worden per blad bepaald op basis van de structuur van het datamodel, welke velden actief in gebruik zijn (ofwel als velden op de containers staan) en of die velden dimensies dan wel meetwaarden zijn.
Om een visualisatie te maken met velden uit meerdere tabellen, moet Tableau achter de schermen joins uitvoeren om de waarden te berekenen. Welk type join wordt gebruikt, is afhankelijk van de verwantschap van de velden. In het kort:
- Wanneer gerelateerde velden worden gebruikt in een visualisatie, worden dimensies via inner joins verbonden en worden meetwaarden uitgesplitst per dimensie.
- Het is iets ingewikkelder dan dat: er zijn misschien extra joins achter de schermen nodig om te garanderen dat geen meetwaarden worden verwijderd. Maar in een visualisatie met alleen dimensies worden gerelateerde dimensies via inner joins verbonden, en dat is hier het hoofdconcept.
- Dit is hetzelfde gedrag als modellen met één basistabel.
- Wanneer niet-gerelateerde velden worden gebruikt in een visualisatie, worden dimensies via cross joins verbonden. Meetwaarden zijn tabelgericht (dat wil zeggen lokaal geaggregeerd tot één waarde voor de hele tabel) en worden herhaald.
- Het is ook mogelijk dat velden ambigu of nog niet gerelateerd zijn, wat betekent dat er voor de combinatie van actieve velden meerdere manieren zijn om de relaties tussen de betreffende tabellen op te lossen. Als Tableau op onduidelijkheid stuit, worden de velden als niet-gerelateerd beschouwd.
- Wanneer velden worden samengehecht op basis van een gedeeld veld, worden dimensies via outer joins verbonden. Meetwaarden worden geaggregeerd op het niveau van elke dimensie waarin ze kunnen worden uitgesplitst en worden mogelijk herhaald.
- Samenhechtingsdimensies zijn vergelijkbaar met koppelingsvelden bij datacombinatie. De resultaten worden berekend voor elk paar gerelateerde velden. Vervolgens worden de niet-gerelateerde waarden samengehecht over de gedeelde waarden van de dimensie die tussen hen wordt gedeeld.
Al deze concepten en definities worden verderop in dit onderwerp gedetailleerder besproken.
Meetwaarden zijn in Tableau aggregaties: ze worden geaggregeerd tot de granulariteit die is ingesteld door de dimensies in de weergave. De waarde van een meetwaarde hangt dus af van de context van de dimensies. 'Aantal dozen ontbijtgranen' hangt er bijvoorbeeld van af of we de totale voorraad bedoelen of het aantal dozen per merk.
Dimensies zijn meestal categorievelden, zoals land of merk. In Tableau bepalen dimensies de granulariteit, oftewel het detailniveau, van de weergave. Meestal willen we onze data in markeringen groeperen op basis van een combinatie van categorieën. Welke dimensies we gebruiken om de weergave op te bouwen, bepaalt hoeveel markeringen we hebben.
Wanneer een meetwaarde zonder dimensies wordt gebruikt, is deze zogenaamd tabelgericht. Dit betekent dat de waarde de volledig geaggregeerde waarde voor de hele tabel is. Zodra we een dimensie zoals merk in de visualisatie gebruiken, wordt de meetwaarde gedetailleerder uitgesplitst. Het totale aantal ontbijtgranendozen wordt nu per merk weergegeven.
Aggregatie verwijst naar de manier waarop de data worden gecombineerd. De standaardaggregatie van Tableau is SUM. U kunt de aggregatie wijzigen in andere opties, waaronder: gemiddeld, mediaan, aantal uniek, minimum enzovoort. Granulariteit verwijst naar hoe gedetailleerd of uitgesplitst de meetwaarde is, wat wordt bepaald door de dimensies. Tenzij de granulariteit van de meetwaarde op rijniveau (ofwel uitgesplitst) is, moet de betreffende waarde worden geaggregeerd.
Voorbeeld
Wat is de waarde van 'Aantal dozen ontbijtgranen'?
Dat hangt af van het aggregatietype en de granulariteit zoals bepaald door de dimensies.
- Aggregaties:
- Sum (of totaal)
- Gemiddeld
- Granulariteit:
- Tabelgericht/volledig geaggregeerd (de blauwe balken in het voorbeeld)
- Uitgesplitst op dimensie Merk (de gekleurde balken in het voorbeeld)
Indicatoren voor verwantschap op veldniveau
Er zijn verschillende visuele aanwijzingen die u kunnen helpen de mate van verwantschap te begrijpen van de velden die u in een analyse gebruikt.
Verwantschapsindicatoren op een werkblad
- Pictogram Niet-gerelateerd: Tableau gebruikt het pictogram Niet-gerelateerd om aan te geven dat niet alles in de weergave gerelateerd is. Als u het pictogram Niet-gerelateerd op een veld in de weergave of in het deelvenster Data ziet, kunt u de muisaanwijzer op het pictogram plaatsen om meer informatie te krijgen.
- Het bijbehorende pictogram geeft aan dat het veld niet-gerelateerde velden samenhecht.
- Lichtgrijze veldnamen: veldnamen worden weergegeven in lichtgrijze tekst in het deelvenster Data als ze niet gerelateerd zijn aan velden die op containers worden gebruikt. U kunt deze velden nog steeds gebruiken voor analyse in die visualisatie, maar niet-gerelateerde velden worden in de analyse anders geëvalueerd dan velden die wel gerelateerd zijn. Als u deze velden aanwijst met de muisaanwijzer wordt ook het pictogram Niet-gerelateerd weergegeven.
Opmerking: in eerdere versies van Tableau gaven lichtgrijze veldnamen aan dat de velden verborgen waren en Verborgen velden tonen geselecteerd was. Als verborgen velden worden weergegeven, worden deze nu aangeduid met een klikbaar oogpictogram .
Waarschuwingsvenster voor verwantschap
Wanneer niet-gerelateerde velden samen in een visualisatie worden gebruikt, toont Tableau een waarschuwingsvenster om u te laten weten dat de velden niet gerelateerd zijn. Deze waarschuwing verschijnt telkens wanneer u een niet-gerelateerd veld toevoegt. Zo voorkomt u onbedoelde cross joins die de prestaties kunnen beïnvloeden.
- Als u niet-gerelateerde velden wilt gebruiken zonder samenhechting, klikt u op Toevoegen om verder te gaan met het toevoegen van het veld aan de visualisatie.
- Als u niet-gerelateerde velden wilt samenhechten, is het een goed idee om het samenhechtingsveld vóór een anderszins niet-gerelateerd veld te plaatsen. Het dialoogvenster wordt niet weergegeven als het samenhechtingsveld al in gebruik is. Zie Hoe joins worden gebruikt voor elk niveau van verwantschap voor meer informatie over het voorkomen van cross joins door middel van samenhechting.
Als er meerdere velden worden toegevoegd of reeds aanwezig zijn in de weergave, verschijnt het gebied Details in het dialoogvenster. Vouw het uit om meer informatie te zien over de verwantschap van alle gebruikte velden en om te identificeren waar het probleem met de niet-gerelateerdheid vandaan komt.
Selecteer de optie Dit niet nogmaals weergeven om het waarschuwingsbericht helemaal niet meer te laten verschijnen. U kunt deze waarschuwingsberichten als volgt altijd weer inschakelen:
- Open in Tableau Desktop het menu Help > Instellingen en prestaties > Genegeerde berichten resetten.
- Wis de cachegegevens in een browser. Open bijvoorbeeld in Chrome het menu met de drie puntjes > Browsegegevens verwijderen... > Kies Gecachete afbeeldingen en bestanden > Gegevens verwijderen.
Verwantschap op tabelniveau in het datamodel
In een datamodel met meerdere basistabellen definieert elke basistabel een reeks tabellen die gerelateerd zijn en een conceptuele boom vormen. Deze bomen moeten verbonden zijn door ten minste één gedeelde tabel om ervoor te zorgen dat de algehele databron één entiteit is.
Wat voorheen misschien twee databronnen waren die konden worden samengevoegd met behulp van koppelingsvelden, kan nu één databron zijn met twee bomen, verbonden door de gedeelde tabellen die deze gemeenschappelijke velden bevatten.
Tip: de manier waarop tabellen in het datamodel gerelateerd zijn, heeft invloed op de manier waarop hun velden in de analyse gerelateerd kunnen zijn. Het kan handig zijn om tijdens de analyse terug te gaan naar het tabblad Databron om te zien hoe een tabel in het algemene datamodel past.
Laten we aan de hand van deze voorbeelddatabron eens kijken welke tabellen respectievelijk gerelateerd, niet-gerelateerd of gedeeld zijn. Er zijn twee bomen, één bepaald door basistabel A en de andere door basistabel B.
Niet-gerelateerde tabellen
Basistabellen zijn in principe niet gerelateerd. Tabellen die slechts in één boom voorkomen, zijn niet gerelateerd aan tabellen in andere bomen.
Tabel A en tabel X zijn niet gerelateerd | Tabel B en tabel X zijn niet gerelateerd |
Gerelateerde tabellen
Tabellen in dezelfde boom worden als gerelateerd beschouwd.
Tabel A en tabel S zijn gerelateerd | Tabel B en tabel S zijn gerelateerd (via tabel A) |
Gedeelde tabellen
Gedeelde tabellen hebben meerdere binnenkomende relaties. Deze tabellen behoren tot meerdere bomen en worden door die bomen gedeeld.
Tabel S en tabel T worden gedeeld.
Verwantschap op veldniveau in de analyse
De onderlinge relaties tussen velden worden per blad bepaald op basis van de structuur van het datamodel, welke velden actief in gebruik zijn (dat wil zeggen welke velden in de visualisatie op containers staan) en of die velden dimensies dan wel meetwaarden zijn. Welke invloed de verwantschap van velden heeft op de resultaten van een visualisatie wordt behandeld in het volgende gedeelte.
Laten we enkele scenario's doornemen met dezelfde voorbeelddatabron. De naam van elk veld geeft aan uit welke tabel het afkomstig is, zoals veld B uit tabel B. Velden kunnen dimensies of meetwaarden zijn, tenzij anders aangegeven.
Gerelateerde velden
Op een hoog niveau zijn velden gerelateerd wanneer Tableau duidelijk kan bepalen hoe ze samen moeten worden geëvalueerd op basis van een relatiepad binnen een enkele boom.
Veld B (uit tabel B) en veld S (uit tabel S) zijn bijvoorbeeld gerelateerd.
Niet-gerelateerde velden
Op een hoog niveau zijn velden sowieso niet-gerelateerd als ze niet aan elkaar gerelateerd zijn. Dit kan komen doordat de velden uit niet-gerelateerde tabellen afkomstig zijn, bijvoorbeeld omdat er velden uit twee basistabellen worden gebruikt. In dat geval zijn velden uit verschillende basistabellen fundamenteel niet-gerelateerd.
Veld A en veld X zijn bijvoorbeeld niet-gerelateerd.
Velden kunnen gedurende een bepaalde periode ook als niet-gerelateerd worden beschouwd, bijvoorbeeld als ze ambigu of nog niet gerelateerd zijn. U kunt er in principe van op aan dat verwantschapsindicatoren u waarschuwen wanneer velden niet-gerelateerd zijn in de context van een visualisatie.
Samenhechtingsdimensie
Samenhechting is de manier waarop Tableau tijdens analyse velden van niet-gerelateerde tabellen in een datamodel met relaties op basis van meerdere feitentabellen evalueert. In een visualisatie worden niet-gerelateerde velden samengehecht door een dimensie uit een gedeelde tabel te gebruiken. De velden kunnen hierdoor tegelijkertijd worden geëvalueerd in dezelfde visualisatie. Dit is te beschouwen als het naast elkaar plaatsen van resultaten van twee bomen op basis van een dimensie die ze delen.
Als een visualisatie bijvoorbeeld is gebouwd met veld A en veld X, zijn deze twee velden niet gerelateerd. Door dimensie S toe te voegen, wordt een samenhechtingsveld geïntroduceerd.
- Veld A en dimensie S worden samen geëvalueerd.
- Veld X en dimensie S worden samen geëvalueerd.
- Die tussenresultaten worden bijeengebracht op basis van de waarden van dimensie S.
- Veld A en veld X zijn nu samengehecht.
Tip: het is best practice om een samenhechtingsveld in de visualisatie te gebruiken voordat u een niet-gerelateerd veld uitlicht. Versleep bijvoorbeeld eerst dimensie S, of veld A, gevolgd door dimensie S, gevolgd door veld X, in plaats van veld A, gevolgd door veld X, gevolgd door dimensie S. Door eerst het samenhechtingsveld toe te voegen, weet Tableau altijd hoe de relaties moeten worden geëvalueerd. Hierdoor vermijdt u mogelijke prestatieproblemen als gevolg van het samen evalueren van niet-gerelateerde dimensies en cross joins.
Voor samenhechting moet een dimensie uit een gedeelde tabel actief zijn in de visualisatie. Velden die op de container Filters of op de eigenschap Knopinfo van de kaart Markeringen zijn geplaatst, worden niet als actief beschouwd voor samenhechtingsdoeleinden.
Nog niet gerelateerde velden
Velden kunnen ook op meerdere manieren aan elkaar gerelateerd worden, maar dat nog niet zijn. Dit gebeurt wanneer er meerdere mogelijke relaties zijn tussen twee gedeelde tabellen (of downstream gedeelde tabellen).
Kijk naar veld S en veld T. De tabellen van deze velden zijn aan elkaar gerelateerd via de boom die wordt gedefinieerd door basistabel A en via de boom die wordt gedefinieerd door basistabel X.
In een visualisatie met alleen veld S en veld T is er geen informatie over welke boom moet worden gebruikt om ze aan elkaar te relateren. Zonder aanvullende informatie kan Tableau niet evalueren of deze velden moeten worden gerelateerd via de boom van basistabel A of de boom van basistabel B.
Veld S en veld T worden beschouwd als niet-gerelateerd, hoewel er meerdere potentiële relaties zijn.
Deze mogelijk-maar-nog-niet-gerelateerde velden worden geëvalueerd als niet-gerelateerde velden omdat Tableau hun relatiepad niet duidelijk kan bepalen. In tegenstelling tot velden die werkelijk niet-gerelateerd zijn en alleen samengehecht kunnen worden, kunnen velden die nog niet gerelateerd zijn, opgelost worden en kunnen de velden direct gerelateerd worden.
Ambigu gerelateerde velden
Velden kunnen ook ambigu gerelateerd zijn. Dit gebeurt wanneer er meerdere mogelijke actieve relaties zijn tussen gedeelde tabellen (of downstream gedeelde tabellen). In tegenstelling tot nog niet-gerelateerde velden, die als hypogerelateerd of ondergerelateerd kunnen worden beschouwd, zijn ambigu gerelateerde velden hypergerelateerd of overgerelateerd.
Kijk naar veld S en veld T. De tabellen van deze velden zijn aan elkaar gerelateerd via de boom die wordt gedefinieerd door basistabel A en via de boom die wordt gedefinieerd door basistabel X.
In een visualisatie met veld A, veld X, veld S en veld T is er te veel informatie om te beslissen welke boom moet worden gebruikt om ze aan elkaar te relateren. Zonder de informatie in te korten, kan Tableau niet evalueren of deze velden moeten worden gerelateerd via de boom van basistabel A of de boom van basistabel B.
Veld S en veld T worden beschouwd als niet-gerelateerd, hoewel er meerdere actieve relaties zijn.
Deze ambigu gerelateerde velden worden geëvalueerd als niet-gerelateerde velden omdat Tableau hun relatiepad niet duidelijk kan bepalen. In tegenstelling tot velden die werkelijk niet-gerelateerd zijn en alleen samengehecht kunnen worden, kunnen ambigu gerelateerde velden opgelost worden en kunnen de velden direct gerelateerd worden.
Meetwaarde uit een gedeelde tabel
Wanneer een dimensie uit een gedeelde tabel wordt gebruikt, hecht de dimensie velden uit de niet-gerelateerde upstreamtabellen samen. Een meetwaarde kan echter niet samenhechten en de waarde van een meetwaarde is afhankelijk van de bijbehorende dimensies.
In een visualisatie met dimensie A en dimensie X zijn deze twee dimensies niet gerelateerd. Als meetwaarde S uit tabel S wordt gehaald, is deze niet gerelateerd aan de combinatie van dimensie A en dimensie X. Hoewel de meetwaarde onafhankelijk aan beide dimensies gerelateerd kan zijn, kan deze niet tegelijkertijd aan beide gerelateerd zijn in dezelfde visualisatie.
Een gedeelde meetwaarde kan worden beschouwd als een vorm van ambiguïteit of overrelatie en wordt op dezelfde manier opgelost.
Onduidelijke relaties tussen velden oplossen
Wanneer er onduidelijkheid is over hoe velden aan elkaar gerelateerd moeten worden, neemt Tableau geen willekeurige beslissing, maar worden de velden als niet-gerelateerd beschouwd. Vaak is het beter om deze velden aan elkaar te relateren door de onduidelijkheid rondom welke boom gebruikt moet worden weg te nemen.
U lost nog niet gerelateerde velden op door een veld toe te voegen om vast te stellen welke boom moet worden gebruikt. U lost ambigu gerelateerde velden op door velden te verwijderen om vast te stellen welke boom moet worden gebruikt.
Voorbeeld:
Nog niet gerelateerd oplossen: een veld toevoegen
- Als een veld uit tabel A, B of C wordt toegevoegd aan een visualisatie van veld S en veld T, wordt de boom van basistabel A actief en wordt het gewenste pad tussen veld S en veld T opgelost.
- Als alternatief kan het gebruik van een veld uit tabel X het gewenste pad tussen veld S en veld T oplossen tot de boom van basistabel X.
Ambigu gerelateerd oplossen: een veld of velden verwijderen
- In een visualisatie van veld A, veld X, veld S en veld T zorgt het verwijderen van veld X ervoor dat alleen de boom van basistabel A actief wordt en het gewenste pad tussen veld S en veld T oplost.
- Als alternatief wordt door het verwijderen van veld A het gewenste pad tussen veld S en veld T via de boom van basistabel X opgelost.
Een gedeelde meetwaarde oplossen: een veld of velden verwijderen
- In een visualisatie van dimensie A, dimensie X en meetwaarde S zorgt het verwijderen van dimensie X ervoor dat alleen de boom van basistabel A actief wordt en het gewenste pad tussen dimensie A en meetwaarde S oplost.
- Als alternatief wordt door het verwijderen van dimensie A het gewenste pad tussen dimensie X en statistiek S via de boom van basistabel X opgelost.
Nog niet gerelateerd | Ambigu gerelateerd | Relatie opgelost tot één boom | |
Gerelateerd via basistabel A | Gerelateerd via basistabel X | ||
Het oplossen van onduidelijkheid is vergelijkbaar met het gebruik van een FIXED-LOD-expressie. In een FIXED-LOD-expressie instrueert u Tableau tot welk detailniveau moet worden geaggregeerd door de dimensiedeclaratie te definiëren. Onduidelijkheid wordt opgelost door de structuur van de visualisatie zodanig te veranderen dat slechts één boom actief wordt, waardoor Tableau wordt geïnstrueerd welke relatiepaden kunnen worden overwogen om de analyse uit te voeren.
Samenhechting versus het oplossen van onduidelijkheid
Zowel samenhechting als het oplossen van onduidelijkheid zijn manieren om niet-gerelateerdheid af te handelen, maar ze hebben verschillende uitkomsten:
Samenhechting | Onduidelijkheid oplossen |
Plaatst niet-gerelateerde velden naast elkaar op basis van gedeelde kenmerken | Bepaalt welk relatiepad wordt gebruikt wanneer er meerdere opties zijn (ambiguïteit of een gedeelde meetwaarde), of stelt een relatiepad vast waar zo'n pad nog niet bestond (nog niet gerelateerd). |
Gebruikt logica voor meerdere basistabellen om resultaten te berekenen | Gebruikt logica voor één basistabel om resultaten te berekenen |
Bij de analyse zijn niet-gerelateerde tabellen betrokken | Bij de analyse zijn gedeelde tabellen betrokken |
Hoe joins worden gebruikt voor elk niveau van verwantschap
Nadat de verwantschap op veldniveau is bepaald, moet Tableau de resultaten evalueren om de daadwerkelijke visualisatie te creëren. Welke query's worden gebruikt om de waarden in een visualisatie te berekenen, is afhankelijk van joins. Of velden gerelateerd, niet-gerelateerd dan wel samengehecht zijn, heeft een verschillende impact op welke joins worden uitgevoerd. Houd er rekening mee dat ambigu gerelateerde en nog niet gerelateerde velden in deze context als niet-gerelateerd worden behandeld.
Om verwantschap en joins uit te leggen, worden in dit gedeelte tabellen en de bijbehorende velden besproken, plus de waarden in deze velden. Bekijk het volgende datamodel met twee basistabellen, Classes en Clubs, en een gedeelde tabel, Students.
Classes | Clubs | Students |
Velden:
| Velden:
| Velden:
|
Dit zeer eenvoudige model illustreert hoe de join-logica op hoog niveau wordt berekend voor datamodellen met relaties op basis van meerdere feitenmodellen. Zie Hoe analyse werkt voor databronnen met meerdere tabellen die relaties gebruiken voor meer informatie over de basisprincipes van joins die worden gebruikt in datamodellen met één basistabel die op relaties zijn gebaseerd.
Het kan verleidelijk zijn dit datamodel met drie tabellen in te stellen als een model met één basistabel, als Classes-Students-Clubs of Clubs-Students-Classes, of met Students als basistabel. In de regel zijn datamodellen met relaties op basis van meerdere feitentabellen bedoeld voor specifieke soorten dataschema's of analysescenario's. Als uw datamodel kenmerken heeft die het meest geschikt zijn voor een datamodel met relaties op basis van meerdere feitentabellen, stel het dan als zodanig in om uw basistabellen conceptueel niet-gerelateerd te houden. Als uw data dit type structuur echter niet vereisen, kan een model met één basistabel eenvoudiger te gebruiken zijn.
In dit specifieke geval zijn meerdere basistabellen niet echt nodig voor deze tabellen, de data of het model. We gebruiken dit model als voorbeeld om het simpel te houden, zodat de focus kan liggen op de join-logica. Of u kunt zich voorstellen dat er nog een gerelateerde tabel is, Rooms (kamers), die we eenvoudigweg negeren om te voorkomen dat de discussie te ingewikkeld wordt.
Het is echter raadzaam alleen een model met relaties op basis van meerdere feitentabellen te gebruiken als uw data dit vereisen.
Gerelateerde dimensies gebruiken inner joins
Gerelateerde dimensies zijn verbonden via inner joins. Met inner joins worden alle dimensiewaarden verwijderd die niet door beide tabellen worden gedeeld.
- Tableau gebruikt aanvullende logica om ervoor te zorgen dat meetwaarden niet verloren gaan. In deze sectie worden alleen dimensies gebruikt om de basisprincipes te demonstreren van de manier waarop Tableau inner joins toepast op gerelateerde dimensies.
In het volgende voorbeeld ziet u hoe gerelateerde dimensies alleen rijen retourneren die aanwezig zijn in de data. Er bevinden zich geen studenten in de les Alarm Calls 101, dus deze is niet te vinden in de resultaten. Cardinal en Jay zitten in geen enkele les en zijn dus niet aanwezig in de resultaten.
Niet-gerelateerde dimensies gebruiken cross joins
Niet-gerelateerde dimensies (onafhankelijk, zonder samenhechtingsdimensie) zijn verbonden via cross joins.
Bij een cross join wordt elke waarde uit de ene dimensie gecombineerd met elke waarde uit de andere dimensie, zelfs als de resulterende combinatie niet daadwerkelijk in de data voorkomt. In dit voorbeeld voegt de cross join een rij toe voor elke mogelijke combinatie van Class en Club.
Het is belangrijk om in uw analyse te herkennen wanneer er sprake is van een cross-join. Hoewel er een rij is voor Advanced Songs + First Aid in de resultatentabel voor de cross join, zijn er feitelijk geen studenten in deze combinatie van activiteiten (het bewijs hiervan zien we in het samenhechtingsvoorbeeld in de volgende sectie).
Waarom is het belangrijk om te erkennen dat niet alle cross-join-resultaten op de data zijn gebaseerd? Stel u voor dat u een rooster voor lessen en clubs zodanig probeert op te stellen dat er voor geen conflicten voor studenten ontstaan. Er zijn geen studenten in Advanced Songs en First Aid, dus u kunt dit resultaat negeren en die les en club tegelijkertijd inplannen. De cross join vertegenwoordigt geen combinaties van waarden die daadwerkelijk in de data voorkomen.
Bovendien kunnen cross joins in geval van hoge kardinaliteit (een groot aantal unieke waarden) de prestaties beïnvloeden. Stel u voor dat u cross joins wilt maken van elk telefoonnummer met elk e-mailadres in uw contacten. Dat zou leiden tot een enorme explosie aan combinaties en een potentieel kostbare operatie.
Samengehechte dimensies gebruiken outer joins
Niet-gerelateerde dimensies – in de aanwezigheid van een samenhechtingsdimensie – zijn verbonden via outer joins.
In dit voorbeeld zijn zowel de tabel Classes als de tabel Clubs gerelateerd aan de gedeelde tabel Students, maar niet aan elkaar. De velden Class en Club zijn dus niet-gerelateerd. Door de Student-dimensie toe te voegen, weet Tableau welke waarden uit Class en welke waarden uit Club in de analyse naast elkaar moeten worden geplaatst. We noemen dit outer-join-gedrag samenhechting.
Samenhechting is vergelijkbaar met datacombinatie, omdat er tussenresultaten zijn die weer bijeen worden gebracht voor de totaalresultaten. In tegenstelling tot combinatie is samenhechting echter een outer join, geen left join, en worden aan geen van beide kanten waarden verwijderd. Er is geen concept van primaire of secundaire databronnen als het om één databron gaat, dus beide niet-gerelateerde velden krijgen gelijke prioriteit.
Tussenresultaten zijn verbonden met outer joins
Wat zit er in de outer join voor samengehechte velden? Er wordt beurtelings een onmiddellijke inner join berekend voor elk van de niet-gerelateerde velden en het samenhechtingsveld. Vervolgens worden deze tussenresultaten via een outer join verbonden op basis van de waarden van de samenhechtingsdimensie.
Voorbeeld
Een inner join voor Student en Class...
...en een inner join voor Student en Club...
...worden dan via een outer join verbonden op Student.
Extra joins om meetwaarden te behouden
Naast de joinlogica voor dimensies kunnen meetwaarden extra joins introduceren. Toen relaties voor het eerst in Tableau werden geïntroduceerd, was een van de kernprincipes dat meetwaarden niet verloren gaan. Dit principe wordt ook gehandhaafd in datamodellen met relaties op basis van meerdere feitentabellen.
De essentiële details zijn:
- Meetwaarden worden alleen uitgesplitst op gerelateerde dimensies.
- Meetwaarden worden herhaald voor niet-gerelateerde dimensies.
- Dimensiewaarden die in visualisaties met alleen dimensies zouden worden verwijderd, kunnen worden geretourneerd als er relevante meetwaarden aan zijn gekoppeld.
Opmerking: houd er rekening mee dat meetwaarden aggregaties zijn. Ze worden berekend op het detailniveau (de granulariteit) zoals bepaald door de combinatie van dimensies in de visualisatie. In dit verband wordt gesproken van een meetwaarde die is uitgesplitst op een dimensie. Wanneer een meetwaarde zonder dimensies wordt gebruikt, is deze zogenaamd tabelgericht. Dit betekent dat de waarde van de meetwaarde de volledig geaggregeerde waarde is. Zodra we een dimensie in de visualisatie gebruiken, wordt de meetwaarde gedetailleerder opgesplitst op basis van de dimensiewaarden. De waarde van een meetwaarde in een analyse hangt daarom af van de context van de dimensies.
Gerelateerde meetwaarden
Bekijk de subset van dimensiewaarden die worden geretourneerd voor een inner join op de gerelateerde dimensies Student en Class. Er zijn drie Student-waarden: Finch, Robin en Sparrow. Er zijn drie Class-waarden: Advanced Songs, Nesting Basics en Flying for Fledgelings.
Als we de meetwaarde Length uit de tabel Class toevoegen, zien we dat alle vier lessen worden weergegeven en dat er een Null-waarde is voor Student. Voor elke les wordt Length (duur) weergegeven op het niveau van Class.
Als we in plaats hiervan de meetwaarde Age uit de tabel Students toevoegen, zien we dat alle vijf studenten worden weergegeven en dat er twee Null-waarden zijn voor Class. Alle studenten blijven in de resultaten behouden, zelfs als ze niet aanwezig zijn in een les. Voor elke student wordt de leeftijd (Age) weergegeven op het niveau van Student.
Niet-gerelateerde meetwaarden
Meetwaarden worden herhaald voor niet-gerelateerde dimensiewaarden.
Als we kijken naar de meetwaarde Length uit de tabel Classes en de niet-gerelateerde dimensie Club, is de meetwaarde tabelgericht en wordt deze herhaald voor alle dimensiewaarden van Club.
Als er een samenhechtingsdimensie aanwezig is, kunnen meetwaarden zowel worden opgesplitst als herhaald.
De meetwaarde Age komt hier uit de tabel Students en is uitgesplitst op het niveau van Student. Elke keer dat een student wordt herhaald op basis van de dimensies voor Class en Club, wordt ook de Age-waarde herhaald.
Problemen oplossen
Overwegingen bij het werken met datamodellen met relaties op basis van meerdere feitentabellen
Extractfilters per tabel
Alle extractfilters voor een datamodelextract met relaties op basis van meerdere feitentabellen zijn per tabel (niet alomtegenwoordig). Hierdoor kunnen de filterresultaten tussen de live- en extractverbinding verschillen.
Berekeningen op rijniveau
Berekeningen op rijniveau kunnen alleen verwijzen naar velden die dezelfde upstream basistabel delen. Dat wil zeggen dat berekeningen op rijniveau niet voor meerdere bomen kunnen worden uitgevoerd.
Gecombineerde velden
Alle velden in een gecombineerd veld moeten een gemeenschappelijke upstream tabel hebben. Dat wil zeggen dat u geen gecombineerd veld kunt maken met velden die zich in verschillende bomen bevinden.
Sets
Sets kunnen alleen worden gemaakt met een definitie die velden omvat die dezelfde upstream basistabel delen. In een visualisatie kan de optie Toevoegen aan set echter beschikbaar zijn vanaf een markering wanneer die markering wordt gedefinieerd door velden die niet gerelateerd zijn aan de velden die worden gebruikt om de set te definiëren. Als u Toevoegen aan set kiest, voegt Tableau alleen de gerelateerde velden toe aan de setdefinitie. Dit wijkt af van het gedrag van Toevoegen aan set in databronnen met één basistabel, waarbij Toevoegen aan set alles toevoegt waardoor de markering wordt gedefinieerd.
INCLUDE-LOD-expressies valideren
INCLUDE-LOD-expressies kunnen niet worden geëvalueerd voor meerdere niet-gerelateerde velden. Omdat de verwantschap tussen velden blad voor blad wordt geëvalueerd, kan er een geldige LOD-expressie in het deelvenster Data of de berekeningseditor staan, die ongeldig wordt in de context van een specifieke visualisatie (in de aanwezigheid van een niet-gerelateerde dimensie). Wanneer dit gebeurt, wordt het LOD-veld rood. U kunt de LOD-expressie bijwerken om conflicten met niet-gerelateerde velden te verwijderen of de structuur van de visualisatie te wijzigen. U kunt de LOD-expressie ook uit de visualisatie te verwijderen.
Gepubliceerde databronnen bijwerken
U kunt het best een kopie maken van een bestaande gepubliceerde databron als u van plan bent deze in een datamodel met relaties op basis van meerdere feitentabellen te veranderen terwijl niet alle verbonden werkmappen het nieuwe datamodel nodig hebben. Werk de bestaande versie van de databron niet bij, tenzij alle bijbehorende werkmappen de nieuwe tabellen nodig hebben. Publiceer de gewijzigde databron als een nieuwe databron en maak er nieuwe werkmappen van. Hierdoor voorkomt u dat de bestaande werkmappen worden geconverteerd om VDS in plaats van een dataserver te gebruiken wanneer ze de functionaliteit niet nodig hebben, zodat er geen kans op prestatieverlies bestaat.
Opgeloste problemen
Opgeloste probleem | Opgelost sinds |
Extracten Lokale databron (in een werkmap): als u probeert een databron met relaties op basis van meerdere feitentabellen te extraheren, wordt de foutmelding 'Er is geen dergelijke tabel' weergegeven. Gepubliceerde databron: het extraheren van een gepubliceerde databron met relaties op basis van meerdere feitentabellen lijkt te slagen, maar veldwaarden kunnen worden verwisseld. |
Als u nog steeds hinder ondervindt van deze problemen in Tableau Desktop of Tableau Server, voer dan een upgrade uit naar de versie van 24 juli 2024 of later. |
EXCLUDE-LOD-expressies Alleen INCLUDE-LOD's dienen te worden gevalideerd als er niet-gerelateerde velden aanwezig zijn. Onder dezelfde omstandigheden kunnen EXCLUDE-LOD's echter ook ten onrechte als niet geldig worden gemarkeerd. | |
Geneste gebruikersberekeningen Geneste gebruikersberekeningen zijn niet beschikbaar in gepubliceerde databronnen met een datamodel met relaties op basis van meerdere feitentabellen. |
Bekende problemen in 2024.2
Verwantschapsindicatoren met meerdere Markeringen-kaarten
Wanneer een visualisatie wordt gemaakt met meerdere meetwaarden op de container Rijen of Kolommen, krijgt elke meetwaarde zijn eigen Markeringen-kaart. De logica die wordt gebruikt om verwantschapsindicatoren te bepalen (het pictogram Niet-gerelateerd, de tekst in knopinfo en het waarschuwingsvenster voor verwantschap) levert mogelijk niet de verwachte resultaten op, afhankelijk van welke Markeringen-kaart geopend is. De visualisatie zelf wordt echter correct berekend op basis van de verwantschap van elk paar velden. Er is een geplande oplossing voor dit gedrag.
BatchQueryProcessor
BatchQueryProcessor moet zijn ingeschakeld om datamodellen met relaties op basis van meerdere feitentabellen te ondersteunen. Dit is verwacht gedrag en er is momenteel geen oplossing gepland.
Tableau Pulse
Pulse werkt mogelijk niet met datamodellen met relaties op basis van meerdere feitentabellen. Het kan zijn dat u geen statistiekdefinitie kunt maken, of dat gemaakte statistieken leeg zijn. Dit is geen verwacht gedrag, maar er is momenteel nog geen geplande oplossing.