INHOUDSOPGAVE
- Inleiding
- Structuur
- Dimensie aggregaties
- Aggregatietypes
- Weergave in Swing Viewer
- Importformats
- Conventies
- Limieten
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:
Onderwerp | Waarde | Gebied | Gebiedsniveau | Periode |
Bevolking | 106.086 | Delft | Gemeente | 2023 |
Een kubus onderwerp bevat hiernaast nog één of meerdere kenmerken (dimensies).
Onderwerp | Waarde | Dimensie | Gebied | Gebiedsniveau | Periode |
Bevolking naar geslacht | 56.052 | Mannen | Delft | Gemeente | 2023 |
Bevolking naar geslacht | 50.034 | Vrouwen | Delft | Gemeente | 2023 |
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 leeftijdsklassen | leeftijdsklassen (3-deling) |
0 - 20 jaar | 0 - 20 jaar |
20 - 40 jaar | 20 - 60 jaar |
40 - 60 jaar | 20 - 60 jaar |
60 - 80 jaar | 60 jaar en ouder |
80 jaar en ouder | 60 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.
Periode | Gebied | Onderwerp | Leeftijdsklassen | Totaal | Mannen | Vrouwen | Som |
2022 | Nederland | Verdachten | Totaal | 152.990 | 126.480 | 25.910 | 152.390 |
2022 | Nederland | Verdachten | 12 tot 18 jaar | 17.240 | 12.760 | 4.460 | 17.220 |
2022 | Nederland | Verdachten | 18 tot 23 jaar | 25.630 | 21.790 | 3.810 | 25.600 |
2022 | Nederland | Verdachten | 23 tot 45 jaar | 77.070 | 65.720 | 11.260 | 76.980 |
2022 | Nederland | Verdachten | 45 tot 65 jaar | 27.420 | 22.280 | 5.120 | 27.400 |
2022 | Nederland | Verdachten | 65 jaar of ouder | 4.750 | 3.610 | 1.140 | 4.750 |
2022 | Nederland | Verdachten | Overig | 880 | 320 | 110 | 430 |
Som | 152.990 | 126.480 | 25.900 | 152.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 op welke manier deze dimensie-items geaggregeerd moeten 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:
Aggregatietype | Toelichting |
Sum | Data in een dimensieniveau wordt gesommeerd om het hogere niveau te berekenen |
Average | Data in een dimensieniveau wordt gemiddeld om het hogere niveau te berekenen |
No aggregation | Data 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. |
Unknown | Het 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.
Period | Geolevel | Geoitem | dnc_gsl | dnc_lft5o | kb_verdachten |
2022 | Nederland | 1 | m | 1217 | 12.760 |
2022 | Nederland | 1 | m | 1822 | 21.790 |
2022 | Nederland | 1 | m | 2344 | 65.720 |
2022 | Nederland | 1 | m | 4564 | 22.280 |
2022 | Nederland | 1 | m | 65eo | 3.610 |
2022 | Nederland | 1 | v | 1217 | 4.460 |
2022 | Nederland | 1 | v | 1822 | 3.810 |
2022 | Nederland | 1 | v | 2344 | 11.260 |
2022 | Nederland | 1 | v | 4564 | 5.120 |
2022 | Nederland | 1 | v | 65eo | 1.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:
Period | Geolevel | Geoitem | dnc_lft5o | kb_verdachten |
2022 | Nederland | 1 | 1217 | 17.240 |
2022 | Nederland | 1 | 1822 | 25.630 |
2022 | Nederland | 1 | 2344 | 77.070 |
2022 | Nederland | 1 | 4564 | 27.420 |
2022 | Nederland | 1 | 65eo | 4.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
Period | Geolevel | Geoitem | Cubemembers | Variable | Value |
2022 | Nederland | 1 | dnc_gsl_m,dnc_lft5o_1217 | kb_verdachten | 12.760 |
2022 | Nederland | 1 | dnc_gsl_m,dnc_lft5o_1822 | kb_verdachten | 21.790 |
2022 | Nederland | 1 | dnc_gsl_m,dnc_lft5o_2344 | kb_verdachten | 65.720 |
2022 | Nederland | 1 | dnc_gsl_m,dnc_lft5o_4564 | kb_verdachten | 22.280 |
2022 | Nederland | 1 | dnc_gsl_m,dnc_lft5o_65eo | kb_verdachten | 3.610 |
2022 | Nederland | 1 | dnc_gsl_v,dnc_lft5o_1217 | kb_verdachten | 4.460 |
2022 | Nederland | 1 | dnc_gsl_v,dnc_lft5o_1822 | kb_verdachten | 3.810 |
2022 | Nederland | 1 | dnc_gsl_v,dnc_lft5o_2344 | kb_verdachten | 11.260 |
2022 | Nederland | 1 | dnc_gsl_v,dnc_lft5o_4564 | kb_verdachten | 5.120 |
2022 | Nederland | 1 | dnc_gsl_v,dnc_lft5o_65eo | kb_verdachten | 1.140 |
2022 | Nederland | 1 | dnc_lft5o_1217 | kb_verdachten | 17.240 |
2022 | Nederland | 1 | dnc_lft5o_1822 | kb_verdachten | 25.630 |
2022 | Nederland | 1 | dnc_lft5o_2344 | kb_verdachten | 77.070 |
2022 | Nederland | 1 | dnc_lft5o_4564 | kb_verdachten | 27.420 |
2022 | Nederland | 1 | dnc_lft5o_65eo | kb_verdachten | 4.750 |
2023 | Nederland | 1 | dnc_lft1_1 | kb_bevolking | 181.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
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren