Лучшие практики
Qlik Sense
18
/21
О чем мы поговорим сегодня
На сегодня, помимо кейса Евразийского банка, мы подготовили для вас подборку разных советов по работе с Qlik, которые могут оптимизировать вашу работу и работу системы. Чтобы работать быстрее, выше, сильнее.
ИСТОРИЯ УСПЕХА
Новый подход к работе с данными — опыт Евразийского Банка
Один из крупнейших казахстанских банков — Евразийский Банк совместно с партнером GlowByte в 2021 году реализовали проект по переходу на новую систему репликации данных на базе возможностей Change Data Capture (CDC) в Qlik Data Integration.
Что такое репликация данных?

Репликация — это процесс, под которым понимается копирование данных из одного источника на другой и наоборот. При репликации изменения, сделанные в одной копии объекта, могут быть распространены в другие копии. Для приложения появляется возможность использовать не один сервер для обработки всех запросов, а несколько. Таким образом появляется возможность распределить нагрузку между серверами.

Посмотрите видео, в котором за 3,5 минуты репликация объясняется просто, подробно и на русском языке (вы точно поймете).
В период пандемии в 2020 году перед банком встал вопрос о модернизации интеграционных процессов и обновления версий системы управления базами данных (СУБД) Oracle для информационных систем банка и Корпоративного Хранилища Данных (КХД).

Новые версии СУБД не поддерживались существующей технологией репликации и интеграции источников с КХД. Банк принял решение интегрировать систему управления базами данных с КХД, чтобы поддержать репликацию данных онлайн и принятие решений на основе данных. Решение Qlik Data Integration было выбрано для поддержки аналитики и совершенствования клиентского сервиса.
Александр Наумов
заместитель председателя Правления Евразийского банка
Новое решение должно было отвечать сразу нескольким требованиям: поддержка большого перечня источников и приемников, поддержка разных версий СУБД, высокая производительность и отказоустойчивость, минимизация нагрузки на систему-источник. По этим критериям мы выбрали CDC-инструмент Qlik Data Integration.
Благодаря сотрудничеству GlowByte, Qlik и банка, за 4 месяца удалось совместно настроить загрузку более четырехсот объектов из 4 разнородных источников данных на СУБД Oracle и PostgreSql в операционный слой КХД. Теперь сотрудники банка могут самостоятельно настраивать загрузку такого же объёма данных.
Совокупный среднесуточный объем транзакционных журналов, обрабатываемых инструментом, достигает 5 Тб.
Даже на больших объемах данных, Qlik Replicate обеспечивает регламент near-realtime (почти в реальном времени), с секундными задержками между источниками и КХД и имеет отказоустойчивую конфигурацию.
Александр Наумов
заместитель председателя Правления Евразийского банка
…Переход на Qlik Replicate позволили нам не только повысить скорость репликации данных, но также надёжность данного процесса и скорость восстановления данных в случае потенциального сбоя. С момента внедрения несколько раз возникали ситуации, при которых старая система репликации вызвала бы значительное отставание в передаче данных, в то время как Qlik Data Integration достойно повела себя в этих обстоятельствах и безболезненно и оперативно восстановила обмен данными после устранения причин сбоя.
ТЕОРИЯ
Лучшие практики работы с Qlik Sense
На сегодня мы подготовили для вас подборку разных советов по работе с Qlik, которые могут оптимизировать вашу работу и работу системы. Работать быстрее, выше, сильнее.
Комментарии и документация
Своевременно оставленный комментарий может сэкономить от нескольких минут до нескольких часов последующего анализа кода приложения.

Например, вот такой комментарий будет весьма полезен, если вдруг обнаружатся расхождения в расчётах:
/* изменена логика расчета показателя по требованию от Иванова Ивана Ивановича 2018-09-03 Петровым Петром Петровичем для открытого бета-тестирования новой методики:
*/
При длинных расчетах, старайтесь комментировать логику вычисления, особенно если она нестандартная. Эти подсказки помогут как вам, в случае открытия этого отчета через несколько месяцев, так и вашим коллегам, кто возможно будет модерировать этот отчет вместо вас.
Наименование полей и переменных
Рассмотрим рекомендации на примере переменных. Напоминаем, что в Qlik Sense переменные задаются или в скрипте на этапе загрузки, или уже самом приложении через Редактор переменных.
+
Используйте наименования переменных, которые будут верны в большинстве случаев.

Естественное желание — выполнить приложение в едином стиле в одной цветовой палитре. Подбираем цвета и записываем их в отдельные переменные. Мы можем назвать созданные переменные именами cButtonGreen или cButtonGrey, на основе названий цветов, которые они будут хранить. Но что если наши требования к цветам изменятся?

