Swing kubussen

Gewijzigd op Ma, 24 Jun om 5:31 PM

INHOUDSOPGAVE

Inleiding

In Swing Studio is het mogelijk om naast enkelvoudige (platte) onderwerpen ook meervoudige (kubus) onderwerpen op te nemen. Een plat onderwerp bevat in Studio altijd de volgende elementen:

OnderwerpWaardeGebiedGebiedsniveauPeriode
Bevolking106.086DelftGemeente2023

Een kubus onderwerp bevat hiernaast nog één of meerdere kenmerken (dimensies).

OnderwerpWaardeDimensieGebiedGebiedsniveauPeriode
Bevolking naar geslacht56.052MannenDelftGemeente2023
Bevolking naar geslacht50.034VrouwenDelftGemeente2023

Door data in Studio als kubus op te nemen is het dus mogelijk om platte onderwerpen die aan elkaar gerelateerd zijn via een of meerdere dimensie(s) te clusteren tot één onderwerp.

Een uitgebreid voorbeeld van een kubus importbestand staat op onze Kennisbank.



Structuur

Kubussen worden in Studio via een vaste structuur opgebouwd uit dimensies, dimensieniveaus en dimensieniveau-items.

Dimensie

Dimensies zijn het hoogste niveau van de kubus en vertegenwoordigen het kenmerk. Voorbeelden van dimensies zijn leeftijd, geslacht, oppervlakte of woningtype. Een kubus heeft altijd één of meerdere dimensies.

Dimensieniveau

Met dimensieniveaus is het mogelijk om binnen een dimensie verschillende indelingen te maken. Dimensieniveaus worden bijvoorbeeld gebruikt om verschillende leeftijdsindelingen binnen de dimensie leeftijd te classificeren. Een dimensie bevat altijd één of meerdere dimensieniveaus.

Dimensieniveau-item

Dimensieniveau-items zijn het laagste niveau van de kubus en vertegenwoordigen het specifieke onderdeel wat in het kenmerk is opgenomen. Bij de dimensie leeftijd met het dimensieniveau 3-deling zijn de dimensieniveau-items bijv. 0-18 jaar, 19-65 jaar, 65 jaar en ouder. Een dimensieniveau bevat altijd twee of meerdere dimensieniveau-items.


Dimensie aggregaties

Met dimensie aggregaties is het mogelijk om een koppeling te maken tussen verschillende dimensieniveaus. Een voorbeeld van een dimensie aggregatie is de optelling van een leeftijdsindeling naar een hoger niveau:


20-jaars leeftijdsklassenleeftijdsklassen (3-deling)
0 - 20 jaar0 - 20 jaar
20 - 40 jaar20 - 60 jaar
40 - 60 jaar20 - 60 jaar
60 - 80 jaar60 jaar en ouder
80 jaar en ouder60 jaar en ouder

Met behulp van dimensie aggregaties volstaat het dus om data op het laagste dimensieniveau in te lezen. Swing kan vervolgens de optelling naar hogere dimensieniveaus zelf berekenen.


Randtotalen

Het komt regelmatig voor dat de som van de dimensieniveau-items niet op ieder dimensieniveau aan elkaar gelijk zijn. Dit is bijvoorbeeld het geval wanneer de data is afgerond of wanneer data op lagere schaalniveaus wordt afgeschermd in verband met de herleidbaarheid. In deze situaties biedt de dimensie aggregatie in Swing geen oplossing en moeten de waarden op ieder niveau apart worden ingelezen.


PeriodeGebiedOnderwerpLeeftijdsklassenTotaalMannenVrouwenSom
2022NederlandVerdachtenTotaal152.990126.48025.910152.390
2022NederlandVerdachten12 tot 18 jaar17.24012.7604.46017.220
2022NederlandVerdachten18 tot 23 jaar25.63021.7903.81025.600
2022NederlandVerdachten23 tot 45 jaar77.07065.72011.26076.980
2022NederlandVerdachten45 tot 65 jaar27.42022.2805.12027.400
2022NederlandVerdachten65 jaar of ouder4.7503.6101.1404.750
2022NederlandVerdachtenOverig880320110430
Som


152.990126.48025.900152.380

