# Generic

Prefiks ładowania Generic umożliwia konwersję danych w modelu encja-atrybut-wartość (EAV) na tradycyjną, znormalizowaną, relacyjną strukturę tabeli. Modelowanie EAV jest alternatywnie określane jako „ogólne modelowanie danych” lub „schemat otwarty”.

Przykład danych modelowanych EAV i równoważnej zdenormalizowanej tabeli relacyjnej

Przykład danych modelowanych EAV i równoważnej zdenormalizowanej tabeli relacyjnej

Przykład danych modelowanych EAV i równoważnej zdenormalizowanej tabeli relacyjnej ![Diagram przedstawiający przekształcenie tabeli z trzema kolumnami i pięcioma wierszami w tabelę z czterema kolumnami i dwoma wierszami.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-denormalized.png)

Przykład danych modelowanych EAV i równoważnego zestawu znormalizowanych tabel relacyjnych

Przykład danych modelowanych EAV i równoważnego zestawu znormalizowanych tabel relacyjnych

Przykład danych modelowanych EAV i równoważnego zestawu znormalizowanych tabel relacyjnych ![Diagram przedstawiający przekształcenie tabeli z trzema kolumnami i pięcioma wierszami w trzy osobne tabele.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-EAV-normalized.png)

Chociaż jest technicznie możliwe ładowanie i analizowanie danych modelowanych EAV w Qlik, często łatwiej jest pracować z równoważną tradycyjną relacyjną strukturą danych.

Składnia:

Generic( loadstatement | selectstatement )

* Aby uzyskać więcej informacji o instrukcjach LOAD, zobacz temat [Load](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).
* Aby uzyskać więcej informacji o instrukcjach SELECT, zobacz temat [Select](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm).

W pracy z tą funkcją mogą Ci pomóc poniższe tematy:

Tematy pokrewne

| Temat | Opis |
| --- | --- |
| [Crosstable](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm) | Prefiks ładowania `Crosstable` przekształca dane zorientowane poziomo na dane zorientowane pionowo. Z czysto funkcjonalnego punktu widzenia wykonuje transformację przeciwną niż prefiks ładowania `Generic`, chociaż prefiksy zazwyczaj służą do zupełnie innych zastosowań. |
| [Ogólne bazy danych](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) | Ustrukturyzowane modele danych EAV są dokładniej opisane tutaj. |

## Przykład 1 – przekształcenie uporządkowanych danych EAV z prefiksem ładowania Generic

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera zestaw danych, który jest ładowany do tabeli o nazwie `Transactions`. Zestaw danych zawiera pole daty. Używana jest domyślna definicja `MonthNames`.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `Color`.

Dodaj tę miarę:

`=Count([Product ID])`

Teraz możesz sprawdzić liczbę produktów według koloru.

Tabela wynikowa

| Kolor | =Licz([Identyfikator produktu]) |
| --- | --- |
| Brązowy | 4 |
| Biały | 2 |

Zwróć uwagę na kształt modelu danych, w którym każdy atrybut został podzielony na osobną tabelę o nazwie zgodnej z oryginalnym znacznikiem tabeli docelowej `Product`. Każda tabela ma atrybut jako sufiks. Jednym z przykładów jest `Product.Color`. Wynikowe rekordy wyjściowe atrybutu produktu są kojarzone na podstawie `Product ID`.

Reprezentacja wyników w przeglądarce modelu danych

Reprezentacja wyników w przeglądarce modelu danych

Reprezentacja wyników w przeglądarce modelu danych ![Reprezentacja wyników z tego przykładu w postaci, w jakiej są one wyświetlane w przeglądarce modelu danych.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-generic-results-data-model-viewer.png)

Wynikowa tabela rekordów: Products.Status

| Product ID | Status |
| --- | --- |
| 13 | Wycofany |
| 2 | Wycofane z produkcji |

Wynikowa tabela rekordów: Products.Size

| Product ID | Wielkość |
| --- | --- |
| 13 | 13-15 |
| 20 | 16-18 |
| 45 | 16-18 |

Wynikowa tabela rekordów: Products.Color

| Product ID | Kolor |
| --- | --- |
| 13 | Brązowy |
| 5 | Brązowy |
| 44 | Brązowy |
| 45 | Brązowy |
| 20 | Biały |
| 2 | Biały |

## Przykład 2 – przekształcenie uporządkowanych danych EAV bez prefiksu ładowania Generic

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Ten przykład pokazuje, jak analizować uporządkowane dane EAV w ich oryginalnej formie.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera zestaw danych, który jest ładowany do tabeli o nazwie `Products` w strukturze EAV.

W tym przykładzie nadal liczymy produkty według atrybutu koloru. Aby przeanalizować dane o takiej strukturze, musisz zastosować filtrowanie na poziomie wyrażenia produktów o wartości atrybutu `Color`.

Ponadto pojedyncze atrybuty nie są dostępne do wybrania jako wymiary lub pola, co utrudnia określenie sposobu tworzenia skutecznych wizualizacji.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `Value`.

Utwórz następującą miarę:

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

Teraz możesz sprawdzić liczbę produktów według koloru.

Wynikowa tabela rekordów: Products.Status

| Wartość | =Count({&lt;Attribute={'Color'}&gt;} [Product ID]) |
| --- | --- |
| Brązowy | 4 |
| Biały | 2 |

## Przykład 3 — denormalizacja wynikowych tabel wyjściowych z ładowania Generic (zaawansowany)

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

W tym przykładzie pokazujemy, jak znormalizowaną strukturę danych utworzoną przez prefiks ładowania `Generic` można zdenormalizować z powrotem do skonsolidowanej tabeli wymiaru `Product`. Jest to zaawansowana technika modelowania, którą można zastosować w ramach dostrajania wydajności modelu danych.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania

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

Wyniki

Otwórz Przeglądarkę modelu danych i zauważ kształt wynikowego modelu danych. Obecna jest tylko jedna zdenormalizowana tabela. Jest to połączenie trzech pośrednich tabel wyników: `Products.Size`, `Products.Status`i `Products.Color`.

Wynikowy wewnętrzny model danych

| Produkty |
| --- |
| Product ID |
| Status |
| Kolor |
| Wielkość |

Wynikowa tabela rekordów: Products

| Product ID | Status | Kolor | Rozmiar |
| --- | --- | --- | --- |
| 13 | Wycofany | Brązowy | 13-15 |
| 20 | - | Biały | 16-18 |
| 2 | Wycofane z produkcji | Biały | - |
| 5 | - | Brązowy | - |
| 44 | - | Brązowy | - |
| 45 | - | Brązowy | 16-18 |

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `Color`.

Dodaj tę miarę:

`=Count([Product ID])`

Tabela wynikowa

| Kolor | =Licz([Identyfikator produktu]) |
| --- | --- |
| Brązowy | 4 |
| Biały | 2 |

## Dowiedz się więcej

* [Load](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Crosstable](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm)
* [Ogólne bazy danych](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm)