Intuïtief data modelleren met Tableau Relationships

Het combineren van bronnen is een belangrijke stap en vindt vroeg in het proces van sturen met inzicht plaats. Het is een gewichtig moment waar je moet kiezen welke data je meeneemt in je model en een fout is zo gemaakt… Wil je weten hoe het nieuwe datamodel van Tableau in versie 2020.2 het makkelijker maakt om met complexe datasets te werken? Lees dan deze blog.

Data modelleren

Data modelleren vereist de nodige creativiteit en levert soms grote complexiteit. Als je een vernuftig en compleet datamodel hebt ontworpen, is het zaak dat de business hier kaas van kan maken en dat je de complexiteit minimaliseert terwijl de dataset ook nog eens razendsnel moet zijn.

Halverwege 2019 beschreef mijn collega Maaike in haar blog dat de manier van werken met datamodellen in Tableau radicaal zal gaan verbeteren. Sinds afgelopen vrijdag is Tableau 2020.2 uitgebracht. In deze versie is het mogelijk om op innovatieve wijze relaties tussen datamodellen te leggen. Met deze technologie in handen hoeven we niet langer vooraf met het datamodelleren te bepalen welke vragen wel en welke niet gesteld kunnen worden aan de data en kunnen we nog sneller en intuïtiever geavanceerde vraagstukken beantwoorden.

Virtueel Tableau congres

In 2019 was ik niet mee naar de Europese Tableau conferentie, maar ik stel me gerust met het feit dat vele (dan wel niet alle) sessies terug te kijken zijn op de digitale kijkbuis. De sessie “No Data Source Pane, No Data Source Gain” is dus zeer gemakkelijk terug te kijken (tip: zet de afspeelsnelheid op 1,25x totdat je bij Bethany Lyons bent aangekomen). Hierbij volgt alvast

TIP 1: TERUGKIJKEN DIE SESSIE!

Relationships geven meer vrijheid en vertrouwen bij het modelleren

Even ademhalen voordat we beginnen aan de deep dive lijkt mij een goed besluit. Zullen we?

Joins bevatten impliciet de verplichting tot het maken van keuzes als het gaat om de regels data die je mee wilt nemen in je uiteindelijke model en dus ook welke vragen je ermee kunt stellen. Je bent iedere regel data van de ene tabel fysiek aan het koppelen met iedere regel data in een andere tabel en zodoende kan het voorkomen dat je regels data filtert of dat je je dataset “opblaast” als het detailniveau tussen de verschillende bronnen verschilt (dit gebeurt bij een bepaald type kardinaliteit van de koppeling – hierover later meer). Daarnaast leveren joins een datamodel op waarmee eerst de volledige query afgehandeld moet worden voordat je zoiets simpels kunt doen als één enkele meetwaarde aggregeren tot, zeg, een totale omzet.

Blenden is een slimme oplossing van Tableau om de geaggregeerde data die je terugkrijgt van je database in het geheugen vast te houden en op logische wijze te combineren binnen de omgeving van Tableau. Dit levert veel vrijheden op in gevallen dat het niet mogelijk is om een cross-database join op te zetten (SQL Server en JSON en XSLX met elkaar verbinden binnen één datasource wordt momenteel niet ondersteund).

Bekende nadelen van blends zijn bijvoorbeeld:

  • dat een COUNTD() aggregatie niet toegestaan is in blends.
  • dat je alleen die data vanuit je secundaire bron mee kunt nemen die ook in je primaire bron bestaat.
  • dat een blend op gedetailleerd niveau (of op hoge kardinaliteit – heb je die term weer, komt zo aan bod!) erg zwaar kan zijn voor de performance van Tableau.

Relationships lossen al deze problemen van blends op én hebben een aantal andere voordelen zoals prestatievoordelen.

Over kardinaliteit en relaties

Het antwoord op de vraag “Wil ik weten wat kardinaliteit is?” is natuurlijk “Ja!” omdat ik er anders niet over schreef. Het stelt je in staat om in te schatten wanneer je kiest voor relationships of voor joins (of een combinatie van beide). Relationships zullen het een stuk gemakkelijker maken om met complexe datasets te werken.

Kardinaliteit is een duur woord voor het aantal unieke waarden – zo het hoge woord is eruit. Heb je in een tabel met orders een kolom OrderID die start bij de waarde 1, die met iedere nieuwe regel data een hogere waarde aanneemt en heb je zo een miljoen unieke orders? In dat geval heb je te maken met de hoogst mogelijke kardinaliteit: elke regel heeft een unieke waarde. Staat in diezelfde ordertabel een dimensie met de unieke waarden “Product A”, “Product B” en “Product C” die per order aangeeft om welk product het gaat, dan heeft die dimensie een lage kardinaliteit met 3 unieke waarden.

Dit concept van kardinaliteit werkt ook door in het koppelen van tabellen. Conceptueel kunnen we ons prima voorstellen wat er gebeurt als we een tabel met boeken en een tabel met auteurs koppelen. De omschrijvingen van de boeken en van de auteurs heb je zo bij elkaar gefietst, toch?

