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. Możliwe jest również ładowanie danych z połączeń analitycznych.
Składnia:
LOAD [ distinct ] fieldlist
[( from file [ format-spec ] |
from_field fieldassource [format-spec]|
inline data [ format-spec ] |
resident table-label |
autogenerate size ) |extension pluginname.functionname([script] tabledescription)]
[ where criterion | while criterion ]
[order by orderbyfieldlist ]
Argument | Opis |
---|---|
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ą. |
fieldlist | fieldlist ::= ( * | 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.
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ń. |
from | from jest używane, jeśli dane powinny być ładowane z pliku przy użyciu folderu. Podczas ładowania z pliku w przestrzeni w Analityka Qlik Cloud należy użyć prawidłowej ścieżki. Zobacz temat Zasady używania prawidłowych ścieżek folderów przestrzeni. file ::= [ path ] filename W Analityka Qlik Cloud są obsługiwane hierarchiczne struktury folderów i można się do nich odwoływać w instrukcji. Przykłady:
Więcej informacji i przykładów zawiera temat Ładowanie plików z przestrzeni w Analityka Qlik Cloud. |
from_field | Klauzula from_field umożliwia załadowanie danych z wcześniej załadowanego pola. fieldassource::=(tablename, fieldname) Wskazywana jest nazwa pola odpowiadająca nazwie tabeli tablename i nazwie pola fieldname, która została poprzednio załadowana. format-spec ::= ( fspec-item {, fspec-item } )Na specyfikację formatu składają się pozycje specyfikacji formatu podane w nawiasach jako lista. Więcej informacji zawiera temat Elementy specyfikacji formatu. Informacjafrom_field obsługuje tylko przecinki jako separatory listy podczas oddzielania pól w tabelach. |
inline | Klauzula 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:Używanie wbudowanych ładowań do ładowania danych. |
resident | Klauzula 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. |
autogenerate | Klauzula autogenerate jest używana w przypadku danych, które mają być automatycznie generowane przez aplikację Qlik Sense. size ::= number Number to liczba całkowita wskazująca liczbę generowanych rekordów. Lista pól nie może zawierać wyrażeń, które wymagają danych z zewnętrznego źródła danych ani wcześniej załadowanej tabeli, chyba że przy użyciu funkcji Peek utworzono odwołanie do wartości pojedynczego pola we wcześniej załadowanej tabeli. |
where | where 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 by | Klauzula 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 żadne źródło danych nie zostanie wskazane klauzulą from, inline, resident, from_field, extension 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.
Ładowanie danych z wcześniej załadowanej tabeli
Przykłady:
Ładowanie plików z przestrzeni w Analityka Qlik Cloud
W Analityka Qlik Cloud podczas ładowania danych z pliku danych w skrypcie ładowania można użyć instrukcji LOAD lub wstawić kod QVS. W obu przypadkach hierarchiczne struktury folderów przestrzeni można przywoływać w instrukcji skryptu. Przestrzegaj zasad używania prawidłowych ścieżek folderów przestrzeni. Ponadto plik oraz wszystkie foldery, do których się odwołuje, muszą już istnieć w określonej lokalizacji. W przeciwnym razie przeładowanie nie powiedzie się.
Przykłady: Odwołanie do pliku na ścieżce najwyższego poziomu w przestrzeni
Ten przykład pokazuje ładowanie pliku orders.csv z przestrzeni prywatnej. Plik nie znajduje się w żadnym konkretnym folderze, tylko na ścieżce najwyższego poziomu w przestrzeni.
LOAD * FROM [lib://DataFiles/orders.csv];
W tym przykładzie ładuje się plik orders.csv z przestrzeni współdzielonej, przestrzeni zarządzanej lub przestrzeni danych. Nazwa przestrzeni to TeamSharedSpace. Plik nie znajduje się w żadnym konkretnym folderze, tylko na ścieżce najwyższego poziomu w przestrzeni.
LOAD * FROM [lib://TeamSharedSpace:DataFiles/orders.csv];
Przykłady: Odwołanie do konkretnej ścieżki folderów w przestrzeni
Ten przykład pokazuje ładowanie pliku orders_Europe.csv z folderu Orders By Region w przestrzeni prywatnej.
LOAD * FROM [lib://DataFiles/Orders By Region/orders_Europe.csv];
W tym przykładzie ładuje się plik orders_Europe.csv z folderu Orders By Region w przestrzeni udostępnionej, przestrzeni zarządzanej lub przestrzeni danych. Nazwa przestrzeni to SalesSpace.
LOAD * FROM [lib://SalesSpace:DataFiles/Orders By Region/orders_Europe.csv];
Więcej informacji na temat odwoływania się do struktury folderów w przestrzeni w skryptach ładowania zawiera temat Odwoływanie się do struktury folderów w rozwoju aplikacji i skryptów.