Bovenstaande tabel illustreert de verschillen die kunnen ontstaan wanneer een dataset is opgebouwd uit afgeronde cijfers. Bij de groene vlakken komt de som der delen overeen met het totaal terwijl er bij de oranje vlakken een verschil is. Zo is te zien dat het totaal van de mannen (126.480) overeenkomt met het totaal van de mannen op basis van de optelling van de leeftijdscategorieën. Dit is niet het geval bij de vrouwen. Om de juiste aantallen op ieder niveau in Swing te presenteren moeten zowel de individuele dimensie-items als het totaal van dat dimensieniveau (het randtotaal) apart worden ingelezen. Hoe randtotalen kunnen worden ingelezen wordt in het hoofdstuk Importformats behandeld. Als randtotalen zijn ingelezen worden deze altijd getoond in plaats van het totaal wat op basis van de dimensie aggregaties berekend kan worden.


Aggregatietypes

Met dimensie aggregaties is een koppeling gemaakt tussen dimensieniveaus die aan elkaar zijn gerelateerd. Met aggregatietypes wordt aangegeven hoe Swing de dimensieniveaus moet aggregeren. In geval van een kubus bevolking naar geslacht bestaat het dimensieniveau geslacht uit de dimensie-items man en vrouw. Indien het totaal van deze kubus getoond wordt, moet Swing weten hoe deze dimensie-items geaggregeerd moet worden om dit totaal te tonen. Dit kan bepaald worden door voor het dimensieniveau het aggregatietype op te geven.

Er zijn vier aggregatietypes te onderscheiden:


AggregatietypeToelichting
SumData in een dimensieniveau wordt gesommeerd om het hogere niveau te berekenen
AverageData in een dimensieniveau wordt gemiddeld om het hogere niveau te berekenen
No aggregationData binnen dit dimensieniveau is niet geschikt om te aggregeren. Indien randtotalen ontbreken wordt het eerste item uit het dimensieniveau geselecteerd wanneer het onderwerp wordt geselecteerd.
UnknownHet aggregatietype wordt bepaald aan de hand van het datatype van het geselecteerde onderwerp


Het aggregatietype unknown wordt veel gebruikt zodat onderwerpen met verschillende datatypes (numeriek, percentage, gemiddeld) hetzelfde dimensieniveau kunnen gebruiken waarbij er op de juiste manier wordt geaggregeerd.


Weergave in Swing Viewer

Onder Kenmerken worden de dimensies van de geselecteerde kubusonderwerpen getoond. De dimensie geslacht (1) bevat één dimensieniveau en door ergens in het vlak te klikken wordt de dimensie geselecteerd en de presentatie hierop aangepast. Bij dimensies met meerdere dimensieniveaus staat een pijltje in het vlak. Door met de muis in het vlak te hoveren, verschijnt een uitklapper met een lijst van de dimensieniveaus (2). Kies een dimensieniveau uit de lijst om aan de presentatie toe te voegen. 

In dit voorbeeld zijn twee kubusonderwerpen geselecteerd waarbij één kubus een extra dimensie Geboorteland bevat (3). Het woord Geboorteland is door Swing Viewer automatisch grijs gemaakt om aan te geven dat deze dimensie met de huidige selectie niet kan worden gekozen. 




Importformats

Kubusdata kan op twee manieren geïmporteerd worden in Swing:


Onderwerp per kolom

Dit importformat oogt voor een nieuwe gebruiker intuitief, maar biedt minder uitgebreide mogelijkheden.


PeriodGeolevelGeoitemdnc_gsldnc_lft5okb_verdachten
2022
Nederland
1m121712.760
2022
Nederland
1m182221.790
2022
Nederland
1m234465.720
2022
Nederland
1m456422.280
2022
Nederland
1m65eo3.610
2022
Nederland
1v12174.460
2022
Nederland
1v1822
3.810
2022
Nederland
1v234411.260
2022
Nederland
1v45645.120
2022
Nederland
1v65eo1.140

Het is in dit importformat niet mogelijk om randtotalen of onderwerpen met afwijkende dimensieniveaus op te nemen. Om uit bovenstaand voorbeeld het totaal van het dimensieniveau geslacht op te nemen, moet de kolom dnc_gsl uit het importbestand worden verwijderd:


PeriodGeolevelGeoitemdnc_lft5okb_verdachten
2022
Nederland
1121717.240
2022
Nederland
1182225.630
2022
Nederland
1234477.070
2022
Nederland
1456427.420
2022
Nederland
165eo4.750


