# Poznawanie składni i struktur danych w skryptach

## Wyodrębnianie, przekształcanie i ładowanie

Ogólnie rzecz biorąc, sposób ładowania danych do aplikacji można wyjaśnić w ramach procesu wyodrębnienia, przekształcenia i ładowania danych.

* Wyodrębnienie

  Pierwszym etapem jest wyodrębnienie z systemu źródła danych. W celu zdefiniowania tego procesu w skrypcie korzysta się z instrukcji SELECT lub LOAD. Różnice między tymi instrukcjami są następujące:

  * Instrukcja SELECT wybiera dane ze źródła danych ODBC lub systemu dostawcy OLE DB. Instrukcja SQL SELECT jest oceniana przez dostawcę danych, nie przez program Qlik Sense.
  * Instrukcja LOAD ładuje dane z pliku, z danych zdefiniowanych w skrypcie, z wcześniej załadowanej tabeli, ze strony internetowej, z wyniku późniejszej instrukcji SELECT lub przez automatyczne wygenerowanie danych.

* Przekształcenie

  Faza przekształcenia obejmuje przetwarzanie danych za pomocą funkcji i reguł skryptu w celu uzyskania pożądanej struktury modelu danych. Typowe działania na tym etapie to:

  * Obliczanie nowych wartości
  * Tłumaczenie zaszyfrowanych wartości
  * Zmiana nazw pól
  * Łączenie tabel
  * Agregacja wartości
  * Tworzenie tabel przestawnych
  * Weryfikacja danych

* Ładowanie

  Na ostatnim etapie uruchamiany jest skrypt służący do załadowania zdefiniowanego modelu danych do aplikacji.

Celem użytkownika powinno być przygotowanie modelu danych umożliwiającego efektywne przetwarzanie danych w Qlik Sense. Zwykle oznacza to, że należy dążyć do sensownie znormalizowanego schematu w układzie gwiazdy lub płatka śniegu bez odwołań cyklicznych, czyli takiego modelu, w którym każda encja jest przechowywana w osobnej tabeli. Innymi słowy, typowy model danych wygląda następująco:

* centralna tabela faktów zawierająca klucze do wymiarów oraz liczby używane do obliczania miar (np. liczbę jednostek, kwoty sprzedaży i wysokości budżetów);
* tabele otaczające zawierające wymiary wraz ze wszystkimi atrybutami (np. produkty, klienci, kategorie, kalendarz i dostawcy).

InformacjaW wielu przypadkach, na przykład przy agregacjach, istnieją dwa sposoby wykonania tego samego zadania: albo przez utworzenie bogatszego modelu danych w skrypcie ładowania, albo przez wykonanie agregacji w wyrażeniach wykresu. Wykonanie transformacji danych w skrypcie ładowania wiąże się zazwyczaj z większą wydajnością.

WskazówkaDobrą praktyką jest szkicowanie tworzonego modelu danych na kartce. Pomaga to w ustaleniu struktury dotyczącej wyodrębnianych danych i wykonywanych przekształceń.

## Instrukcje ładowania danych

Do ładowania danych służą instrukcje LOAD lub SELECT. Każda z tych instrukcji powoduje wygenerowanie tabeli wewnętrznej. Każdą tabelę można sobie wyobrazić jako listę danych — każdy wiersz (rekord) jest wtedy kolejną instancją obiektu tego typu, a każde pole (kolumna) określa atrybut lub właściwość obiektu.

Różnice między tymi instrukcjami są następujące:

* Instrukcja SELECT wybiera dane ze źródła danych ODBC lub systemu dostawcy OLE DB. Instrukcja SQL SELECT jest oceniana przez dostawcę danych, nie przez program Qlik Sense.
* Instrukcja LOAD ładuje dane z pliku, z danych zdefiniowanych w skrypcie, z wcześniej załadowanej tabeli, ze strony internetowej, z wyniku późniejszej instrukcji SELECT lub przez automatyczne wygenerowanie danych.

### Reguły

Ładowanie danych do programu Qlik Sense podlega następującym regułom:

* Program Qlik Sense nie rozróżnia tabel generowanych za pośrednictwem instrukcji LOAD od tabel generowanych za pośrednictwem instrukcji SELECT. W przypadku ładowania wielu tabel nie ma więc znaczenia, czy dana tabela została załadowana z użyciem instrukcji LOAD, instrukcji SELECT, czy też obu tych instrukcji.
* Z punktu widzenia logiki programu Qlik Sense kolejność pól w instrukcji i w pierwotnej tabeli w bazie danych jest nieistotna.
* Nazwy pól są używane podczas dalszego przetwarzania w celu identyfikowania i kojarzenia pól. Jest w nich rozróżniana wielkość liter, przez co często konieczna jest zmiana nazw pól w skrypcie.

## Wykonywanie skryptu

Kolejność działań w przypadku typowej instrukcji LOAD lub SELECT jest mniej więcej następująca:

1. obliczenie wartości wyrażeń,
2. zmiana nazw pól za pomocą funkcji as,
3. zmiana nazw pól za pomocą funkcji alias,
4. kwalifikacja nazw pól,
5. mapowanie danych w przypadku zgodnych nazw pól,
6. zapisanie danych w tabeli wewnętrznej.

POWIĄZANE MATERIAŁY EDUKACYJNE:

* [Tworzenie asocjacji tabel i przekształcanie danych](https://help.qlik.com/lnk/Assoc_tables_transform_data_QS)

## Dowiedz się więcej

* [Tworzenie asocjacji tabel i przekształcanie danych](https://help.qlik.com/lnk/Assoc_tables_transform_data_QS)