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).
Uwaga: W 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ą.
Porada: Dobrą 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ę obiektów pewnego typu — 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.