Компанія Qlik є одним із провідних постачальників рішень для бізнес-аналітики та візуалізації даних на світовому ринку. Продуктами QlikView і Qlik Sense користуються понад 48 000 організацій – значна цифра, яка змушує, проте, замислитися.
Скільки користувачів з усіх цих компаній здатні здобувати максимум користі від можливостей QlikView і Qlik Sense?
Ми підготували низку порад і рекомендацій, які оптимізують вашу роботу під час проектування та розробки додатків на базі QlikView та Qlik Sense. В цілому вони можуть бути застосовані до обох продуктів, однак частина стосується тільки QlikView. Це буде позначено в кожному розділі. Ряд хитрощів виключно технічні, інші стануть в нагоді при створенні будь-яких об’єктів.
Новачкові буде корисна ця стаття, а досвідчений розробник зможе перевірити свої знання.
1. Коментуйте скрипт
Коментарі до скриптів дозволяють іншим людям зрозуміти, як все працює. Це зовсім не означає, що потрібно коментувати кожен процес. Досить додати коментар там, де ви зіткнулися з певними труднощами або де знайшли альтернативне рішення, яке потребує пояснення. Коментарі також зручні, якщо необхідно повернутися до коду, який ви робили місяць або навіть кілька років тому, і швидко розібрати його.
Залишити коментар до рядка не вимагає багато зусиль – просто додайте // на початку або скористайтеся комбінацією клавіш Ctrl + K + C. Щоб розкоментувати рядок, натисніть Ctrl + K + U.
2. Скористайтеся можливостями редактора скрипта
Якщо ви не хочете запускати частину скрипта з тієї чи іншої причини (наприклад, вона створює проблеми в роботі програми), ви можете її закоментувати.
Для цього в QlikView необхідно виділити текст і натиснути правою кнопкою миші. У контекстному меню виберіть «Коментувати» або «Розкоментувати».
У Qlik Sense потрібно виділити текст, а потім натиснути на значок коментаря.
Щоб закоментувати весь розділ скрипта, помістіть відповідні маркери на початку і в кінці:
/ * Відзначає початок закоментованого розділу.
* / Відзначає кінець закоментованого розділу.
Виглядає це так:
Крім цього, щоб зробити код легким для читання, ви можете вирівняти виділені рядки скрипта за допомогою клавіші Tab або комбінації Shift + Tab.
3. Пишіть код швидше
Прискорити роботу в редакторі скрипта QlikView допоможуть макрокоманди. Щоб отримати до них підказки, перебуваючи в редакторі, скористайтеся комбінацією Ctrl + Q, S, C (CTRL + Qlikview ShortCut). Вона викличе вікно з усіма сполученнями клавіш.
4. Форма Backus-Naur
Синтаксис командного рядка та скриптів QlikView описуються в нотації під назвою Форма Backus-Naur (ФБН). Це одна з метамов, які використовують для опису мов програмування з метою їх стандартизації. Визначення чіткої структури мови дуже важливо для того, щоб вона правильно конвертувалася в машинну мову під час виконання скрипта.
Щоб побачити синтаксис коду ФБН, в редакторі скрипта QlikView натисніть CTRL + Q + B + N + F.
5. Прокладіть шлях до відступу
Якщо у вас складний скрипт, який в певний момент необхідно відлагодити, не панікуйте.
Відмінний спосіб взяти під контроль цей процес – створити вкладку з командою “EXIT SCRIPT”. Переміщаючи її серед інших вкладок, ви вибираєте, коли саме хочете завершити скрипт.
Після відлагодження, не забудьте видалити цю вкладку.
6. Видаляйте все непотрібне відразу
Тимчасові об’єкти повинні існувати тимчасово. Саме тому після проведення необхідних розрахунків та трансформацій, тимчасові таблиці або поля потрібно видаляти.
Таким чином ви не тільки звільняєте пам’ять, а й уникаєте синтетичних ключів, LOOP міток і циклічних зв’язків, які негативно впливають на модель даних і порушують відображення даних у дашбордах.
Щоб запобігти появі подібних неприємностей, виробіть дві звички.
По-перше, перевіряйте всі повідомлення, які ви отримуєте за результатами завершення скрипта. Вони можуть містити відомості про наявність циклічних посилань, які необхідно вчасно усунути.
По-друге, за результатами завантаження даних, переконайтеся за допомогою системних полів, що завантажені таблиці не містять тимчасових ключів. Якщо вони виявлені, видаліть їх відразу.
Виробивши цю рутину, ви убезпечите себе від різних «сюрпризів», які можуть проявити себе в подальшому.
7. Обмежте завантаження
Якщо виникає необхідність відлагодити таблицю з великою кількістю рядків або зі складними об’єднаннями, зовсім не потрібно завантажувати всі записи.
Запустивши на панелі швидкого доступу режим відлагодження, ви можете вказати у вікні кількість записів, які хочете завантажити. Префікс First оператора Load також вирішує цю задачу.
Це можливо зробити і в Qlik Sense, як показано нижче:
8. Користь третього параметра ApplyMap
Таблиці зіставлення значно спрощують життя розробника при роботі зі скриптом в QlikView і Qlik Sense. З їх допомогою можна знайти одиночне значення в іншій таблиці і провести заміну значень полів під час виконання скрипта без завантаження непотрібних даних.
Використовуючи третій параметр функції ApplyMap, ви можете виявити значення, які упустили. Функція повертає їх, якщо вони не були знайдені в таблиці.
Наприклад, ApplyMap ( ‘MyMappingTable’, LookUpField, ‘No match’).
Шукайте значення “No match” або “NA” в цьому полі, щоб виявити прогалини в зіставлених даних.
9. Гарантоване виявлення помилки
Працюючи з include-файлами, використовувати команду $(Include) не вигідно, тому що якщо файл не знайдений, повідомлення про помилку ви не отримаєте.
В такому випадку краще використовувати $ (Must_Include), яка гарантовано викличе повідомлення про помилку в разі, якщо include-файл не буде виявлений.
10. Оглядач таблиць / моделі даних – ваш незамінний помічник.
Вище ми вже казали про те, що за допомогою системних полів можна виявити тимчасові таблиці і циклічні зв’язки. Той самий результат ви отримаєте, використовуючи функцію «Перегляд таблиць».
Більш того, «Перегляд таблиць» в QlikView та «Перегляд моделі даних» в Qlik Sense особливо знадобляться, коли ви додаєте таблиці або вносите зміни у зв’язки між ними.
Дані засоби знайдуть неправильні об’єднання, синтетичні ключі і випадково створені поодинокі таблиці, перш ніж вони поведуть за собою невідповідність даних.
11. If – не завжди найкраще рішення
Маючи на руках діаграми і табличні вирази, що містять значний обсяг даних, краще утриматися від використання оператора if. If () проводить порядкову обробку даних, що в результаті може гальмувати роботу ваших додатків.
Досягти кращої продуктивності в цьому випадку вам допоможе аналіз множин (Set analysis). Уміння його застосовувати вкрай необхідно для ефективної роботи в QlikView і Qlik Sense, так як аналіз множин є однією з основ для створення дашбордів. Він полегшить вам роботу, якщо потрібно порівняти різні періоди часу або створити вибірки, відмінні від загального набору даних.
12. Виявіть заблоковані файли
У разі незрозумілого перевантаження QlikView, коли ви впевнені, що скрипт не викликає дану проблему, зверніть увагу на файли QVD та логи.
Іноді виникають ситуації, коли один із цих файлів може бути заблокований. В результаті ви бачите помилку в операторі LOAD, а також при спробі перевантажити систему.
В такому випадку, закрийте всі екземпляри QlikView Desktop і спробуйте запустити її знову.
13. Раптове перезавантаження? Нема проблем!
Для кожного, хто витрачає багато часу на створення гідного проекту, величезна трагедія – втратити його через якусь помилку в додатку. На щастя, в QlikView є корисна опція, що дозволяє зберігати документ перед перезавантаженням.
Завдяки їй, вам не потрібно турбуватися про збереження вашого звіту, коли одна маленька помилка призводить до великих неприємностей в роботі скрипта.
14. Обійдемося без даних
У QlikView і Qlik Sense є можливість запустити недавно відкритий додаток без даних.
Це стане в нагоді, коли в вашому додатку зберігається величезний обсяг даних або ви ненароком створили монстра з поганим об’єднанням.
Для цього в QlikView клацніть на «Початкову сторінку», слідом – на «Нещодавно відкриті документи» і, вибравши потрібний документ зі списку, клацніть правою кнопкою миші і виберіть «Відкрити <назва програми> без даних».
У Qlik Sense потрібно всього лише натиснути правою кнопкою миші на додаток в хабі і вибрати «Відкрити без даних».
15. Збереження даних із тимчасових таблиць
Часом ми покладаємося на тимчасові таблиці, щоб обробити дані знову, або зберігаємо їх окремо, перш ніж вони будуть об’єднані. Зрозуміло, по закінченню скрипта вони очищаються.
Відлагодження проблем в таких таблицях може здатися важким завданням, але вихід є. Можна записати їх у файл QVD за допомогою команди STORE. Таким чином ви зможете зберегти всі дані після перезавантаження. Переглянути QVD-файли зручно за допомогою EasyQlik QViewer.
16. Риштування
Працюючи з новими даними, спробуйте використати команду QUALIFY * на початку скрипта при завантаженні таблиць із вихідного джерела. Це допоможе зберігати таблиці окремо, поки ви не вирішите, які ключові поля потрібні.
Презентувати дані у вигляді табличних блоків на етапі дослідження набагато спрощує початок роботи. Далі ви без зусиль зможете перейти до діаграм або прямих чи вільних таблиць.
Деякі фахівці називають цей метод «риштуванням» – каркас (табличні блоки) зникає, як тільки з’являється постійна структура.
17. Єдиний календар
Розробнику QlikView і Qlik Sense часто доводиться стикатися з вибором певних дат у додатку (фінансові періоди, часові діапазони та багато іншого). Щоб організувати робочий процес і уникнути плутанини, використовуйте основний календар.
Слід взяти за правило прив’язувати дані в додатку до одного календаря, уникаючи декількох відборів дат. В іншому випадку ви ризикуєте заплутати користувача й ускладнити собі роботу, підтримуючи розподіл.
Говорячи про організацію роботи …
18. Зберігайте інформацію в одному місці
Нам часто доводиться працювати з даними з різних систем. Звичайно, у кожної системи є таблиця фактів, що містить дати та ряд вимірювань.
Щоб уникнути потенційного хаосу в асоціативної моделі QlikView та Qlik Sense, зберіть всі дані в одну таблицю. Це допоможе спростити з’єднання і в цілому працює ефективно.
Важливо! Перед об’єднанням, переконайтеся, що агреговані поля мають різні назви, щоб дані раптово не змішалися.
19. Копіюйте кольори …
Ще одна зручна опція в QlikView – повсюдне копіювання кольору. Це також стосується копіювання кольорів із виразу, де вони логічно підібрані.
Потрібно просто натиснути правою кнопкою миші в поле кольору і вибрати «Копіювати». Визначившись з місцем призначення, виберіть «Вставити все» і готово!
20. … та навіть вирази!
У QlikView, окрім цього, можна копіювати вирази з одного об’єкта в інший. Більш того, ви не просто копіюєте текст, а все форматування, включаючи кольори, форматування тексту тощо.
Як і раніше, використовуйте праву кнопку миші, щоб копіювати і вставити, коли виникне потреба.
21. Втрачені! Чи ні?..
Продовжуючи розмову про QlikView, розробник може скористатися функцією «умовного показу», щоб приховати певні об’єкти та листи, доки не знадобиться їх відобразити.
Дуже зручно, але, якщо ви допустите помилку в логічній умові, можна з ними розпрощатися.
В такому разі, не впадайте у відчай. Щоб їх відновити, виконайте наступні дії для листів:
Властивості документів> Листи
Для відновлення об’єктів:
Властивості листів> Об’єкти
22. Форум Qlik – майданчик для спільного вирішення задачи
Зіткнувшись із проблемою в QlikView або Qlik Sense, шукайте рішення на форумі Qlik. Напевно, ви не перший, хто через це пройшов. Якщо ні, можна поставити запитання і вам із радістю допоможуть.
Крім цього, не забувайте про схожість мови скриптів і функцій в QlikView і Qlik Sense. Рішення для кожної з них знадобляться в більшості випадків.