Мы уже посвящали отдельный пост инструменту QlikView Data Profiler, который помогает разработчику быстрее разобраться с полученными данными при помощи визуализации данных документа QlikView. Наконец-то Стив Дарк (Steve Dark) разработал подобный документ и для Qlik Sense. Сегодня расскажу о Qlik Sense Data Profiler – как и предыдущая версия, он представляет собой набор Qlik Sense объектов, которые вы можете копировать из приложения в приложение, чтобы провести «рекогносцировку» данных документа Qlik Sense. Ну и ссылка с .qvf-примером Qlik Sense Data Profiler, как всегда, ждет вас в конце поста.

Создание Qlik Sense Data Profiler впервые

Итак, ниже – пошаговая инструкция, если вы впервые создаете Qlik Sense Data Profiler. Потом его можно копировать в любые новые приложения Qlik Sense, почти также удобно, как это было с версией для QlikView.

1. Для начала нужно создать Мастер Измерение с названием «Data Profiler Dimension». Это измерение включает список всех полей из системы, при этом код настолько прост:

=[$(=minstring($Field))]

Внимание: Если вы используете релиз Qlik Sense September 2017 или выше, можете также добавить выражение =minstring($Field) в поле «Название» (это поменяет название колонок и измерений на те, что в текущей выборке).

Create Dimension

2. Дальше начинаем создавать объекты на листе. Первым будет, как обычно, список полей (list of fields):

  • Перетащите на страницу объект Фильтр.
  • Пока в фильтре нужное нам измерение недоступно – это скрытое системное поле. Открываем раздел «Данные» в опциях объекта фильтр и функцию поля прописываем как «$Field», название меняем на «Data Profiler Fields»:

Field Filter Values

3. Фильтр по таблицам строится точно также, только функция поля у нас теперь «$Table », а название – « Data Profiler Tables»:

Table Filter Values

4. Следующий лист-бокс показывает значения в Мастер Измерении Data Profiler Dimension, которое мы создали раньше. Его можно добавить на лист двойным кликом на объект «Data Profiler Dimension» из списка мастер-измерений в левой панели. Если вы используете релиз Qlik Sense July 2017 или выше, можете также добавить в название выражение «=minstring($Field)»:

Field List Values

5. Теперь добрались и до бар-чарта, который показывает, сколько раз значение появляется в нашей модели данных.

  • Перетаскиваем объект бар-чарт на лист
  • В измерении указываем наше мастер измерение «Data Profiler Dimension»
  • Метку меры называем «Occurrences» и прописываем следующую формулу:

count([$(=minstring($Field))])

  • Наведем немного «красоты»:
    • Закладка «Вид-> Общее»: в названии чарта напишем «=’Occurrences of Values in $(=minstring($Field))’»,
    • Закладка «Вид-> Представление»: горизонтальное
    • Закладка «Сортировка»: по мере, по убыванию (для этого перетащите «Occurrences» над «Data Profiler Dimension»)
    • Закладки «Ось У» и «Ось Х»: убрать подписи осей
    • После всех этих манипуляций чарт будет выглядеть примерно так:

Occurrences Chart

6. Последний объект листа – таблица со статистикой по выбранному полю. Здесь целый набор мер, каждая из которых использует выражение [$(=minstring($Field))] в названии поля. Вот полный набор выражений мер:

Measure Expression
Field Name =minstring($Field)
Min Value minstring( [$(=minstring($Field))])
Max Value maxstring( [$(=minstring($Field))])
Max Length max(len([$(=minstring($Field))]))
Min Length min(len([$(=minstring($Field))]))
Has Alpha if(max(len(keepchar(lower([$(=minstring($Field))]), ‘abcdefghijklmnopqrstuvwxyz’))) > 0, ‘Yes’, ‘No’)
Has Number if(max(len(keepchar(lower([$(=minstring($Field))]), ‘0123456789’))) > 0, ‘Yes’, ‘No’)
Has Non Alhpa Num if(max(len(keepchar(lower([$(=minstring($Field))]), ‘0123456789’))) > 0, ‘Yes’, ‘No’)
Distinct Values num(count(DISTINCT [$(=minstring($Field))]), ‘#,##0’) & ‘ of ‘ &
num(count([$(=minstring($Field))]), ‘#,##0’) & ‘ (‘
& num(count(DISTINCT [$(=minstring($Field))]) / count([$(=minstring($Field))]), ‘#,##0.0%’) &
‘ unique)’
Null Values sum(if(isnull( [$(=minstring($Field))]), 1, 0))
Blank Values sum(if(trim([$(=minstring($Field))]) = ”, 1, 0))

Когда вы закончите, у вас получится подобный интерфейс:

Full Sense Data Profiler

Теперь вы можете выбрать любую таблицу и поле из всего набора данных и увидеть базовую информацию по таблице и полю.

Замечание специально для QlikView-пользователей: если при выборке в фильтре вам нужно сделать новую выборку, а не добавить объект к текущей, просто удерживайте Ctrl при клике.

Копипаст объектов в новые приложения

Одна из прелестей Data Profiler для QlikView была в легкости копирования – Ctrl+A, а затем Ctrl+C, чтобы скопировать все объекты листа, и Ctrl+V, чтобы вставить все это в QlikView. С Qlik Sense не так просто. В каждом приложении, в котором вы хотите использовать Qlik Sense Data Profiler, нужно:

  • Заново создавать Мастер Измерение (шаг 1 в инструкции выше)
  • Копировать все объекты за 1 раз не получится – только по одному. При этом, копипаст объектов не возможен между разными версиями Qlik Sense (Desktop, Cloud and Enterprise). Но обходной путь, конечно, есть – просто загружаете QVF-файл в нужную версию Sense и оттуда уже можно копировать =)

Ну и Стив Дарк (Steve Dark), как всегда, любезно поделился QVF-файлом на QlikCommunity. Вот ссылка для скачивания:
https://community.qlik.com/docs/DOC-19124

Спасибо Стиву за полезный инструмент для разработчиков! Ну и хороших всем Qlik Sense разработок =)