Laat u niet afschrikken door relaties
De nieuwe mogelijkheden voor datamodellering creëren flexibele databronnen die zijn opgebouwd rondom relaties.
Relaties combineren data uit verschillende tabellen door te kijken welke kolommen (velden) deze tabellen gemeen hebben en die informatie te gebruiken om informatie uit elke tabel in de analyse samen te voegen.
In tegenstelling tot joins of verenigingen vormen relaties een databron zonder dat meerdere tabellen tot één tabel bij elkaar worden gebracht. Hierdoor 'weten' gerelateerde databronnen uit welke tabel elk veld afkomstig is. Dat betekent dat elk veld zijn context of detailniveau behoudt. Gerelateerde databronnen kunnen daardoor tabellen met verschillende granulariteit verwerken, zonder problemen met duplicatie of dataverlies.
In een gerelateerde databron worden de joins niet vooraf vastgelegd. In plaats van alle data samen te voegen (en met alle data te moeten werken, ongeacht wat afzonderlijke visualisaties vereisen), worden alleen de relevante data gecombineerd – per blad en alleen indien nodig. Terwijl u sleept en neerzet, evalueert Tableau de relaties tussen de relevante velden en tabellen. Deze relaties worden gebruikt om query's te schrijven met de juiste join-typen, aggregaties en nullverwerking.
U kunt zich bezighouden met hoe de data bij elkaar passen en welke vragen u wilt beantwoorden, in plaats van hoe u de data moet combineren of hoe u artefacten uit de databron moet compenseren.
Relaties vervangen niet de eerdere manieren om data te combineren: joins, verenigingen en combinaties. Relaties zijn een nieuwe, flexibele manier om data uit meerdere bronnen bij elkaar te brengen. De bestaande methoden verdwijnen niet en zijn in specifieke scenario’s nog steeds bruikbaar.
Opmerking: zie deze Tableau-blogberichten voor verwante informatie over hoe relatiequery's werken:
- 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.
Relaties gebruiken
In dit onderwerp wordt uitgelegd hoe u een gerelateerde databron maakt en hoe u er een voor analyse gebruikt. Als u het leuk vindt om dat proces te zien, kunt u de Bookshop-dataset downloaden(Link wordt in een nieuw venster geopend). Kies Bookshop.xlsx om vanaf het begin te starten met onbewerkte data, of MinimalBookshop.tdsx om te beginnen met de basisprincipes van de gerelateerde databron die voor u is geconfigureerd.
Opmerking: relaties zijn beschikbaar in Tableau 2020.2 en hoger.
Video: Gemigreerde data
Als u een bestaande werkmap uit een eerdere versie van Tableau (versie 2020.1 of eerder) opent in Tableau 2020.2 of hoger, wordt op het tabblad Databron mogelijk een tabel met Gemigreerde data weergegeven.
Als u een werkmap opent die is gemaakt voordat er relaties beschikbaar waren (vóór versie 2020.2), kan uw databron er anders uitzien. Als er samengevoegde of verenigde tabellen waren, worden deze weergegeven als één logische tabel met de naam Gemigreerde data. Dubbelklik om de onderliggende tabellen te zien. Die zijn er nog steeds, en uw analyse gedraagt zich nog steeds zoals verwacht.
Houd er rekening mee dat als u alleen de tabel Gemigreerde data gebruikt, het deelvenster Data zich meer gedraagt als eerdere versies van Tableau Desktop.
U kunt zelfs nieuwe tabellen rechtstreeks aan de tabel Gemigreerde data koppelen om het datamodel uit te breiden.
Zodra u relaties aan het datamodel hebt toegevoegd, wordt het deelvenster Data bijgewerkt naar de nieuwe lay-out, waarbij de dimensies en metingen binnen elke tabel behouden blijven en de tabel Gemigreerde data wordt weergegeven als één samengevoegde tabel.
Video: Relatie tussen tabellen instellen
Opmerking: de interface voor het bewerken van de relaties in deze video wijkt enigszins af van de huidige release, maar heeft dezelfde functionaliteit.
Als u een databron van gerelateerde tabellen wilt samenstellen, maakt u verbinding met uw data en sleept u een tabel naar het canvas. Sleep een tweede tabel. Als er een relatie mogelijk is, ontstaat deze automatisch. Als Tableau de gerelateerde velden niet kan detecteren, wordt u gevraagd deze zelf te selecteren.
Het canvas dat u ziet, is een nieuwe laag van het datamodel waarin u tabellen aan elkaar kunt relateren. Door extra tabellen tevoorschijn te slepen worden ze aan het datamodel toegevoegd. De noedel laat zien welke tabellen gerelateerd zijn.
Relaties kunnen worden gebaseerd op berekende velden. U kunt ook opgeven hoe velden moeten worden vergeleken door operators te gebruiken terwijl u de relatie definieert.
Joins toevoegen
U kunt een join maken door op een tabel te dubbelklikken om het join-canvas te openen (ook wel de fysieke laag genoemd). Vervolgens sleept u een tabel om een join te maken. Het maken van joins is dezelfde ervaring als in eerdere versies van Tableau: u kunt een JOIN-component instellen, zo nodig inclusief een berekening, en het type join configureren.
Zodra u het join-canvas sluit, bevat de tabel op het relatiecanvas (ook wel de logische laag genoemd) een join-pictogram om de onderliggende join aan te geven. Dit komt doordat een join de tabellen samenvoegt tot één nieuwe tabel. Gerelateerde tabellen blijven van elkaar onderscheiden.
Verenigen toevoegen
Voeg verenigen toe door een nieuwe vereniging te slepen. Verenigingen voegen de data samen, net als joins, en tonen een pictogram op de logische laag. We raden aan om verenigen (of tabellen met onduidelijke namen) altijd een zinnige nieuwe naam te geven.
Video: Prestatieopties
Opmerking: de interface voor het bewerken van de relaties in deze video wijkt enigszins af van de huidige release, maar heeft dezelfde functionaliteit.
Voor elke relatie zijn er prestatieopties en gerelateerde velden. Tableau kiest automatisch veilige standaardwaarden voor deze opties. Als u echter zeker bent van de kenmerken van uw data, kan het wijzigen van deze opties Tableau meer informatie geven over hoe automatische joins tijdens de analyse het beste kunnen worden geconfigureerd. Door de opties voor kardinaliteit en referentiële integriteit in te stellen krijgt Tableau meer informatie over het optimaliseren van query's.
Kardinaliteit
Kardinaliteit geeft aan of de koppelende veldrecords uniek zijn. Als meerdere boeken dezelfde auteur kunnen hebben, maar elke auteur slechts één keer in de auteurstabel wordt vermeld, is de kardinaliteit voor AuthID tussen deze twee tabellen voor boeken 'Veel' en voor auteur 'Eén'. Deze instelling heeft invloed op de manier waarop Tableau de aggregatie voor of na de join verwerkt.
Referentiële integriteit
Referentiële integriteit geeft aan of een record in de ene tabel gegarandeerd een relatie heeft in een andere tabel. Als elk boek een auteur heeft, heeft Boek referentiële integriteit ten opzichte van Auteur. Als niet elke auteur een boek heeft, heeft Auteur geen referentiële integriteit ten opzichte van Boek. Deze instelling heeft invloed op de manier waarop Tableau een join-type kiest en niet-gematchte records verwerkt.
Zie Kardinaliteit en referentiële integriteit voor meer informatie.
Voorbeeld: Boekwinkeldata
We gaan zo een paar analyses uitvoeren met deze databron, dus laten we het even over de data hebben.
De dataset betreft (fictieve) boeken en het is belangrijk om rekening te houden met het onderscheid tussen een boek en een editie. Een boek is het conceptuele werk zelf, met kenmerken zoals de titel, de auteur en het genre. Er zijn ook edities (uitgaven) van een boek, met kenmerken zoals de prijs en het formaat (hardcover of paperback), die worden geïdentificeerd met een ISBN. Een editie van een boek heeft een uitgever en een bepaald aantal pagina's, terwijl een boek een prijs kan hebben gewonnen of deel kan uitmaken van een serie.
U kunt meekijken door MinimalBookshop.tdsx te downloaden, of u kunt avontuurlijk zijn en zelf een model maken op basis van Bookshop.xlsx. Zodra de tabellen zijn gecombineerd, kunt u veel ID-velden verbergen.
Video: Werken met meerdere tabellen
Opmerking: de interface voor het bewerken van de relaties in deze video wijkt enigszins af van de huidige release, maar heeft dezelfde functionaliteit.
De pagina Databron
Voordat we naar een werkbladtabblad gaan, moet u er rekening mee houden dat de onderstaande datarasterweergave de velden van slechts een tabel tegelijk weergeeft. Als we naar een andere tabel klikken, zien we de data van die tabel. Er is geen totaaloverzicht, omdat gerelateerde data pas bij elkaar worden gebracht als ze in een analyse worden gebruikt. Voorlopig blijven de data in elke tabel staan en worden ze dus per tabel weergegeven.
Als we op een tabel klikken met een onderliggende join of vereniging, zien we die samengevoegde data met eventuele nullwaarden, als die er zijn.
Het deelvenster Data
Wanneer u op een werkblad klikt, valt het u misschien op dat het deelvenster Data er anders uitziet dan in eerdere versies van Tableau. In plaats van een primaire ordening van dimensies en metingen is deze nu gericht op tabellen. Elke tabel heeft zijn eigen uitsplitsing voor dimensies en afmetingen, aangegeven door deze lijn. Als u wilt, kunt u in plaats daarvan nog steeds groeperen op mappen.
Aantal records en Aantal
Er is ook geen veld Aantal records. Dit komt doordat het concept van het aantal records is veranderd. Er is niet één aantal records voor de databron. Elke tabel heeft het veld Aantal veld, dat kan worden gezien als een lokaal aantal records voor die tabel.
Om een idee te krijgen van het aantal records voor meerdere tabellen tegelijk kunt u Namen van meetwaarden en Meetwaarden gebruiken, of de velden voor aantallen meerdere keren selecteren en Laten zien gebruiken om een visualisatie te maken.
Video: Basisberekeningen
We kunnen een paar berekeningen uitvoeren om deze dataset wat gebruiksvriendelijker te maken. Ten eerste kunnen we een berekening maken voor de volledige auteursnaam waarmee voornaam en achternaam bij elkaar worden gebracht. We maken een berekening genaamd Auteursnaam: dat is een voornaam, een spatie en een achternaam. Houd er rekening mee dat deze berekening in de tabel Auteur blijft staan, omdat er alleen velden uit die tabel worden gebruikt.
[First Name] + " " + [Last Name]
Wanneer we iets verkopen, is het verkoopbedrag een combinatie van de prijs (vastgesteld door de uitgever en specifiek voor de editie of het ISBN) en eventuele kortingen op het moment van de verkoop. De berekening Verkoopbedrag is dus de prijs maal één minus de korting. Houd er rekening mee dat we de ZN-functie (of Zero Null) gebruiken om verkopen zonder kortingen af te handelen, zodat we geen nullwaarden krijgen. Deze berekening gaat naar het gedeelde gebied onder aan het deelvenster Data, omdat er velden uit meerdere tabellen worden gebruikt. Geaggregeerde berekeningen worden ook onder aan het deelvenster Data weergegeven.
[Price] * (1-ZN([Discount]))
Video: Sets en groepen
We maken een set voor boeken om te identificeren of ze in een serie zitten. Klik met de rechtermuisknop in de tabel Boek op Titel en selecteer Maken > Set. Die geven we de naam In serie. Op het tabblad Voorwaarde kiest u Per veld met Serienaam, Telling, als >= 1.
In de tabel Editie is het veld Formaat behoorlijk gedetailleerd, zoals een specificatie van paperbacks voor de massamarkt en handel. Soms zijn die details nuttig, maar soms willen we hardcovers en paperbacks bij elkaar nemen. Klik met de rechtermuisknop op het veld Formaat in het deelvenster Data en selecteer Maken > Groep. Die noemen we Omslag. Klik met Control om alles te selecteren behalve Hardcover, en klik vervolgens op Groep. De naam van de groep wordt automatisch gemarkeerd en we deze Paperback noemen.
Net als bij de berekening van de auteursnaam zijn deze items die we zojuist hebben gemaakt, relevant binnen één tabel en blijven daarom binnen die tabellen in het deelvenster Data.
Gerelateerde data analyseren
Laten we eens vergelijken hoe analyses van relaties en joins eruitzien. We raden u aan de bijbehorende werkmappen voor Vraag 1 en Vraag 2 te downloaden, in plaats van door te gaan met uw eigen databron van eerder. Als u problemen ziet met de configuratie van de databron of de stappen voor vraag 1, bedenk dan dat deze speciaal voor het scenario zijn bedoeld.
Vraag 1: Hoeveel edities zijn er van elk boek?
Belangrijk: de video voor vraag 1 is opgenomen met bètasoftware. De uitgebrachte versie van 2020.2 verwerkt onze poging om een fout in de gerelateerde databron te introduceren correct. Als u meekijkt, komt uw werkmap niet overeen met de video: de relatiewaarden zijn correct. Wees geduldig terwijl we proberen ons product te slim af te zijn en een fout te forceren voor educatieve doeleinden.
We doen dat door met beide databronnen een basisanalyse uit te voeren. We maken van elk exemplaar een staafdiagram waarbij we kijken naar het aantal edities per titel.
Gerelateerd | Samengevoegd |
De gerelateerde databron gebruiken:
| De samengevoegde databron gebruiken:
|
Het is meteen duidelijk dat Aantal voor de samengevoegde data niet de juiste aggregatie is. Maar met de gerelateerde data klopt er ook iets niet. Laten we de data bekijken om te zien wat er aan de hand is en hoe we dit kunnen oplossen. Bekijk de video (of lees het transcript) om te zien hoe.
Video: Datavalidatie en het datamodel repareren
Samengevoegd
Hier kijken we naar onze samengevoegde data. Op de samengevoegde visualisatie bekijken we de onderliggende data van een merk.
Dit dialoogvenster Data weergeven bevat twee tabbladen: Samenvatting en Volledige data.
- Er zijn heel veel rijen voor hetzelfde boek; dit wordt waarschijnlijk gedupliceerd vanwege alle joins.
Om de duplicatie op te lossen wijzigen we de aggregatie van het ISBN-veld in de weergave naar Aantal uniek. Bedenk dat we in bijna elk analytisch scenario rekening moeten houden met deze duplicatie, en dit moeten aanpakken met de juiste aggregatie, filters of de structuur van visualisatie.
Gerelateerd
Laten we eens naar de structuur van onze gerelateerde databron kijken, en we werpen ook een snelle blik op wat er aan de hand is met onze join. Bij de gerelateerde visualisatie kijken we naar de onderliggende data van een merk.
En we zien dat het dialoogvenster Data weergeven weer twee tabbladen heeft, maar deze keer is er een tabblad Editie in plaats van Volledige data. Elke tabel die in de visualisatie wordt gebruikt, heeft een eigen tabblad.
- Er is een verdubbeling van het aantal rijen voor dit boek en we weten dat joins duplicatie kunnen veroorzaken, en dat de tabel Boek in deze databron in werkelijkheid de tabel Boek samengevoegd met Info en Bekroning.
We kunnen een visualisatie maken met Titel en Naam bekroning en naar beneden scrollen om dit te onderzoeken. En ja hoor, The Mallemaroking heeft twee prijzen gewonnen. Tussen deze tabellen kunnen we beter een relatie maken dan een join.
We gaan terug naar het tabblad Databron, we verwijderen de tabel Bekroningen uit de join en we geven de tabel een relatie mee. En nu hoeven we ons voor deze databron geen zorgen meer te maken over het duplicatieprobleem.
Vraag 2: Wie van de auteurs met boeken in een serie heeft de meeste boektourneegebeurtenissen?
Video: Werken met verschillende detailniveaus
Laten we eens kijken met welke auteurs we werken. Met behulp van de gerelateerde databron zetten we Auteursnaam en Serienaam in Rijen.
Omdat gerelateerde databronnen niet-gematchte data opsplitsen in tabellen die alleen dimensies bevatten, concentreren we ons op de data die voor ons relevant zijn. We zien dat er zeven auteurs zijn, van wie er twee voor twee series hebben geschreven. Als u niet alleen de gematchte waarden wilt zien, kunt u die niet-gematchte waarden herstellen (wat meer lijkt op het oude gedrag) door naar het menu Analyse > Lay-out tabel te gaan en Lege rijen weergeven te selecteren.
Gerelateerd | Samengevoegd |
De gerelateerde databron gebruiken:
| De samengevoegde databron gebruiken:
Onze cijfers lijken hier niet helemaal te kloppen. |
We weten dat de samengevoegde data duplicatie hebben vanwege de join, en we weten ook dat sommige auteurs voor verschillende series schrijven. Hierdoor kunnen we de aggregatie niet zomaar veranderen naar bijvoorbeeld MIN of MAX, omdat we dan informatie verliezen voor auteurs met boeken in meerdere series.
Wat we echt willen weten, is het aantal gebeurtenissen per serie, gevisualiseerd per auteur. Dit is een klassiek geval voor LOD-expressies (Level of Detail). We maken de berekening Seriegebeurtenissen:
{FIXED [Series Name] : MIN ([Book Tour Events])}
De MIN is voor het verwerken van duplicatie van gebeurtenissen voor één serie.
Als we dit nieuwe veld nu naar Kolommen verplaatsen in plaats van het oorspronkelijke gebeurtenisveld, krijgen we de juiste waarden.
Voor de gerelateerde data hoefden we dat allemaal niet te doen. Relaties zijn slim genoeg om het systeemeigen detailniveau te begrijpen, en de manier waarop de tabel Auteur via de tabel Boek en de tabel Info is gerelateerd aan de tabel In serie, en om de meting van gebeurtenissen correct samen te voegen en te aggregeren tot de Auteursnaam. En dat kan allemaal zonder dat u LOD-berekeningen hoeft te schrijven.
Laat u dus niet afschrikken om een relatie tussen uw data in te stellen. Kijk zelf maar. U kunt de Bookshop-data downloaden(Link wordt in een nieuw venster geopend) of uw eigen data gebruiken. Experimenteer met filteren, tabelberekeningen gebruiken, verschillende diagramtypen samenstellen, prestatieopties configureren, en probeer zoveel mogelijk met relaties te doen.
Tips bij het werken met gerelateerde data
- Gebruik vaak Onderliggende data weergeven om te controleren welke data een merk weergeeft.
- Als een join niet vereist is (en er zijn redenen waarom dat nodig is), biedt het gebruik van een relatie meer flexibiliteit.
- Als u niet alleen gematchte waarden wilt zien, kunt u die niet-gematchte waarden herstellen door naar het menu Analyse > Lay-out tabel > Lege rijen weergeven te gaan.
Gerelateerde bronnen
Klaar om te beginnen aan berekeningen met Relaties? Bekijk Laat u niet afschrikken door berekeningen in relaties.
Klaar om nog verder te ontdekken hoe u met relaties complexe analyses kunt uitvoeren? Bekijk Laat u niet afschrikken door diepere relaties.
Bekijk voor meer informatie over de technische onderbouwing van relaties, rechtstreeks afkomstig van het Product Management-team, de serie over relaties in de Tableau-blog.
- 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.