Когда-нибудь вы задумывались над тем, чтобы хранить модель данных в едином QVD? Это может быть интересной и полезной задачей. В каких случаях такой подход имеет смысл:

  • Когда у нас есть архив и его распаковка с моделью данных.
  • Когда преодолеваем ограничения бинарной загрузки.

Какие инструменты есть для этого у QlikView:

Qvc.ExportModel — извлекает все таблицы в единый QVD.

Qvc.ImportModel — импорт всех таблиц, созданных на этапе экспорта таблиц с помошью Qvc.ExportModel.

Для того чтобы воспользоваться этими инструментами, вам нужно скачать компоненты QVC V11.

Если вы не хотите скачивать себе компоненты, то можете воспользоваться скриптом, предложенным одним из гуру по Qlik, Rob Wunderlich.

Использование QVC требует наличие библиотеки Qvc.qvs, процедур CALLing Qvc и очистки CALLing процедур в конце скрипта.

Предположим, что этот скрипт встроен в приложение по продажам “Sales Dash.qvw”,  тогда по умолчанию модель данных будет названа “Sales Dash.qvd” и сохранена в той же папке, что и приложение QlikView.

Итак, чтобы импортировать эту модель QVD в другое приложение qvw, замените CALL на ExportModel из строк скрипта примера, описанного выше:

CALL Qvc.ImportModel(‘Sales Dash.qvd’)

Модель будет разобрана как отдельные таблицы.

Qvc.ExportModel имеет несколько параметров:

CALL Qvc.ExportModel([‘qvddir’],[‘qvdname’],[‘addTimestamp’]);

Параметр Описание
1 Относительный или абсолютный путь хранения файлов QVD.
2 Название модели данных QVD. По умолчанию будет использовать то же название, что и название QVW. Например, из файла “Sales.qvw”, получится “Sales.qvd”.
3 Настройка параметров: 1/0 True/False. При истинном значении переменной время переносится из QVW в QVD. Если эту настройку пропустить, то время указано не будет.

У Qlik Sense нет пути по умолчанию, поэтому параметр #1 и библиотека, lib:// для QVD должна быть прописана.

Qlik Sense также будет нужен веб-файл:

webfile-connection

После определения веб-соединения и соответвующей папки для хранения файлов QVD, скрипт Qlik Sense примет вид:

$(Must_Include=lib://QvcWeb);

Call Qvc.ExportModel(‘lib://QVData’)

CALL Qvc.Cleanup;

На этом все на сегодня! Быстрых и качественных вам разработок!

Дополнительная информация о компонентах QlikView:

QlikviewComponents.org.