Waarde per record

Dit importformat biedt meer mogelijkheden en is daarom voor de expertgebruiker wenselijk.

  • randtotalen kunnen in hetzelfde tabblad worden opgenomen
  • onderwerpen met afwijkende dimensieniveaus passen in één tabblad
  • het format komt overeen met de export van Swing


PeriodGeolevelGeoitemCubemembersVariableValue
2022Nederland
1dnc_gsl_m,dnc_lft5o_1217kb_verdachten12.760
2022Nederland
1
dnc_gsl_m,dnc_lft5o_1822kb_verdachten21.790
2022Nederland
1
dnc_gsl_m,dnc_lft5o_2344kb_verdachten65.720
2022Nederland
1
dnc_gsl_m,dnc_lft5o_4564kb_verdachten22.280
2022Nederland
1
dnc_gsl_m,dnc_lft5o_65eokb_verdachten3.610
2022Nederland
1
dnc_gsl_v,dnc_lft5o_1217kb_verdachten4.460
2022
Nederland
1dnc_gsl_v,dnc_lft5o_1822
kb_verdachten
3.810
2022
Nederland
1dnc_gsl_v,dnc_lft5o_2344
kb_verdachten
11.260
2022
Nederland
1dnc_gsl_v,dnc_lft5o_4564kb_verdachten
5.120
2022
Nederland
1dnc_gsl_v,dnc_lft5o_65eo
kb_verdachten
1.140
2022
Nederland
1dnc_lft5o_1217
kb_verdachten
17.240
2022
Nederland
1dnc_lft5o_1822
kb_verdachten
25.630
2022
Nederland
1dnc_lft5o_2344
kb_verdachten
77.070
2022
Nederland
1dnc_lft5o_4564
kb_verdachten
27.420
2022
Nederland
1dnc_lft5o_65eo
kb_verdachten
4.750
2023Nederland1dnc_lft1_1kb_bevolking181.514


Het belangrijkste verschil tussen beide varianten is dat bij Onderwerp per kolom ieder dimensieniveau en onderwerp in een aparte kolom moet staan, terwijl bij Waarde per record alle dimensieniveaus in de kolom Cubemembers, alle onderwerpen in de kolom Variable en alle waarden in de kolom Value staan.


Conventies

Swing maakt gebruik van verschillende codes waarmee bepaalde elementen uit een importbestand automatisch herkend kunnen worden. Zo geeft de prefix kb_ aan dat het om een kubusonderwerp gaat en de prefix dnc_ betreft een dimensieniveaucode. Door gebruik te maken van gestandaardiseerde dimensie- en dimensieniveaucodes kunnen kubusonderwerpen met overeenkomstige elementen in Swing Viewer mooi naast elkaar worden gepresenteerd. Het is dus belangrijk om kubusonderwerpen met bijvoorbeeld nieuwe leeftijdsindelingen (dimensieniveaus) telkens aan dezelfde dimensie leeftijd te koppelen.


Limieten

Kubusonderwerpen mogen niet te groot worden in afmeting. Een kubus die te groot is, heeft een negatieve impact op de performance van Swing. Met het Indicator complexity rapport wordt inzichtelijk gemaakt hoe complex iedere kubus in de database is. Het rapport kan worden opgevraagd via General -> Consistency check. 



Met een formule wordt een score aan iedere (kubus)indicator gekoppeld. Een score van circa vijf miljoen kan Swing nog net aan. Als de score hoger is, wordt Swing trager bij het ophalen van de kubusdata. Bij de berekening van de complexiteitsscore wordt er naast de dimensie-items ook naar het aantal gebieden gekeken, maar niet naar het aantal periodes. Een kubus op buurtniveau vergt dus meer rekenkracht dan een kubus op weekniveau.


Een importbestand is ook onderhevig aan bepaalde limieten. Een Excel bestand met het xlsx format kan maximaal 1.048.576 rijen bevatten. Het csv format mag niet groter zijn dan 4GB of meer dan 150 miljoen rijen bevatten. In de praktijk raden we aan om het importbestand indien mogelijk op te knippen om niet in de buurt van de harde limiet te komen. Een sessie in Swing Studio zou tijdens een lange upload van een groot importbestand namelijk kunnen verlopen waardoor de import alsnog mislukt. 




Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren