Учебники

QlikView — Добавочная нагрузка

По мере увеличения объема данных в источнике данных документа QlikView время, необходимое для загрузки файла, также увеличивается, что замедляет процесс анализа. Один из способов минимизировать это время, затрачиваемое на загрузку данных, заключается в загрузке только новых записей в источнике или обновленных. Эта концепция загрузки только новых или измененных записей из источника в документ QlikView называется инкрементальной загрузкой .

Чтобы идентифицировать новые записи из источника, мы используем либо последовательный уникальный ключ, либо отметку даты и времени для каждой строки. Эти значения уникального ключа или поля времени данных должны передаваться из исходного файла в документ QlikView.

Давайте рассмотрим следующий исходный файл, содержащий сведения о продукте в розничном магазине. Сохраните его как файл .csv в локальной системе, где он доступен для QlikView. Со временем добавляется еще несколько продуктов, и описание некоторых продуктов изменяется.

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

Загрузка данных в QlikView

Мы загрузим вышеуказанный CSV-файл, используя редактор сценариев (Control + E), выбрав опцию Table Files, как показано ниже. Здесь мы также сохраняем данные в файл QVD в локальной системе. Сохраните документ QlikView в виде файла .qvw.

incr_laod_create_qvd

Проверка загруженных данных.

Мы можем проверить данные, загруженные в документ QlikView, создав объект листа с именем Table Box . Это доступно в меню «Макет» и подменю « Новые объекты листа» .

table_box_option

Создание макета таблицы

Выбрав объект листа Table Box , мы переходим к следующему экрану, который используется для выбора столбцов и их позиций в таблице, которая будет создана. Мы выбираем следующие столбцы и их позиции и нажимаем Готово.

Incr_load_product_details

Просмотр существующих данных

Появится следующая диаграмма, отображающая данные, изложенные на предыдущем шаге.

incremental_load_data

Обновление исходных данных

Давайте добавим следующие три записи к исходным данным. Здесь идентификаторы продуктов — это уникальные номера, которые представляют новые записи.

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

Скрипт инкрементальной загрузки

Теперь мы пишем сценарий для извлечения только новых записей из источника.

// 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);

Приведенный выше скрипт извлекает только новые записи, которые загружаются и сохраняются в файле qvd. Как мы видим записи с новыми идентификаторами продуктов 13, 14 и 15.