QlikView - ładowanie przyrostowe

Wraz ze wzrostem ilości danych w źródle danych dokumentu QlikView zwiększa się również czas ładowania pliku, co spowalnia proces analizy. Jednym ze sposobów zminimalizowania czasu potrzebnego na załadowanie danych jest załadowanie tylko rekordów, które są nowe w źródle lub zaktualizowane. Ta koncepcja ładowania tylko nowych lub zmienionych rekordów ze źródła do dokumentu QlikView jest nazywanaIncremental Load.

Aby zidentyfikować nowe rekordy ze źródła, używamy sekwencyjnego klucza unikalnego lub datownika dla każdego wiersza. Te wartości unikalnego klucza lub pola czasu danych muszą przepłynąć z pliku źródłowego do dokumentu QlikView.

Rozważmy następujący plik źródłowy zawierający szczegóły produktu w sklepie detalicznym. Zapisz go jako plik .csv w systemie lokalnym, gdzie jest dostępny dla QlikView. Z biegiem czasu dodawane są kolejne produkty, a opis niektórych produktów ulega zmianom.

Product_Id,Product_Line,Product_category,Product_Subcategory
1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities
2,"Food, Beverages & Tobacco",Food Items,Fruits & Vegetables
3,Apparel & Accessories,Clothing,Uniforms
4,Sporting Goods,Athletics,Rugby
5,Health & Beauty,Personal Care
6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments
7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories
8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials
9,Hardware,Tool Accessories,Power Tool Batteries
10,Home & Garden,Bathroom Accessories,Bath Caddies
11,"Food, Beverages & Tobacco",Food Items,Frozen Vegetables
12,Home & Garden,Lawn & Garden,Power Equipment

Ładowanie danych do QlikView

Powyższy plik CSV załadujemy za pomocą edytora skryptów (Control + E), wybierając opcję Table Files, jak pokazano poniżej. Tutaj również zapisujemy dane do pliku QVD w systemie lokalnym. Zapisz dokument QlikView jako plik .qvw.

Weryfikacja załadowanych danych.

Możemy sprawdzić dane załadowane do dokumentu QlikView, tworząc obiekt arkusza o nazwie Table Box. Jest to dostępne w menu Układ iNew Sheet Objects podmenu.

Tworzenie układu tabeli

Po wybraniu Table Boxarkusz, przechodzimy do kolejnego ekranu, na którym wybieramy kolumny i ich pozycje w tworzonej tabeli. Wybieramy następujące kolumny i ich pozycje i klikamy Zakończ.

Przeglądanie istniejących danych

Pojawi się poniższy wykres przedstawiający dane określone w poprzednim kroku.

Aktualizacja danych źródłowych

Dodajmy kolejne trzy rekordy do danych źródłowych. Tutaj identyfikatory produktów to unikalne liczby, które reprezentują nowe rekordy.

13,Office Supplies,Presentation Supplies,Display
14,Hardware,Tool Accessories,Jigs
15,Baby & Toddler,Diapering,Baby Wipes

Skrypt ładowania przyrostowego

Teraz piszemy skrypt, który pobierze tylko nowe rekordy ze źródła.

// Load the data from the stored qvd.
Stored_Products:
LOAD Product_Id, 
     Product_Line, 
     Product_category, 
     Product_Subcategory
FROM
[E:\Qlikview\data\products.qvd]
(qvd);

//Select the maximum value of Product ID.
Max_Product_ID:
Load max(Product_Id) as MaxId
resident Stored_Products;

//Store the Maximum value of product Id in a variable.
Let MaxId = peek('MaxId',-1);

	 drop table Stored_Products;


//Pull the rows that are new.	 
NewProducts:
LOAD Product_Id,Product_Line, Product_category,Product_Subcategory
	 from [E:\Qlikview\data\product_categories.csv]
	 (txt, codepage is 1252, embedded labels, delimiter is ',', msq)
	 where Product_Id > $(MaxId);
	 
//Concatenate the new values with existing qvd.
Concatenate
LOAD Product_Id,Product_Line, Product_category, 
     Product_Subcategory
FROM [E:\Qlikview\data\products.qvd](qvd);

//Store the values in qvd.
store NewProducts into [E:\Qlikview\data\products.qvd](qvd);

Powyższy skrypt pobiera tylko nowe rekordy, które są ładowane i przechowywane w pliku qvd. Jak widzimy rekordy z nowymi identyfikatorami produktów 13, 14 i 15.