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).
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:
- obliczenie wartości wyrażeń,
- zmiana nazw pól za pomocą funkcji as,
- zmiana nazw pól za pomocą funkcji alias,
- kwalifikacja nazw pól,
- mapowanie danych w przypadku zgodnych nazw pól,
- zapisanie danych w tabeli wewnętrznej.