Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Load

Instrukcja LOAD ładuje pola 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.

Składnia:  

LOAD [ distinct ] fieldlist

[( from file [ format-spec ] |

from_field fieldassource [format-spec]

inline data [ format-spec ] |

resident table-label |

autogenerate size )]

[ where criterion | while criterion ]

[ group_by groupbyfieldlist ]

[order_by orderbyfieldlist ]

Argumenty:  

Argumenty instrukcji load
ArgumentOpis
distinct

Instrukcja distinct może być używana jako predykat dotyczący ładowania tylko unikatowych rekordów. Jeśli istnieją zduplikowane rekordy, wówczas załadowane zostanie tylko pierwsze wystąpienie.

Jeśli używane są ładowania poprzedzające, wówczas distinct należy umieścić w pierwszej instrukcji ładowania, ponieważ distinct wpływa tylko na tabelę docelową.

fieldlistfieldlist ::= ( * | field {, field } )

Lista ładowanych pól. Użycie znaku * jako listy pól oznacza wszystkie pola w tabeli.

field ::= ( fieldref | expression ) [as aliasname ]

Definicja pola musi zawsze zawierać literał, odniesienie do istniejącego pola lub wyrażenie.

fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )

fieldname jest tekstem identycznym z nazwą pola w tabeli. Jeśli nazwa pola zawiera np. spacje, musi być ujęta w proste podwójne cudzysłowy lub nawiasy kwadratowe. Niekiedy nie są dostępne jawne nazwy pól. Wtedy należy użyć innego zapisu:

@fieldnumber reprezentuje numer pola w rozdzielanym pliku tabeli. Musi to być dodatnia liczba całkowita poprzedzona znakiem „@”. Numeracja zawsze zaczyna się od 1, a kończy na liczbie pól.

@startpos:endpos reprezentuje pozycję początkową i końcową pola w pliku z rekordami o stałej długości. Obie pozycje muszą być dodatnimi liczbami całkowitymi. Liczby muszą być poprzedzone znakiem „@” i rozdzielone dwukropkiem. Numeracja zawsze zaczyna się od 1, a kończy na liczbie pozycji. W ostatnim polu n jest używane jako pozycja końcowa.

  • Jeśli bezpośrednio po zapisie @startpos:endpos następuje znak I lub U, odczytane bajty będą interpretowane jako dane binarne zawierające liczby całkowite, odpowiednio ze znakiem (I) lub bez znaku (U) (kolejność bajtów Intel). Liczba odczytanych pozycji musi wynosić 1, 2 lub 4.
  • Jeśli bezpośrednio po zapisie @startpos:endpos następuje znak R, odczytane bajty będą interpretowane jako dane binarne zawierające liczby rzeczywiste (32-bitowe lub 64-bitowe wartości zmiennopozycyjne IEEE). Liczba odczytanych pozycji musi wynosić 4 lub 8.
  • Jeśli bezpośrednio po zapisie @startpos:endpos następuje znak B, odczytane bajty będą interpretowane jako wartości BCD (Binary Coded Decimal) według standardu COMP-3. Można podać dowolną liczbę bajtów.

expression może być funkcją liczbową lub znakową operującą na polach tej samej tabeli. Więcej informacji na ten temat zawiera sekcja na temat składni wyrażeń.

Klauzula as służy do przypisania polu nowej nazwy.

from

Klauzula from umożliwia ładowanie danych z pliku.

file ::= [ path ] filename

  • bezwzględna

    Przykład: c:\data\

  • względna wobec ścieżki dokumentu QlikView.

    Przykład: data\

  • adres URL (HTTP lub FTP), wskazujący lokalizację w Internecie lub intranecie. Adres URL musi być kodowany za pomocą adresu URL, na przykład jeśli zawiera znaki spacji.

    Przykład: http://www.qlik.com

    Przykład: http://www.enterprise.com/project%20files (http://www.enterprise.com/project files)