Data modelleren met Tableau Relationships - Kardinaliteit en relaties

Het datamodel kon wel eens complex worden, omdat boeken geschreven kunnen zijn door meerdere auteurs en auteurs ook weer meerdere boeken geschreven kunnen hebben. Met alleen dimensies is er weinig aan de hand, maar zodra er een meetwaarde bijkomt is het oppassen geblazen. Wat ik hier beschrijf is de kardinaliteit van de join genaamd many-to-many die voor moeilijkheden kan zorgen bij het combineren en gebruiken van bronnen. Je zal te maken krijgen met duplicatie van data en je zult vaker moeten vertrouwen op level of detail calculaties of geavanceerde tabelberekeningen.

Als je het datamodel simpeler wilt houden, kun je natuurlijk ook vertrouwen op blends zodat je de eindgebruiker twee bronnen geeft die je laat samenkomen in je visualisatie. Je moet secuur te werk gaan voor een correcte blend. Soms lijkt het zelfs of Tableau niet meer zo goed werkt en kom je bij de troubleshooting terecht. Nogmaals, relationships lossen al deze problemen van blends op. Volg in ieder geval altijd

TIP2: VALIDEER ALTIJD JE RESULTATEN NA EEN JOIN, BLEND OF UNION EN NA EEN RELATIONSHIP

Overigens zou ik ook niet gelijk Terabytes aan data vanuit je gloednieuwe Spark cluster combineren met deze nieuwe methode. Kijk eens onderaan deze pagina en volg

TIP3: TEST HET MET EEN SIMPEL VOORBEELD

Wordt het leggen van relaties de norm?

Mijn verwachting is dat je in meer of mindere mate zeker de voordelen van relationships zal genieten. Ik denk dat vele, maar niet alle bronnen naar deze nieuwe manier van werken zullen worden overgeheveld. Het is geen heilige graal oplossing, maar het stelt je wel in staat om te werken met datasets met daarin een many-to-many relatie of met meerdere feitenschema’s tegelijk.

Data modelleren met Tableau Relationships -Connections

Veranderingen in de UI en UX

Het nieuwe datamodel levert ook een paar specifieke verbeteringen op in de interface en in de algehele ervaring die ik graag even uitlicht:

  • Wanneer je een bestaand werkboek opent met versie 2020.2 zul je in het Data Source scherm zien dat je bestaande datamodel is samengevat tot één logische tabel. Je kunt met een dubbelklik op een bron in de logische laag schakelen naar de fysieke laag waar je joins en unions kunt instellen of wijzigen. Handig dat je zo ook op de oude vertrouwde manier kunt werken met datamodelleren.
Data modelleren met Tableau Relationships - Joins en Unions
  • Wat ik verder opvallend en zeer waardevol vind, is dat je bij het configureren van je relaties met een paar muisklikken (en het lezen van de online help) de snelheid van je databron kan verbeteren! Door in dit menu te sleutelen aan de relatie tussen bronnen, hoeft Tableau minder controlestappen uit te voeren en zal het een snellere ervaring opleveren.
Data modelleren met Tableau Relationships - Edit relationships
  • Je kunt de prestaties van de data nog verder vergroten door een extract aan te maken voor iedere (gedenormaliseerde) logische tabel of voor iedere (genormaliseerde) fysieke tabel (lees er hier meer over.)
Data modelleren met Tableau Relationships - Extract data
  • Je krijgt direct inzicht in de data die Tableau vanuit de verschillende bronnen samen heeft laten komen als je in een visualisatie een punt aanklikt en daarna de optie View Data bekijkt. De onderliggende data is keurig opgesplitst per bron.
  • Het veld Number of Records is bijzonder nuttig veld en komt terug in een andere vorm. Na het instellen van relaties is de opsplitsing in dimensies en meetwaarden beschikbaar voor iedere fysieke bron en je krijgt er automatisch een veld bij die het aantal regels telt per bron.

Zelf ervaren?

Als je lid wordt van de pre-release community van Tableau kun je eerder de nieuwe mogelijkheden van visuele data-analyse uitproberen en zo ook een bijdrage leveren aan de doorontwikkeling van Tableau. Vanuit hier kon je ook een dataset over boeken downloaden en zelf een paar vragen stellen aan deze dataset zoals:

  • Welke boeken hebben de meeste edities?
  • Welke boeken hebben geen omzet uit verkopen?
  • Welke auteurs hebben geen boeken geschreven?
Download de dataset over boeken

Desgewenst staan onze consultants klaar om ook jouw organisatie verder helpen als het gaat om de performance van data en dashboard te verbeteren en de mensen uit jouw business nog gemakkelijker aan inzicht te laten komen. Laat je een bericht achter als je vragen hebt? Een sessie om je datasets op strategische wijze tot stand te laten komen is iets waar we je graag verder mee helpen.