# Generic

Het laadvoorvoegsel Generic maakt conversie mogelijk van entiteit-attribuut-waarde gemodelleerde gegevens (EAV) naar een traditionele, genormaliseerde relationele tabelstructuur. EAV-modellering wordt ook wel "generieke gegevensmodellering" of "open schema" genoemd.

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente gedenormaliseerde relationele tabel

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente gedenormaliseerde relationele tabel

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente gedenormaliseerde relationele tabel ![Diagram met transformatie van een tabel met drie kolommen en vijf rijen in een tabel met vier kolommen en twee rijen.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente set van genormaliseerde relationele tabellen

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente set van genormaliseerde relationele tabellen

Voorbeeld van EAV-gemodelleerde gegevens en een equivalente set van genormaliseerde relationele tabellen ![Diagram met transformatie van een tabel met drie kolommen en vijf rijen in drie afzonderlijke tabellen.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Hoewel het technisch mogelijk is om EAV-gemodelleerde gegevens in Qlik te laden en te analyseren, is het vaak gemakkelijker om met een equivalente traditionele relationele gegevensstructuur te werken.

Syntaxis:

Generic( loadstatement | selectstatement )

* Voor meer informatie over LOAD-instructies, raadpleegt u [Load](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).
* Voor meer informatie over SELECT-instructies, raadpleegt u [Select](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm).

Deze onderwerpen kunnen u helpen bij het werken met deze functie:

Gerelateerde onderwerpen

| Onderwerp | Beschrijving |
| --- | --- |
| [Crosstable](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | Het laadvoorvoegsel `Crosstable` transformeert gegevens die horizontaal zijn georiënteerd in verticaal georiënteerde gegevens. Vanuit een puur functioneel perspectief voert het de tegenovergestelde transformatie uit naar het laadvoorvoegsel `Generic`, hoewel de voorvoegsels doorgaans geheel andere gebruiksscenario's dienen. |
| [Generieke databases](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | EAV-gestructureerde gegevensmodellen worden hier verder beschreven. |

## Voorbeeld 1 – Gestructureerde EAV-gegevens transformeren met het algemene laadvoorvoegsel

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### Load-script en diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.

Het load-script bevat een gegevensverzameling die wordt geladen in een tabel met de naam `Transactions`. De gegevensverzameling bevat een datumveld. De standaard `MonthNames`-definitie wordt gebruikt.

Load-script

```
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: `Color`.

Voeg deze meting toe:

`=Count([Product ID])`

Nu kunt u het aantal producten op kleur inspecteren.

Resultatentabel

| Kleur | =Count([Product ID]) |
| --- | --- |
| Bruin | 4 |
| Wit | 2 |

Let op de vorm van het gegevensmodel, waarbij elk attribuut is uitgesplitst in een aparte tabel die wordt genoemd volgens de oorspronkelijke tag van de doeltabel `Product`. Elke tabel heeft het attribuut als achtervoegsel. Een voorbeeld hiervan is `Product.Color`. De resulterende uitvoerrecords Productattribuut worden gekoppeld door de `Product ID`.

Weergave van de gegevensmodelviewer van de resultaten

Weergave van de gegevensmodelviewer van de resultaten

Weergave van de gegevensmodelviewer van de resultaten ![Weergave van de resultaten van dit voorbeeld zoals ze worden weergegeven in de gegevensmodelviewer.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

Resulterende tabel met records: Products.Status

| Product-id | Status |
| --- | --- |
| 13 | Stopgezet |
| 2 | Stopgezet |

Resulterende tabel met records: Products.Size

| Product-id | Grootte |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

Resulterende tabel met records: Products.Color

| Product-id | Kleur |
| --- | --- |
| 13 | Bruin |
| 5 | Bruin |
| 44 | Bruin |
| 45 | Bruin |
| 20 | Wit |
| 2 | Wit |

## Voorbeeld 2 – Gestructureerde EAV-gegevens analyseren zonder het algemene laadvoorvoegsel

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### Load-script en diagramuitdrukking

Overzicht

Dit voorbeeld laat zien hoe u gestructureerde EAV-gegevens in hun oorspronkelijke vorm kunt analyseren.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.

Het load-script bevat een gegevensset die wordt geladen in een tabel met de naam `Products` in een EAV-structuur.

In dit voorbeeld tellen we nog steeds producten op kleurattribuut. Om op deze manier gestructureerde gegevens te analyseren, moet u filtering op uitdrukkingsniveau toepassen op producten met de attribuutwaarde `Color`.

Bovendien zijn individuele attributen niet beschikbaar om te selecteren als dimensies of velden, waardoor het moeilijker wordt om te bepalen hoe effectieve visualisaties kunnen worden gemaakt.

Load-script

```
Products:
Load * Inline
[
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: `Value`.

Maak de volgende meting:

`=Count({<Attribute={'Color'}>} [Product ID])`

Nu kunt u het aantal producten op kleur inspecteren.

Resulterende tabel met records: Products.Status

| Waarde | =Count({&lt;Attribute={'Color'}&gt;} [Product ID]) |
| --- | --- |
| Bruin | 4 |
| Wit | 2 |

## Voorbeeld 3 - Denormaliseren van de resulterende uitvoertabellen van een generieke lading (geavanceerd)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm)

#### Load-script en diagramuitdrukking

Overzicht

In dit voorbeeld laten we zien hoe de genormaliseerde gegevensstructuur die wordt geproduceerd door het laadvoorvoegsel `Generic`, weer kan worden gedenormaliseerd naar een geconsolideerde `Product`-dimensietabel. Dit is een geavanceerde modelleringstechniek die kan worden gebruikt als onderdeel van het afstemmen van de prestaties van gegevensmodellen.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.

Load-script

```
Products:

Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];

RENAME TABLE Products.Color TO Products;

OUTER JOIN (Products)
LOAD * RESIDENT Products.Size;
						
OUTER JOIN (Products)
LOAD * RESIDENT Products.Status;
DROP TABLES Products.Size,Products.Status;
```

Resultaten

Open de gegevensmodelviewer en let op de vorm van het resulterende gegevensmodel. Er is slechts één gedenormaliseerde tabel aanwezig. Het is een combinatie van de drie tussenliggende uitvoertabellen: `Products.Size`, `Products.Status` en `Products.Color`.

Resulterend intern gegevensmodel

| Producten |
| --- |
| Product-id |
| Status |
| Kleur |
| Grootte |

Resulterende tabel met records: Products

| Product-id | Status | Kleur | Grootte |
| --- | --- | --- | --- |
| 13 | Stopgezet | Bruin | 13-15 |
| 20 | - | Wit | 16-18 |
| 2 | Stopgezet | Wit | - |
| 5 | - | Bruin | - |
| 44 | - | Bruin | - |
| 45 | - | Bruin | 16-18 |

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: `Color`.

Voeg deze meting toe:

`=Count([Product ID])`

Resultatentabel

| Kleur | =Count([Product ID]) |
| --- | --- |
| Bruin | 4 |
| Wit | 2 |

## Meer informatie

* [Load](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [Generieke databases](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)