Pominięcie ścieżki spowoduje, że aplikacja QlikView będzie wyszukiwać plik w katalogu wskazanym instrukcją Directory. W razie braku instrukcji Directory aplikacja QlikView będzie szukać w katalogu roboczym, czyli zwykle w katalogu zawierającym plik QlikView.

InformacjaW instalacji serwera QlikView domyślny katalog roboczy to C:\ProgramData\QlikTech\Documents. Domyślny katalog roboczy można modyfikować w aplikacji Konsola zarządzania QlikView.

filename może zawierać standardowe symbole wieloznaczne DOS, czyli * i ?. Ich użycie spowoduje załadowanie wszystkich pasujących plików w określonym katalogu.

format-spec ::= ( fspec-item { , fspec-item } )

Na specyfikację formatu składają się pozycje specyfikacji formatu podane w nawiasach jako lista.

Directory

From

from_fieldfrom_field Klauzula umożliwia załadowanie danych z wcześniej załadowanego pola.

fieldassource::=(tablename, fieldname)

Wskazywana jest nazwa pola odpowiadająca nazwie wcześniej załadowanej tabeli tablename i nazwie pola fieldname.

format-spec ::= ( fspec-item {, fspec-item } )

Na specyfikację formatu składają się pozycje specyfikacji formatu podane w nawiasach jako lista.

inlineKlauzula inline wskazuje dane wpisywane bezpośrednio w skrypcie, a nie ładowane z pliku.

data ::= [ text ]

Dane wprowadzane w ramach klauzuli inline muszą być ujęte w określone znaki — nawiasy kwadratowe, cudzysłowy lub grawisy. Tekst umieszczony między tymi znakami zostanie zinterpretowany tak samo, jak zawartość pliku. W związku z tym w tekście klauzuli inline należy wstawiać nowe wiersze w tych samych miejscach, w których występowałyby w pliku tekstowym, naciskając klawisz Enter podczas wpisywania skryptu.

W prostym ładowaniu wbudowanym liczba kolumn jest określona w pierwszym wierszu.

format-spec ::= ( fspec-item {, fspec-item } )

Ładowanie wbudowane można dostosować za pomocą wielu elementów specyfikacji formatu, które są dostępne dla innych załadowanych tabel. Elementy te podano w nawiasach. Więcej informacji zawiera temat Elementy specyfikacji formatu.

Aby uzyskać więcej informacji o ładowaniu wbudowanym, zobacz temat Ładowanie danych z tabel wbudowanych.

residentKlauzula resident umożliwia załadowanie danych z wcześniej załadowanej tabeli.

table label to etykieta poprzedzająca instrukcje LOAD lub SELECT tworzące pierwotną tabelę. Na końcu etykiety musi się znajdować dwukropek.

Kiedy używa się kombinacji instrukcji ładowania distinct i resident w QlikView 12.00 lub nowszej wersji, kolejność ładowania danych jest niższa niż w QlikView 11.20. Aby zdefiniować pożądaną kolejność ładowania, dodaj klauzulęorder by.

Ładowanie danych z wcześniej załadowanej tabeli

Etykiety tabeli

autogenerateKlauzula autogenerate jest używana w przypadku danych, które mają być automatycznie generowane przez aplikację QlikView.

size ::= number

Number to liczba całkowita wskazująca liczbę generowanych rekordów. Lista pól nie może zawierać wyrażeń wymagających danych z bazy danych. W wyrażeniach dozwolone są jedynie stałe i funkcje bezparametrowe, na przykład rand() lub recno().

extension

Dane można ładować z połączeń analitycznych. Należy użyć klauzuli extension, aby wywołać funkcję zdefiniowaną we wtyczce rozszerzeń po stronie serwera (SSE) albo dokonać oceny skryptu.

Do wtyczki SSE można wysłać pojedynczą tabelę i zostanie zwrócona pojedyncza tabela danych. Jeśli wtyczka nie określa nazw pól, które są zwracane, wówczas pola otrzymają nazwy Field1, Field2 itd.