Лучше назвать такие переменные по смыслу их действия:
cButtonOn, cButtonOff — цвет нажатой кнопки или выключенной.
+
Прописывайте описание переменных.
Так другим пользователям будет проще понимать их смысл и назначение.
+
Используйте единый стиль наименования полей.
Не стоит использовать одновременно c_Button_On и cButtonOff. Такие переменные будут разбросаны по всему списку наименований и ими будет неудобно пользоваться и искать.
+
Используйте одинаковые обозначения для кластеров функциональности.
Например, все переменные для цвета начинаются с «c» (color), переменные для пути к файлам данных «p» (path) и так далее. Выберите в вашей команде единые обозначения и это упростит всем совместную работу.
+
Избегайте длинных наименований.

Краткость — сестра таланта. Помните об этом, хотя бы потому, что в перечне переменных отображается 24 символа в редакторе переменных и 22 символа в конструкторе выражений.

По этой же причине, не стоит ставить важные идентификаторы полей в конце их названий. Когда будете пользоваться этими переменными, искать нужную среди «НаименованиеПеременнойРасчетаСложнойФункции1» … «НаименованиеПеременнойРасчетаСложнойФункции10», что будет несколько затруднительно.
+
Аккуратно используйте вложенные переменные.

Используйте вложенность переменных с пользой, но без фанатизма. Не стоит строить универсальную функцию для решения любой проблемы.
Если есть потребность отображать на линейном графике динамику продаж за полгода и за год, то полезна будет функция fDinamicSales, которая будет зависеть от переменной vMonths, в которой будет лежать или 6 или 12.

Или же функция fDinamic(fSales(vMonths)). Главное, чтобы у вас не получилось как с домом Джека.
Использование мер, измерений и визуализаций
Для элементов, постоянно используемых в приложении, полезно создание общих измерений, мер и визуализаций.

При создании визуализаций можно сохранить как сами визуализации, так и их части — меры и измерения — для последующего повторного использования. Это очень полезно для совместной работы: основную меру можно использовать в неограниченном количестве визуализаций, при этом достаточно изменить единственный экземпляр такой меры, чтобы изменения были отражены во всех случаях ее использования. Это очень похоже на использование переменных и функций, даже если просто посмотреть на их интерфейс создания.
Скрипт загрузки: подготовка данных
Помните о том, что продукты Qlik хорошо работают со своим форматом данных QVD, и есть два вида их загрузки:
  • стандартный (когда меняем поля, добавляем какие-либо вычисления, группировки, условия на выбор)
  • оптимизированный (когда загружаем данные без их изменения (переименовывать поля можно).
Старайтесь использовать выгоду второго по максимуму. Хорошо, когда самая большая таблица фактов в приложении грузится именно так — выигрыш в скорости довольно большой
Qlik Sense хорошо справляется с подготовкой данных при помощи встроенного ETL — Extract, Transform, Load — алгоритма по очистке и преобразованию данных. Более того, с его помощью можно объединять данные из разных источников. Плюс самостоятельно написанные коннекторы (например, для 1С).

Но несмотря на потенциальную возможность, стоит избегать глобальной модификации данных внутри самого Qlik Sense. Например, вы забираете данные с SQL-сервера и затем агрегируете их. Разумно будет провести эту операцию непосредственно на стороне БД. Конечно, если признак агрегации есть непосредственно в БД, но если его нет, то можно воспользоваться возможностью сделать это уже силами Qlik Sense.
Старайтесь выделять блоки, общие для схожих проектов. Например, Календарь. Вы можете писать календарь каждый раз для каждого из приложений, где он нужен. А можете написать достаточно универсальный (или несколько) код, который будет подходить к целому кластеру приложений. Стандартный календарь, управленческий, финансовый, и любой из вариантов — даже чтобы понедельник начинался в субботу.
Помните, что важными принципами лучшего решения остаются: поиск, анализ, здравый смысл, обмен опытом, умение выслушать критику, способность обучаться, извлекать пользу из ошибок и помнить, что лучшее — враг хорошего
Полезные ссылки
Если вам интересно узнать больше, переходите по ссылкам для дальнейшего изучения тем и расширения кругозора
Телеграм-сообщество Qlik
Приглашаем вас присоединиться к телеграм-чату Qlik, чтобы общаться с коллегами, задавать вопросы экспертам и оставаться в курсе новостей Марафона.
@qlikbi_chat
Обзор дня и встреча с экспертом: День 18
Анна Климкова, ведущий разработчик, Qlik
Евгений Стучалкин, технический директор, BI2Business
Евгений Скребанов, эксперт по Qlik Sense, Qlik Luminary 2014

2022