По мере увеличения объема данных в источнике данных документа 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.
Проверка загруженных данных.
Мы можем проверить данные, загруженные в документ QlikView, создав объект листа с именем Table Box . Это доступно в меню «Макет» и подменю « Новые объекты листа» .
Создание макета таблицы
Выбрав объект листа Table Box , мы переходим к следующему экрану, который используется для выбора столбцов и их позиций в таблице, которая будет создана. Мы выбираем следующие столбцы и их позиции и нажимаем Готово.
Просмотр существующих данных
Появится следующая диаграмма, отображающая данные, изложенные на предыдущем шаге.
Обновление исходных данных
Давайте добавим следующие три записи к исходным данным. Здесь идентификаторы продуктов — это уникальные номера, которые представляют новые записи.
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.