Extension pluginname.functionname( tabledescription );

  • Ładowanie danych za pomocą funkcji we wtyczce SSE

    tabledescription ::= (table { ,tablefield} )

    Jeśli pola tabeli nie zostaną określone, wówczas pola będą używane w kolejności ładowania.

  • Ładowanie danych poprzez ocenę skryptu we wtyczce SSE

    tabledescription ::= ( script, table { ,tablefield} )

Typy danych są automatycznie wykrywane w połączeniach analitycznych. Jeśli dane nie zawierają żadnych wartości liczbowych, a zawierają co najmniej jeden ciąg znaków inny niż NULL, wówczas takie pole jest traktowane jako tekstowe. W każdym innym przypadku jest traktowane jako liczbowe.

Typ danych można wymusić, umieszczając nazwę pola w funkcji String() lub Mixed().

  • Funkcja String() wymusza traktowanie pola jako tekstowego. Jeśli pole jest liczbowe, wówczas wyodrębniana jest część tekstowa wartości podwójnej — nie jest wykonywane żadne przekształcenie.
  • Funkcja Mixed() wymusza traktowanie pola jako podwójnego.

Funkcje String() i Mixed() nie mogą być używane poza definicjami pola tabeli w klauzuli extension, a ponadto w definicji pola tabeli nie można używać innych funkcji QlikView.

Informacje o tworzeniu połączenia analitycznego QlikView Server lub QlikView Desktop zawiera temat: Połączenia analityczne

Więcej informacji na temat połączeń analitycznych zawiera repozytorium GitHub. qlik-oss/server-side-extension

wherewhere to klauzula określająca, czy rekord ma być uwzględniony w selekcji, czy też nie. Selekcja jest uwzględniana, jeśli warunek criterion ma wartość True.

criterion jest wyrażeniem logicznym.

while

while to klauzula określająca, czy rekord ma być wielokrotnie odczytywany. Ten sam rekord będzie odczytywany, dopóki warunek criterion ma wartość True. W praktyce korzystanie z klauzuli while zwykle wymaga również użycia funkcji IterNo( ).

criterion jest wyrażeniem logicznym.

group_by

Klauzula group by służy do określania pól, według których dane mają być agregowane (grupowane). Pola agregujące powinny być w jakiś sposób dołączone w ładowanych wyrażeniach. Poza obrębem funkcji agregacji w ładowanych wyrażeniach wolno używać wyłącznie pól agregujących.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order_byKlauzula order by służy do sortowania rekordów tabeli rezydentnej przed ich przetworzeniem przez instrukcję load. Tabelę rezydentną można sortować według dowolnej liczby pól w kolejności rosnącej lub malejącej. Sortowanie jest wykonywane w pierwszej kolejności według wartości liczbowej, a w drugiej kolejności według porządku leksykograficznego z uwzględnieniem znaków diakrytycznych. Klauzuli można używać tylko wtedy, gdy źródłem danych jest tabela rezydentna.

Pola porządkujące określają, według którego pola należy sortować tabelę rezydentną. Pole można wskazać nazwą lub numerem w tabeli rezydentnej (pierwsze pole ma numer 1).

orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] }

Kolejność sortorder może mieć wartość asc (rosnąco) lub desc (malejąco). Jeśli nie określono sortorder, przyjmuje się wartość asc.

fieldname, path, filename i aliasname to ciągi tekstowe reprezentujące odpowiednio nazwę pola, ścieżkę, nazwę pliku i alias. Jako fieldname można podać dowolne pole z tabeli źródłowej. Pola utworzone klauzulą as (aliasname) są jednak poza zakresem i nie można ich używać w tej samej instrukcji load.

Jeśli nie zostanie wskazane żadne źródło danych klauzulą from, inline, resident, from_field lub autogenerate, dane będą ładowane z wyniku instrukcji SELECT lub LOAD występującej bezpośrednio po bieżącej instrukcji. Następna instrukcja nie powinna mieć żadnego prefiksu.

Poprzedzające polecenie LOAD

Przykłady:  

Dowiedz się więcej

 

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com