Когда я только начал использовать QlikView, под понятием большие данные понимался большой набор данных в 10 млн. записей. Обработать такой набор можно было легко на 4-ядерном процессоре с 36 Гб оперативной памяти. Сейчас уже 100 млн. строк обрабатываются на 16-ядерных процессорах с 256 Гб оперативки.

Не так давно я делал приложение из 7 млрд. строк, это была только одна транзакционная таблица. Технология Data Discovery легко справится с этой задачей, а для реальной обработки больших данных в QlikView и Qlik Sense нужны другие подходы.

Альтернативный подход к аналитике больших данных я представляю в такой последовательности шагов:

  1. Пользователь выбирает набор измерений из набор измерений приложения (эти выборки сгруппированы в URL).
  2. URL обращается к веб-службе, которая клонирует управляемый QVW и передает параметры в паблишер, который перезагружает документ с заданными параметрами.
  3. Пользователь перенаправляется во вновь созданное приложение QlikView.

Image showing steps to create an on demand QlikView application

Для нормальной работы приложения нужно использовать некоторые хитрости в процессе написания скрипта QlikView, и веб-служба должна быть написана на.NET.

Перемещение данных в URL

Для работы на этом шаге вам нужно найти решение для переноса выбранных измерений в корзину приложения, а затем в веб-службу. Это можно сделать при помощи настройки действия на открытый URL.

Некоторые особенности, которые нужно учесть при таком подходе:

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

Все эти ограничения приводят нас к поиску другого подхода

Отправляем данные в веб-службу через POST

Лучшим способом решения этой задачи будет POST. Данные при помощи POST отправляются в виде запроса. Эта информация скрыта от типового пользователя. Есть только одна проблема – QlikView не имеет встроенного объекта для настройки действий POST. Решение очень простое – создадим собственное расширение.

POST: расширение для Qlik

Создав это расширение, вы сможете работать в вашем приложении QlikView как в веб-среде. Итак, создадим специальную кнопку стиля, которая будет отправлять значения через POST в веб.

Здесь предлагаю вам воспользоваться готовым расширением в формате QAR. Весь код хорошо откомментирован, поэтому сложностей здесь возникнуть не должно. Открыть его вы сможете в любом текстовом редакторе.

Расширение позволяет разработчику Qlik настроить кнопку трансформации данных и обновлять их на HTML-странице через POST-метод. Стиль кнопки можно настроить через файл стилей CSS (внутри архива с расширением).

Использование расширение

Скачайте расширение и запустите его установку. После этого расширение отправлено в папку пользователя Qlik. Запустите документ QlikView и откройте настройки (настройки документа, общие). Выберите WebView. Теперь вы можете использовать расширение в своем приложении.

QlikView's General Settings Dialogue

Добавляем расширение

  1. Для добавления расширения открываем контекстное меню (щелчок правой кнопкой мыши в свободном поле листа документа QlikView) и добавляем новый объект.

QlikView, right click menu in WebView mode.

2. Из списка выберите объекты Расширение. Переместите кнопку на лист.
Thenew sheet object dialogue box.

3. Теперь кнопка активна на листе.

Настройка расширения

Здесь вы можете настроить условия.

  1. Нажмите правой кнопкой мыши на расширении и откройте Настройки.
    http://www.qliktastic.com/files/2017/02/FormPostExtension.png
  2. Здесь вы можете настроить следующие вещи:
    1. Текст кнопки: Это тот текст, который написан на кнопке.
    2. URL-ссылка: ссылка, куда отправляются данные в POST https://www.mywebservice.co.uk/webservice/v1/.
    3. Параметры: Данные передаются как единое значение с именем.
    4. Включить условие: принимает значение 0/1.
  3. Представление. Настройки другой части объекта.
  4. Вот и все. Получится вот такой формат:

HTML Snippet of the Extension

Расширение QlikView POST-кнопка

 

Удачных вам Qlik-разработок