Международная конференция QlikWorld 2020. Присоединяйтесь к нам, чтобы узнать, как получить максимальную пользу от ваших данных. Действуйте быстро. Зарегистрируйтесь сейчас и сэкономьте.

Создание приложения шаблона On-demand

Приложение шаблона On-demand — это стандартное приложение Qlik Sense с одной отличительной особенностью: скрипт загрузки приложения содержит выражения привязки данных для составления запросов к источникам данных. Эти выражения привязки данных используются в ходе создания приложения On-demand в целях считывания значений из состояния выборок приложения выбора и привязки этих значений к скрипту приложения шаблона. Благодаря этому созданное приложение загружается с подмножеством данных, контролируемым пользователем.

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

Примечание: Приложение шаблона On-demand не загружает данные напрямую. При попытке загрузить данные с помощью приложения шаблона возникнет ошибка. Подключение приложения шаблона должно быть действительным. Для проверки работы подключения необходимо создать приложение On-demand. При создании приложения On-demand служба приложения On-demand изменяет скрипт загрузки в целях загрузки состояния выборок приложения выбора On-demand. В случае успешного создания приложения On-demand можно говорить о надлежащей работе подключения приложения шаблона.

Структура приложения шаблона

Приложение шаблона связывается с приложением выбора при помощи ссылки навигации приложения On-demand. Ссылка навигации приложения включает свойства, которые управляют количеством записей, запрашиваемых в ходе загрузки данных в приложение On-demand. Скрипт загрузки приложения шаблона содержит выражения привязки данных, которые указывают, какие данные из приложения выбора следует использовать для создания запросов в ходе загрузки данных в приложение On-demand.

Примечание: Установка Qlik Sense Enterprise on Windows содержит образец приложения шаблона On-demand, находящийся в расположении ProgramData\Qlik\Examples\OnDemandApp\sample.

Выражения привязки данных имеют следующую форму:

$(od_FIELDNAME)

Префикс od_ служит для привязки состояния выборки приложения выбора к скрипту загрузки приложения On-demand, которое создается при помощи копирования приложения шаблона. Часть выражения привязки данных, следующая за префиксом od_, должна представлять собой имя, которое соответствует полю в приложении выбора. При создании приложения On-demand текущее состояние выборки приложения выбора служит для получения необходимых значений, которые затем привязываются к каждому полю. Каждое вхождение выражения $(od_FIELDNAME) в скрипт загрузки нового приложения On-demand заменяется списком значений, выбранных для соответствующего поля в состоянии выборки приложения выбора.

Для получения дополнительной информации о порядке привязки значений с помощью операторов LOAD INLINE см. Выражения привязки в приложениях шаблона On-demand.

Чтобы синтаксис SQL был действительным, оператор приложения шаблона SELECT для фильтрации нескольких значений должен использовать предложение IN. В целях создания правильного предложения WHERE рекомендуется написать подпрограмму:

SUB ExtendWhere(Name, ValVarName) LET T = Name & '_COLNAME'; LET ColName = $(T); LET Values = $(ValVarName); IF len(Values) > 0 THEN IF len(WHERE_PART) > 0 THEN LET WHERE_PART = '$(WHERE_PART) AND $(ColName) IN ( $(Values) )'; ELSE LET WHERE_PART = ' WHERE $(ColName) IN ( $(Values) )'; ENDIF ENDIF END SUB;

Перед вызовом подпрограммы ExtendWhere необходимо установить переменную WHERE_PART.

SET WHERE_PART = '';

Чтобы в операторе SQL оставалось неизменным предложение WHERE, а также предложения, вставляемые приложением выбора, вставьте предложение 'WHERE <condition>' в оператор SET. В противном случае используйте простой оператор SET.

Ниже приведен пример использования подпрограммы ExtendedWhere.

FOR EACH fldname IN 'ORIGIN', 'DEST', 'YEAR', 'QUARTER', 'ORIGIN_STATE_ABR', 'DEST_STATE_ABR' LET vallist = $(fldname); WHEN (IsNull(vallist)) LET vallist = ''; IF len(vallist) > 0 THEN CALL ExtendWhere('$(fldname)','vallist'); ENDIF NEXT fldname

Список имен полей должен соответствовать именам полей, которые используются в каждой созданной привязке поля.

После создания списка значений для каждого поля можно добавить оператор SELECT. Пример.

SQL SELECT "MKT_ID", "YEAR", "QUARTER", "ORIGIN", "ORIGIN_STATE_ABR", "DEST", "DEST_STATE_ABR", "TICKET_CARRIER", "FARE_CLASS", "PASSENGERS", "DISTANCE", 1 AS "FLIGHT_COUNT" FROM "SAPH7T"."/QT/AIRPORT_FACT" $(WHERE_PART);

Раздел $(WHERE_PART) оператора SELECT будет расширен, чтобы включить предложение WHERE, созданное в результате выполнения цикла FOR-NEXT, показанного выше. Список столбцов с выражениями, следующих за ключевым словом SELECT, необходимо изменить, чтобы он соответствовал столбцам указанной таблицы базы данных.

Предупреждение: При создании переменных привязки приложения On-demand не используйте имена полей модели приложения шаблона. Определенные в скрипте переменные становятся доступными в модели приложения шаблона, на которую даются ссылки в ходе создания визуализаций данных. Во избежание неопределенности в отношении полей модели приложения шаблона и переменных привязки приложения On-demand в скрипте загрузки данных выбирайте переменные привязки приложения On-demand, не пересекающиеся с полями модели. В переменные привязки приложения On-demand рекомендуется включать префикс. Например, используйте X_ORIGIN вместо ORIGIN.

Единый вход (SSO)

Приложения On-demand могут использовать single sign-on (SSO) с источниками данных, поддерживающими SSO. Подсистему и источник данных необходимо настроить для поддержки SSO.

Для получения дополнительной информации см. Настройка SAP HANA для единого входа SAML в Qlik Sense (только английский язык) и Настройка Cloudera Impala для единого входа (только английский язык).

После настройки подсистемы и источника данных для поддержки SSO приложение шаблона должно включить SSO путем добавления следующего синтаксиса к скрипту приложения шаблона.

///!ODAG_SSO

On-Demand App Service выполняет синтаксический анализ скрипта в ходе создания приложения On-demand и при каждой загрузке.

При загрузке приложения On-demand с помощью SSO удостоверение конечного пользователя направляется источнику данных. Конечный пользователь должен иметь доступ к источникам, которые используются подключениями к данным приложения шаблона. Даже при выборе более крупного набора данных загружаются только данные источника, к которым имеет доступ пользователь.

Предупреждение: Публикация приложений On-demand, созданных из приложений шаблона, использующих single sign-on (SSO), не поддерживается.

Узлы загрузки приложений шаблона

Администраторы могут управлять расположениями загрузки приложений On-demand в многоузловой среде путем настройки правил балансировки нагрузки для приложений шаблона. Если настроено правило балансировки нагрузки, все приложения, создаваемые из ссылок на приложение шаблона, будут загружаться в соответствии с правилом, которое применяется к приложению шаблона. Для получения дополнительной информации см. Управление приложениями On-demand (только английский язык).