# Generic

Das Ladepräfix Generic ermöglicht die Konvertierung von Daten eines Element-Attribut-Wert-Modells (Entity-Attribute-Value, EAV) in eine herkömmliche, normalisierte relationale Tabellenstruktur. EAV-Modelle werden alternativ als „generische Datenmodelle“ oder „offenes Schema“ bezeichnet.

Beispiel von Daten nach dem EAV-Modell und einer entsprechenden denormalisierten relationalen Tabelle

Beispiel von Daten nach dem EAV-Modell und einer entsprechenden denormalisierten relationalen Tabelle

Beispiel von Daten nach dem EAV-Modell und einer entsprechenden denormalisierten relationalen Tabelle ![Diagramm, das die Umwandlung einer Tabellen mit drei Spalten und fünf Zeilen in eine Tabelle mit vier Spalten und zwei Zeilen zeigt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

Beispiel von Daten nach dem EAV-Modell und einem entsprechenden Satz normalisierter relationaler Tabellen

Beispiel von Daten nach dem EAV-Modell und einem entsprechenden Satz normalisierter relationaler Tabellen

Beispiel von Daten nach dem EAV-Modell und einem entsprechenden Satz normalisierter relationaler Tabellen ![Diagramm, das die Umwandlung einer Tabelle mit drei Spalten und fünf Zeilen in drei getrennte Tabellen zeigt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Es ist zwar technisch möglich, EAV-Modelldaten in Qlik zu laden und zu analysieren, aber oftmals ist es einfacher, mit einer entsprechenden traditionellen relationalen Datenstruktur zu arbeiten.

Syntax:

Generic( loadstatement | selectstatement )

* Weitere Informationen über LOAD-Anweisungen finden Sie unter [Load](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).
* Weitere Informationen über SELECT-Anweisungen finden Sie unter [Select](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm).

Die folgenden Themen können Sie bei der Arbeit mit dieser Funktion unterstützen:

Verwandte Themen

| Thema | Beschreibung |
| --- | --- |
| [Crosstable](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | Der Ladezusatz `Crosstable` wandelt horizontal orientierte Daten in vertikal orientierte Daten um. Aus rein funktionaler Perspektive führt er die entgegengesetzte Umwandlung zum Ladezusatz `Generic` durch, obwohl die Zusätze in der Regel völlig unterschiedlichen Nutzungsfällen dienen. |
| [Generische Datenbanken](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | EAV-strukturierte Datenmodelle werden hier eingehender beschrieben. |

## Beispiel 1 – Umwandeln von EAV-strukturierten Daten mit dem Ladezusatz „Generic“

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

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Das Ladeskript enthält einen Datensatz, der in eine Tabelle mit dem Namen `Transactions` geladen wird. Der Datensatz enthält ein Datumsfeld. Die Standarddefinition `MonthNames` wird verwendet.

Ladeskript

```
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
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: `Color`.

Fügen Sie folgende Kennzahl hinzu:

`=Count([Product ID])`

Jetzt können Sie die Anzahl der Produkte nach Farbe prüfen.

Ergebnistabelle

| Farbe | =Count([Product ID]) |
| --- | --- |
| Braun | 4 |
| Weiß | 2 |

Beachten Sie die Form des Datenmodells, in der jedes Attribut zu einer getrennten Tabelle ausgeweitet wird, die entsprechend dem ursprünglichen Zieltabellen-Tag `Product` benannt wird. Bei jeder Tabelle ist das Attribut ein Suffix. Ein Beispiel hierfür ist `Product.Color`. Die resultierenden „Product Attribute“-Ausgabedatensätze sind nach `Product ID` verknüpft.

Darstellung der Ergebnisse in der Datenmodellansicht

Darstellung der Ergebnisse in der Datenmodellansicht

Darstellung der Ergebnisse in der Datenmodellansicht ![Darstellung der Ergebnisse in diesem Beispiel, wie sie in der Datenmodellansicht angezeigt werden.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

Entstandene Datensatztabelle: Products.Status

| Produkt-ID | Status |
| --- | --- |
| 13 | Eingestellt |
| 2 | Eingestellt |

Entstandene Datensatztabelle: Products.Size

| Produkt-ID | Größe |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

Entstandene Datensatztabelle: Products.Color

| Produkt-ID | Farbe |
| --- | --- |
| 13 | Braun |
| 5 | Braun |
| 44 | Braun |
| 45 | Braun |
| 20 | Weiß |
| 2 | Weiß |

## Beispiel 2 – Analysieren von EAV-strukturierten Daten ohne den Ladezusatz „Generic“

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

#### Ladeskript und Diagrammformel

Übersicht

Dieses Beispiel zeigt, wie EAV-strukturierte Daten in ihrer ursprünglichen Form analysiert werden.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Das Ladeskript enthält einen Datensatz, der in eine Tabelle mit dem Namen `Products` in einer EAV-Struktur geladen wird.

In diesem Beispiel werden weiter Produkte nach Farbattribut gezählt. Um auf diese Weise strukturierte Daten zu analysieren, müssen Sie Filterung auf Formelebene für Produkte anwenden, die den Attributwert `Color` enthalten.

Zudem können einzelne Attribute nicht als Dimensionen oder Felder ausgewählt werden, was es schwieriger macht zu bestimmen, wie effektive Visualisierungen erstellt werden.

Ladeskript

```
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
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: `Value`.

Erstellen Sie die folgende Kennzahl:

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

Jetzt können Sie die Anzahl der Produkte nach Farbe prüfen.

Entstandene Datensatztabelle: Products.Status

| Wert | =Count({&lt;Attribute={'Color'}&gt;} [Product ID]) |
| --- | --- |
| Braun | 4 |
| Weiß | 2 |

## Beispiel 3 – Denormalisieren der entstandenen Ausgabetabellen aus einem „Generic“-Ladevorgang (fortgeschritten)

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

#### Ladeskript und Diagrammformel

Übersicht

In diesem Beispiel wird gezeigt, wie die normalisierte Datenstruktur, die von dem Ladezusatz `Generic` produziert wird, zurück in eine konsolidierte `Product`-Dimensionstabelle denormalisiert werden kann. Dies ist eine erweiterte Modellerstellungstechnik, die als Teil der Feinabstimmung der Leistung des Datenmodells verwendet werden kann.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Ladeskript

```
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;
```

Ergebnisse

Öffnen Sie die Datenmodellansicht und beachten Sie die Form des entstandenen Datenmodells. Nur eine denormalisierte Tabelle ist vorhanden. Es handelt sich um eine Kombination der drei Zwischen-Ausgabetabellen: `Products.Size`, `Products.Status` und `Products.Color`.

Entstandenes internes Datenmodell

| Produkte |
| --- |
| Produkt-ID |
| Status |
| Farbe |
| Größe |

Entstandene Datensatztabelle: Products

| Produkt-ID | Status | Farbe | Größe |
| --- | --- | --- | --- |
| 13 | Eingestellt | Braun | 13-15 |
| 20 | - | Weiß | 16-18 |
| 2 | Eingestellt | Weiß | - |
| 5 | - | Braun | - |
| 44 | - | Braun | - |
| 45 | - | Braun | 16-18 |

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: `Color`.

Fügen Sie folgende Kennzahl hinzu:

`=Count([Product ID])`

Ergebnistabelle

| Farbe | =Count([Product ID]) |
| --- | --- |
| Braun | 4 |
| Weiß | 2 |

## Weitere Informationen

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