The Information Lab

Een unieke ROW-ID toevoegen

Geschreven door Arno Jissink | Apr 22, 2022 6:30:00 AM

Gegevens voorbereiden met Builder: Unieke en sequentiële ROW ID toevoegen

In deze blog wil ik laten zien hoe je een unieke sequentiële ROW ID kunt toevoegen oplopend op datum. Ik gebruik een Kaggle-dataset met alle F1-races tussen 1955 en 2022. De race-ID in races.csv lijkt uniek, maar is niet sequentieel geordend, wat ik nodig heb.

Tableau Prep Builder kan eenvoudig ROW ID's maken voor elke dataset en is mijn eerste "go to" tool wanneer ik met Tableau werk. Een unieke record-ID ("UID") is belangrijk omdat het een record (in een gegevenstabel) identificeert als uniek van alle andere records. Vervolgens kan er op unieke wijze naar worden verwezen.

Er zijn twee manieren om een unieke opeenvolgende ROW-ID toe te voegen met Create Calculated Field met behulp van de functie:

  1. ROW_NUMBER();
  2. RANK(), die de Visual Calculation Editor ondersteunt.

Beide functies behoren tot de Prep Analytics-functies, die soms onnauwkeurig vensterberekeningen worden genoemd. Prep Analytics-functies maken berekeningen over de hele gegevensverzameling of een selectie van rijen mogelijk. Vensterberekeningen op wat zichtbaar is.

Zorg er eerst voor dat je dataset geen duplicaten bevat, zie deze blog voor twee methoden in Tableau Prep. Zodra dit is gebeurd, ga je verder met een van de onderstaande opties.


Optie 1 - gebruik ROW_NUMBER voor een opeenvolgende ROW-ID

Deze functie kan opnieuw worden gebruikt. Er is nu echter geen PARTITION nodig. We willen de hele tabel gebruiken. Het doel is een uniek rijnummer op volgorde datum oplopend. Aangezien we hebben vastgesteld dat de datum uniek is, is de syntaxis vrij eenvoudig:

{ ORDERBY [datum] ASC: ROW_NUMBER() }.

Er kunnen ook meerdere velden worden gebruikt om de gegevens te ordenen voordat er een rijnummer wordt toegewezen. Bijvoorbeeld raceId en datum. Voeg gewoon een komma en het veld toe aan ORDERBY ("2025, [radeId]").

Optie 2 - gebruik RANK voor een opeenvolgende RIJ-ID

Met deze functie kunnen we de ingebouwde visuele berekeningseditor gebruiken of de berekening handmatig toevoegen. De basissyntaxis volgt die van de vorige optie:

{ ORDERBY [datum] ASC: RANK() }.

Zolang we zeker weten dat er geen duplicaten zijn, werkt het bovenstaande.

Voor RANK is de visuele berekeningseditor beschikbaar, die er als volgt uitziet:

Visuele berekeningseditor

Conclusie

Om een nieuw uitvoerbestand met een UID te maken, hebben we 2 stappen getoond.

  1. Een schone stap om duplicaten te controleren (zie deze blog) en daarna nog een stap;
  2. De Clean stap voegt de UID toe en verwijdert alle velden die we niet willen.

Deze scheiding is niet nodig, alle data prep wijzigingen kunnen in één Clean stap worden gedaan. Ik geef er echter de voorkeur aan om verschillende stappen te scheiden op doel. In dit voorbeeld een deduplicatie en vervolgens het toevoegen van een UID.

De uiteindelijke flow met de twee stappen ziet er als volgt uit:

Prep Builder Flow en wijzigingen

Het uitvoerbestand bevat nu de sequentiële UID, die wordt bijgewerkt voor elke nieuwe race die aan dit Kalenderbestand wordt toegevoegd.

uitvoerbestand

Bekijk een voorbeeld van de laatste Clean Step in Tableau of maak verbinding met het uitvoerbestand om de gegevens te visualiseren. Om de UID te valideren heb ik een rechte lijn gemaakt die zoals verwacht oploopt met 1 per wedstrijddatum.

Bekijk een voorbeeld van gegevens in Tableau


Ik hoop dat je genoten hebt van deze korte blog over Tableau Prep Builder use cases om een sequentieel UID-veld te maken in een dataset.

Bekijk mijn blogs voor meer Tableau en Tableau Prep inhoud.

Als je andere blogs wilt lezen over software zoals Tableau en Alteryx, een training wilt volgen of een consultant wilt boeken, bezoek dan The Information Lab NL voor meer informatie.