Что я усвоил, просмотрев более 500 дэшбордов

Во время подготовки к недавней презентации я искал дэшборды, которые могли бы проиллюстрировать некоторые из моих идей. Я не хотел, чтобы презентация содержала только мои дэшборды.

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

Демонстрация продукта может стать странной

Большинство дэшбордов уделяют больше внимания функциям продукта, нежели дизайну. Это вывод, который я сделал, только увидев странное размещение объектов на одной странице. Пузырьковая диаграмма рядом с трёхмерной круговой диаграммой и тут же размещена карта? Какая-то картинка с дюжиной датчиков? Диаграмма связей с светофором? Извините, это просто странно.

Большинство дэшбордов имело общие темы, такие как продажи, обслуживание клиентов или здравоохранение. Но меры внутри дэшборда никогда не имели какого-либо смысла. Обычно вы не ставите такие показатели, как рейтинг команд, ежегодные показатели продаж и дефекты продукта вместе. Я преувеличиваю, но это недалеко от истины. Я полагаю, дизайнер сказал: «Смотри, ты можешь поместить всю информацию вместе». Но я спрошу: «А нужно ли?».

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

Это лишь недостаток знаний о визуализации данных?

Более внимательный обзор дэшбордов выявляет плохой выбор стиля и общее отсутствие знаний о визуализации данных. Самый крупное преступление — это неправильное использование датчика дэшборда. Хотя многие разработчики возражают против датчиков, их можно успешно использовать. Есть множество руководств для их использования, но большинство из существующих дэшбордов им не следует. Многие из основных принципов визуализации также не были соблюдены. Может быть, дизайнер был так вдохновлен идеей создания приборной панели автомобиля, что была забыта необходимость сделать эти данные понятными. Какая организация имеет 20 KPI на одной странице?

На многих дэшбордах отображаются яркие палитры со странным выбором цвета фона. Единственная вещь, которую я знаю о дэшбордах — если пользователь не нуждается в представленных данных, то ваш дэшборд можно судить только по тому, как эстетично он смотрится. Если пользователю требуется информация для выполнения рабочего задания, дэшборд может быть ужасным, но всё ещё востребованным.

Но разве вы не хотите хорошо выглядящий дэшборд? Существует дисциплины визуализация данных и веб-дизайна. Этому можно научиться.

Термин «Performance dashboard» не является общепринятым

Некоторые дизайнеры используют MS Excel для создания дэшбордов. Это злоупотребление инструментом. Дэшборд – это инструмент для всей организации и должен быть доступен в центральном расположении. Как вы можете совместно использовать таблицу Excel в организации? Через электронную почту? Как вы его обновляете и как вы контролируете изменения?

На мой взгляд, дэшборд — это очень специфический инструмент, используемый в организации. Это позволяет организации устанавливать цели и отслеживать эти меры в течение определенного периода времени. Это инвестиции. По мере того как организации растут, дэшборд помогает организации с ростом. Он фокусирует использование данных, которые показывают реальную ценность данных.

Какой должен быть дэшборд?

Учитывая примеры выше, вы должны задаться вопросом, эффективен ли дэшборд или вообще годен к использованию? В конце концов, он может быть скучен для посторонних. Дэшборд настроен на организацию и содержит только то, на чём фирма хочет сфокусироваться. Одна компания хочет сфокусироваться на подготовке, тогда как другой нужно сфокусироваться на повышении эффективности с меньшей затратой ресурсов. Эти проблемы должны отображать разные KPI и нуждаются в разной контекстной информации.
«Когда дэшборд привлекателен и эффективен – это превосходно.»
Во многих случаях правильным выбором будет использовать лишь надежные гистограммы, линейные диаграммы и несколько датчиков. Чистый, простой дизайн поможет пользователю сосредоточить внимание на мерах. Я полагаю, эти принципы не популяризируют многие инструменты построения панелей мониторинга; тем не менее, существует и искусство продаж и маркетинг.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Низкий уровень коммуникации является причиной неудач в сфере бизнес-аналитики, утверждает Gartner.

Согласно исследованию аналитической компании Gartner, 70% и 80% проектов корпоративной бизнес-аналитики проваливаются.
Совокупность низкой коммуникации между IT и бизнесом, неумение задавать правильные вопросы или думать о настоящих нуждах бизнеса означает, что большинство проектов бизнес-аналитики потерпят неудачу, утверждает компания.
ИТ-отделы делают ошибку, рассматривая BI как инженерную проблему, требующую конкретного набора решений.
Но первый шаг должен состоять в том, чтобы выяснить, что действительно нужно бизнесу, говорит Патрик Михан (Patrick Meehan), президент и директор по исследованиям группы Gartner CIO Research.
«Если вы не зададите правильные вопросы, BI не будет хрустальным шаром, дающим верные ответы. Люди в ИТ должны перестать распознавать BI как вендор или инженерное решение, или как инструмент. Им нужно понять, что они делают. Они занимаются информационным и коммуникационным бизнесом».
Частично проблема заключается в том, что руководители и ИТ-директора подходят к BI с разных сторон, говорит Михан.
«Они не сели и не создали lingua franca для BI. Как вы можете оправдать ожидания, если у вас есть одна сторона, говорящая на латыни, а другая говорящая на греческом?».
Многие вопросы, на которые компании должны отвечать в успешном BI-проекте, — это психологические и социологические, а не технические вопросы, заявляет Михан.
Они должны думать о том, как люди собираются использовать бизнес-аналитику и как они хотят представить информацию.
Им нужно посмотреть, нужна ли людям историческая информация или информация в режиме реального времени, и будут ли люди использовать бизнес-аналитику для совместной работы.
Михан посоветовал ИТ-отделам полагаться на опыт остальной части бизнеса, чтобы определить, что им действительно нужно от проекта BI. Это может означать, например, привлечение людей из маркетинга, продаж, рекрутинга, и людей с опытом в социальных взаимоотношениях.
«Это, возможно, будет внешняя информация о вашей компании, о которой раньше вы не были осведомлены. Вы должны думать как антрополог, привлекать правильных людей. Задача становится больше похоже на сбор информации.
Важно, чтобы для ИТ-департамента не думать о BI как об одноразовом решении, считает Gartner. Данная область развивается так быстро, что хорошее решение через два года может перестать им быть, говорит Михан.
«Бизнес-аналитика находится в топ-10 проблем ИТ-руководителей последние 10 лет. Это движущаяся цель, и она изменяется каждый год, так как инструменты становятся более зрелыми. BI как компетенция теперь ожидается как от работников умственного труда, также как и от руководителей. Другими словами, финишная прямая постоянно движется веред», сказал он.
Он советует ИТ-департаментам искать персонал с лидерскими качествами, который может работать с различными областями бизнеса.
«Большинство людей в IT – это менеджеры. Этому навыку можно научиться – предоставьте лишь время, стоимость и бюджет. Но иногда лучше потратить вдвое больше времени и денег, но мы получить 50-кратную выгоду. И это не управленческое мышление, а лидерское.»

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Битва Power BI vs Qlik

Архитектура Qlik

Как QlikView, так и Qlik Sense построены на ассоциативном движке аналитики памяти (QIX). Основываясь на выборе пользователя, вычисления проходят с данными, хранящимися в данный момент в памяти. Результаты возвращаются посредством интернет-приложения. Уникальные записи сохраняются только один раз в памяти, а связи между элементами данных представлены в виде точек. Это позволяет значительно сократить сжатие данных, увеличить объем данных в оперативной памяти и сократить время отклика для пользователя. Как QlikView, так и Qlik Sense могут быть развернуты на одном сервере и масштабироваться вертикально и горизонтально, чтобы учитывать доступность и требования вашего размещения, будь то в помещении или в облаке.

QlikView Desktop и Qlik Sense Desktop — это инструменты разработки, используемые для создания приложений QlikView / Qlik Sense. Приложения подключаются к источникам данных для извлечения данных и хранятся в сжатой форме в файле приложения. Затем файл приложения можно опубликовать на сервере (в помещении или в облаке), чтобы другие могли его использовать.

Архитектура Power BI

Power BI service построен полностью в облаке (Azure). Архитектура Power BI service основана на двух кластерах — Web Front End (WFE) и Back End. WFE ответственен за начальное подключение и процесс аутентификации, а Back End управляет визуализацией, хранением данных, связями данных и обновлением данных. Power BI service использует Power BI gateways для подключения к данным Вашей организации в помещении или в облаке.

Power BI Desktop — это инструмент разработки, используемый для создания панелей мониторинга и отчетов. Файл, созданный в Power BI Desktop, может быть опубликован в Power BI service, предоставляя доступ другим пользователям через настольные и мобильные устройства.

Сравнение функциональности

  1. Любые данные, в любом месте, в любое время.
  2. Оба инструмента могут быть связаны с множеством источников данных, дают возможность видеть данные откуда угодно и в любое время. Qlik Sense использует HTML 5, поэтому может быть представлен на мобильных устройствах только как сайт. С Power BI Вы также можете зайти на сайт на Вашем мобильном через браузер, но Вы можете установить мобильное приложение. Встроенные мобильные приложения позволяют лучше использовать функцию сенсорного экрана или кнопки на устройстве.
    Qlik: 1, Power BI: 1

  3. Самообслуживание, легкость создания, визуализация с перетаскиванием.
  4. Оба продукта одинаково хороши в этих вопросах.
    Qlik: 2, Power BI: 2

  5. Перезагрузка данных
  6. С помощью перезагрузки данных сервер QlikView и сервер Qlik Sense могут обеспечивать перезагрузку по расписанию, по событию (например, при успешной перезагрузке другого приложения или через прямой запрос). (Обратите внимания, в облачном Qlik Sense нет перезагрузки по расписанию). Power BI может перезагружать по расписанию и прямому запросу. Поэтому я считаю, что Qlik более гибкий с точки зрения перезагрузки данных.
    Qlik: 3, Power BI: 2

  7. Поиск
  8. Поиск — Qlik Sense имеет поле интеллектуального поиска, в котором вы можете ввести ключевое слово, и он будет искать это слово в данных. Power BI имеет преимущество: Вы можете задать вопрос на естественном языке, например «Где у меня самая большая разница?». Таким образом, Power BI определенно выигрывает этот раунд.
    Qlik: 3, Power BI: 3

  9. Надстройка с помощью Open REST API
  10. В наши дни ориентированность на потребителя очень популярна, поэтому оба продукта позволяют Вам установить надстройки, используя Open REST API. Оба продукта имеют постоянно увеличивающееся число расширений и библиотек.
    Qlik: 4, Power BI: 4

  11. История данных
  12. Qlik Sense дает вам возможность строить историю данных, поэтому вы можете представить свои идеи в PowerPoint, возможно, сосредоточив внимание на продаже региона, сравнивая его с другим, а затем сможете вернуться к источнику данных, если возникнет вопрос во время встречи.
    Power BI на самом деле не имеет истории данных, но позволяет обмениваться панелями мониторинга (дэшбордами) и отчетами в Интернете.
    Qlik: 5, Power BI: 4

  13. Безопасность — ограничение доступа к данным
  14. QlikView и Qlik Sense Server (но не Qlik Sense Cloud) очень гибки в ограничении доступа к данным для различных ролей в Вашей организации. Для Power BI данная функция ограничена предварительным просмотром.
    Qlik: 6, Power BI: 4

    Заключение

    В заключение, Qlik — более зрелый продукт, предоставляющий больше возможностей, хотя Power BI догоняет его.

    Найти решение у бизнес-партнера QlikTech (QlikView) в России.

    Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Tableau Vs Qlik — истинная стоимость

Недавно я писал о том, стоит ли Вам выбирать Tableau или Qlik для визуализации данных. Я упомянул, что напишу ещё один пост о ценах этих инструментов.
По мере написания статьи я осознал, что «Дешёвый инструмент, который Вы не используете, дороже, чем дорогой инструмент, который Вы используете часто».
Поэтому я решил сосредоточиться на том инструменте, который Вы собираетесь использовать намного чаще. Несомненно это инструмент, который лёгок в использовании. Лёгкость может быть выражена как число кликов, необходимых для выполнения обычной задачи.
Посмотрите видео ниже, чтобы увидеть количество кликов, необходимых для создания простой диаграммы в Tableau и в Qlik Sense.

Сейчас Вы cможете понять, почему я нахожу Tableau более расположенным к пользователю в сравнении с Qlik Sense.
9 кликов в Tableau и моя диаграмма готова. В то время как я должен был сделать 20 кликов в Qlik Sense, чтобы получить тот же результат, но не смог применить фильтр диапазона дат, как сделал в Tableau.

Источником отчёта является таблица заказов, которая имеет различные поля, такие как id заказа, дата заказа, id клиента, сегмент клиента, объем продаж, и т.д.
Я хотел увидеть объем продаж для каждого сегмента покупателя, а также отфильтровать заказы по дате в диапазоне.

В Tableau я просто разместил мои поля в строках и столбцах, и диаграмма была создана. Тогда как в Qlik Sense я сначала должен был выбрать вид желаемой диаграммы.
Чтобы создать временной фильтр, я просто перетащил поле «даты заказа» на панель фильтров в Tableau. Дата — это непрерывное поле, и Tableau это понимает и предоставляет мне опцию range, а также relative date для фильтрации, Qlik Sense же просто предлагает выпадающий список. Чтобы получить date range или relative date в Qlik Sense необходимо иметь расширение (для такой базовой функции, которую можно ожидать в любом отчёте).

Посмотрите, как легко мне было поменять цвета для измерения сегмента покупателя в Tableau, и на сколько больше потребовалось времени, чтобы справиться с этой задачей в Qlik Sense.
Это был лишь небольшой пример. Есть много ситуаций, когда Вам будет слишком мучительно выполнять простые вещи в Qlik Sense в сравнении с Tableau.
Я надеюсь, что данная статья дала Вам ясное представление о реальной стоимости каждого продукта.

P.S. В этой статье основное внимание уделяется визуализации данных и лёгкости, с которой это может быть достигнуто в Tableau. Хотя Qlik великолепен в моделировании данных и имеет некоторые ETL возможности.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

11 новых ожидаемых возможностей Tableau 9.3

Мы невероятно взволнованы: версия 9.3 уже доступна! Она имеет множество новых возможностей. Ниже приведены некоторые из важнейших и, по моим оценкам, достойных рассмотрения.

Я разделил их на 3 группы: новые возможности-хедлайнеры, о которых все говорят; простые новые возможности, которые являются функциональным расширением, не обязательно важнейшими, но все же очень занимательными; и новые маленькие возможности – это небольшие малоизвестные улучшения, относящиеся к пользовательскому интерфейсу или функционалу. Существует множество интересных возможностей, которые делают все немного проще и поэтому понравятся пользователям Tableau.

Хедлайнеры

  1. Объединения
  2. Да, наконец мы можем ликвидировать эти ужасные пользовательские sql, так как Tableau предоставил возможность сделать это в окне конфигурации источника данных! Посмотрите ниже, насколько просто объединять данные.
    Даже есть возможность принимать подстановочный знак ввода из файлов, так что вам не нужно указывать имя каждого файла, а надо лишь направить Tableau к папке Excel или текстовому файлу, и программа позаботится обо всем остальном сама.

  3. Журнал версий
  4. Долгожданное требование корпораций теперь размещено на сервере Tableau Server: рабочие журналы и источники данных, опубликованные на сервере Tableau, теперь будут иметь историю версий, так что теперь у вас есть возможность обращаться к предыдущим версиям в случае, если вы случайно опубликовали сделанную в пятницу после обеда версию панели управления своего СЕО с изображением кота.

  5. Новая возможность нанесения данных на карту
  6. Всем нравятся хорошие карты, а с Tableau размещение данных на картах стало исключительно простым: часто для этого потребуется просто дважды кликнуть мышкой. Версия 9.3 выпущена с некоторыми обновлениями нанесения данных на карты, которые понравятся британцам, так как сначала отображается почтовый индекс, привычный нам. Другие обновления таковы:

    • Районы Индии;
    • Демографические слои данных США на 2016 год;
    • Обновления почтовых индексов США на 2016 год;
    • Обновления почтовых индексов для Великобритании, Франции и Германии;
    • Добавлены почтовые индексы для 39 стран Европы, включая Бельгию, Италию, Нидерланды, Испанию, Швецию, Швейцарию и другие.

    Простые возможности

  7. Предустановленные драйверы
  8. О, сколько раз я пытался установить панель управления Tableau на новое устройство и сколько раз не мог подключиться к моим данным, и я понял, что это было из-за отсутствия драйвера. К счастью, для MS SQL Server, MySQL, Postgres и пользователей Amazon Redshift, те времена уже давно стали историей. Теперь во время установки вы получаете небольшой список задач с полем пометки о выполнении, где вы можете выбрать включение этих драйверов как части установки. Очень здорово: это должно убрать головную боль некоторых ИТ-специалистов и пользователей!

  9. Повышение производительности
  10. Все работает быстрее. Нужны ли вам детали? Конечно, но это довольно утомительно расписывать, поэтому прочтите об этом в свое свободное время. Если обобщить, то управление памятью было усовершенствовано в движке данных так, что запросы извлекаются и загружаются намного быстрее. Также отмечу, что при загрузке рабочего журнала в Tableau Server программа подключается только к источнику, необходимому для отображения ваших данных. Это означает, что при наличии нескольких таблиц в рабочем журнале Tableau подключится только к необходимому источнику, таким образом, у вас будет возможность отображать данные максимально быстро.

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

  11. Поддержка дисплеев высокого разрешения
  12. Поддержка дисплеев высокого разрешения внесена в продукт, с учетом всего нескольких незначительных упущений выпускаемых версий. Те, кто пользуются дисплеями с высоким разрешением в ноутбуках с ОС Windows, должны знать о некоторых недостатках, но ходят слухи, что версия 9.3 содержит инструменты масштабирования и строки меню, окна данных и макеты, а также другие элементы.

  13. Загрузка прогрессивной панели управления
  14. Итак, это отличная возможность сэкономить время. При загрузке панели управления на сервере Tableau каждый лист на ней будет воспроизводиться индивидуально, по мере его готовности – в отличие от воспроизведения всего и сразу, как это происходит сейчас, что приводит к длительному ожиданию отображения каких-либо данных.

    Новые маленькие возможности, которые вы полюбите

  15. Цветное кодирование управления общими и промежуточными данными
  16. Подводим промежуточные итоги выбранных табличных данных? Без проблем! Я предпочитаю воспринимать выбранные табличные данные как первый шаг (после выхода из области перекрёстных таблиц) в перемещении к визуальной аналитике, и это было последним камнем преткновения на этом пути, так что я знаком со многими людьми, которые очень обрадуются таким нововведениям.

    Публикация источника данных автоматически заменяет локальный источник данных на опубликованный

    Никакие описания здесь не требуются. Эта возможность позволит Tableau сэкономить миллионы кликов, в результате чего повысится продолжительность жизни мыши и снизятся продажи мышек в сфере аналитики.

    Прокрутка для увеличения масштаба карты

    Теперь это работает, как и в Google-картах! Теперь, когда ваша мышь перемещается на карту Tableau, вы можете изменить масштаб без необходимости удерживать определенный контроллер или командную кнопку. Другая удачная возможность – при выполнении двойного клика карта будет центрироваться в месте расположения курсора мыши.

    Теперь руководители проектов могут менять владельца, ЗАПУСКАТЬ ОБНОВЛЕНИЯ ВЫПИСОК и перемещать контент

    Пользователи, выполняющие роль руководителей проекта в Tableau Server, теперь получили больше возможностей контроля над содержимым проекта: они могут обновлять выписки по требованию, перемещать содержимое из одного проекта в другой (при условии, что они являются руководителями обоих проектов) и изменять структуру содержимого в своем проекте.
    Это большой шаг на пути к созданию усиленной роли администратора контента, находящегося между издателем и администратором сайта, а также должно оказать помощь в планировании развертывания Tableau Server.

    Найти решение у бизнес-партнера QlikTech (QlikView) в России.

    Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

5 вещей, которые я хотел бы знать о Tableau, когда начинал его использовать

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

Зеленый против Голубого

Зеленые поля данных являются непрерывными (могут содержать бесконечное число значений), а синие поля данных – дискретными (содержат конечное число значений). Tableau работает по-разному в зависимости от того, какой тип поля используется для визуализации. Я не буду вдаваться в подробности, но подчеркну еще раз, что голубым будут заданы заголовки, цвета категорий и мультивыборные фильтры, а зеленым цветом задаются оси, градиентные цвета и фильтры диапазона. Это основополагающие вещи для понимания тех принципов, в соответствии с которыми Tableau представляет материал на экране: если вы не понимаете этих различий, я рекомендую вам прочитать статью трижды, прежде чем приступать к работе!

Разбивка и адресация

Табличные расчеты являются одним из самых мощных инструментов в Tableau, но они также и одни из самых сложных. Когда я начал использовать табличные расчеты, в основном я думал над тем, что же предпринять для получения корректных результатов. Изучив основы теории (в частности, разобравшись, что подразумевается под «разбивкой» и «адресацией»), я смог понять, что, где, когда, почему и как производится в табличных расчетах.

Руководство по Tableau гласит:
«Поля адресации определяют, какую часть таблицы вы обрабатываете. Поля разбивки определяют, как сгруппировать расчеты».
Что касается меня, то я не нахожу это пояснение полезным. Давайте попробуем перефразировать и упростить его таким образом, чтобы его можно было применить к расчету таблицы, с которой мы работаем в Tableau. Если поля разбивки «группируют вычисления», мы могли бы начать говорить «на одного клиента», или «на один продукт», или «по способу передачи, комбинации хранилища» и т.д.
Полями адресации являются те, которые используются в производимом расчете. Исходя из этого можно продолжить примеры: «вычислить % от общей суммы для каждого региона» или «вычислить разницу для каждой категории». Составьте эти два утверждения вместе, и мы получим что-то, напоминающее обычное предложение и более понятное.

В приведенном выше примере мы получаем «вычисление процента по каждому региону от общего числа по каждой категории». Мне чтение вслух утверждений такого типа помогает определить, как настроить вычислительную операционную панель.
Примечание: При использовании кнопки быстрого доступа меню «Compute using» («Вычислить, используя»), будет установлено все, выбранное в ячейке адресации («для каждой»), а также для любого другого измерения, используемого в отображении ячейки разбивки.

Tableau прописывает язык запросов с помощью перетаскивания

Tableau – довольно грамотное программное обеспечение, использующее все виды передовых технологий, что позволяет быстро создавать сложные визуализации из огромных массивов данных с помощью простого перетаскивания. Но само ядро Tableau «разговаривает» с вашими данными, используя форму SQL, а затем из источника данных направляет на экран результаты через «переводчик». Понимая то, что происходит внутри приложения, вы сможете управлять им очень эффективно и элегантно. Установите параметр на строку, а меру в ячейку, и вы напишете запрос вдоль строк:

SELECT Region, Sum(Sales) FROM Orders GROUP BY Region

Задайте другие параметры в поле фильтра, и будет добавлено условие «WHERE» («ГДЕ»). Выполните сортировку, и вы получите «ORDER BY» («УПОРЯДОЧИТЬ ПО») и т.д.
Почему это важно? Всякий раз, когда я останавливаюсь и не знаю, какие поля использовать или как их настроить, я спрашиваю себя: «Как бы я сделал это без Tableau?», то есть какие шаги необходимо предпринять, чтобы получить необходимый результат в базе данных или электронной таблице. Использование такого взгляда на настройку часто помогает мне обнаружить недостающее звено, необходимое в Tableau.
Конечно, если вы не знакомы с базами данных и SQL, вы все равно можете стать опытным пользователем Tableau, но, если у вас уже есть хотя бы небольшой опыт работы с фоновым анализом данных, он поможет вам усовершенствовать работу с Tableau. Проверьте файл log.txt в каталоге «My Tableau Repository» («Мой архив Tableau»), чтобы увидеть, что происходит в фоновом режиме.

Порядок операций

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

Порядок обработки процессов:

Контекстные фильтры создают временную таблицу в источнике
Верхний N- и/или условные фильтры — часть вашего оператора SELECT (ВЫБОР) в запросе
Стандартные фильтры применяются в качестве условия WHERE (ГДЕ)
Вычисляются массивы
Применяются табличные расчеты
Создается макет таблицы и осей
Учитываются все поля страницы
Рисуется разметка

Знания о том, что стандартный фильтр вводится после активации верхнего N-фильтра, но прежде производится табличный расчет, могут помочь вам выйти из ситуаций, когда, например, не отображается процент от общего количества при фильтрации.

Использование функции INDEX (и ее близких родственников)

Несмотря на то, что я рассмотрел все доступные функции решения еще на раннем этапе своего стремления стать опытным пользователем Tableau и был осведомлен о функциях INDEX, FIRST и LAST, до недавнего времени я использовал их неправильно. Теперь я знаю, что они делают, и использую их все время для достижения необходимого результата.
По сути, INDEX создает ранжированную или упорядоченную визуализацию деталей на экране либо использует другие метрики: это гибкая функция, которая позволяет сортировать, фильтровать и отображать данные такими способами, которые в иных случаях не доступны.


Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Три примера, как вы можете пересмотреть будущее рабочей атмосферы в своей компании

Рекрутмент: PwC использует геймификацию для моделирования того, что значит работать в фирме

В течение последних двух лет PwC Hungary поставила перед собой цель: более полно задействовать свой пул кандидатов на работу в процессе поиска. Обычно эти кандидаты тратили менее 15 минут на карьерный веб-сайт, и фирма была заинтересована в создании более профессионального кандидата. Результатом этого стала разработка и запуск игры под названием Multipoly, которая позволяет кандидатам на вакансию PwC практически проверить свою готовность работать в фирме, работая в командах для решения реальных бизнес-задач. Multipoly (как монополия на финансовом рынке, если понимаете, о чем я) представляет пользователям задачи, основанные на компетенциях PwC, которые фирма разрабатывает для нынешних сотрудников, таких как создание деловой хватки, повышение цифровых навыков и использование навыков взаимоотношений. Noémi Biró, региональный менеджер по набору персонала PwC в Венгрии, заметила, что кандидаты, которые играли в игру Multipoly, были лучше подготовлены к «живым» очным собеседованиям, так как игра «предварительно ознакамливала [их] о PwC и ее видении, службах и навыках, необходимых для успеха». Biró говорит, что новые работники, которые знакомы с Miltypoly также обозначают работу в среде PwC проще, поскольку они уже прочувствовали культуру компании через игру ».
Теперь сравните процесс игры в Multipoly с посещением страницы карьеры PwC. Кандидат может потратить 5-10 минут на страницу карьеры против полутора часов, играя в Multipoly до собеседования!
Когда PwC запустил Multipoly, фирма сообщила о росте числа кандидатов на работу в 190%, причем 78% пользователей сообщают, что они заинтересованы узнать больше о работе в PwC.

Обучение сотрудников: Walmart использует короткие игры для усиления подготовки по вопросам безопасности

Walmart начал использовать геймификацию два года назад, чтобы обеспечить подготовку по безопасности для 5000 сотрудников в восьми центрах распространения Walmart. Игровой тренинг по безопасности рассматривал значительную деловую проблему: обеспечение того, чтобы широко разбросанная рабочая сила придерживалась процедур безопасности на работе.
Игровая платформа Walmart была предоставлена как всего лишь трехминутные приложения, которые были встроены в рабочий процесс участника. Именно этот «эмоциональный аспект» геймификации имеет самые глубокие преимущества для изменения поведения сотрудников. Результаты на сегодняшний день впечатляют: на 54% снижение числа инцидентов среди восьми распределительных центров Walmart, использующих геймификацию.

Внутреннее сотрудничество: Qualcomm использует гэймификацию для расширения сотрудничества между работниками

Qualcomm моделирует технику геймификацию, основанную на сервисе stackoverflow.com, где сотрудники задают технические вопросы, отвечают на них, голосуют за понравившиеся, а лучшие из ответов попадают в топ. В этой форме геймификации сотрудники Qualcomm получают баллы за уровень своей активности и участия, а затем особые значки за то, что они справляются с непопулярными заданиями, например, отвечая на вопрос, который остается без ответа в течение 30 дней. Сотрудники, которые делают это, получают значок «Археолог» и высокое признание на сайте! Кроме того, значок будет отображаться в профиле сотрудника и будет указывать на их готовность поделиться своими знаниями.

Сладкий путь, на котором геймификация помогает M&M стимулировать вовлеченность клиентов


Это было не так давно, когда выбор методов маркетинга был относительно небольшим, а сообщения были простыми. Компании рекламировали свои продукты через древний способ печатной рекламы. В конечном счете, реклама являлась как верный способ привлечь внимание к широкой аудитории. Но цифровой век затмил такой старый способ вещания, и компаниям нужны новые способы поддержки взаимодействия с потребителями. M&M’s, старый добрый стабильный игрок сладкого рынка, справился с этими сложными цифровыми задачами с помощью геймификации.
В США, M&M’s обратились к стратегии геймификации для продвижения их фирменного сладкого продукта. По данным Digital Training Academy, маркетинговые усилия компани подразумевали шпионскую игру в рекламной кампании. Рекламные изображения, размещенные в Интернете, состояли из изображений M&Ms. Кампания бросила вызов потребителям, чтобы найти единственный крендель, скрытый в изображении.

M&Ms обнаружили, что игра очень хорошо привлекает потребителей. Рекламная кампания принесла также очень сладкие результаты для компании. По данным Digital Training Academy, в результате маркетинговых усилий M&M было собрано более 25 000 лайков на фирменной странице Facebook, плюс 6000 репостов и 10 000 комментариев.
Из-за того, что потребители живут в цифровой жизни, значит, что маркетинговые кампании не должны застревать в прошлом. Более 77 процентов американцев владеют смартфонами, и многие из них связаны с брендами через «микро-моменты», — пишет в AdExchanger Пол Полицзотто, президент и основатель CBSEcoMedia. «Реклама с элементами игры может стать идеальным способом привлечь эту аудиторию и, как было показано, увеличить вовлеченность потребителей», — говорит Полицзотто.
Но есть верный и ошибочный путь цифрового взаимодействия с потребителями. Если игра сложная или громоздкая, пользователи потеряют интерес. По словам Полицзотто, гениальность кампании M&Ms заключается в том, что она основана на относительно простой концепции «спрячь и найди». Если кампания может успешно управлять взаимодействием с потребителями, у нее есть более сильная вероятность распространения интереса одного потребителя через репосты и обсуждения другим.

Разработка своего коннектора 1С для QlikView на C#

На сайте QlikCommunity можно найти материалы по SDK (v.11, v.10) для разработки своего коннектора. Нужные файлы находятся в разделе QVX SDK Libraries and Examples (QvxSDK_2.0.zip). В архиве находятся примеры, необходимые файлы для разработки, и документация. Для разработки нам потребуется Visual Studio. Знание C# необязательно, документации, примеров и умения пользоваться поиском оказалось вполне достаточно для создания примитивного коннектора.
Принцип работы коннектора

Создаем в Visual Studoi новый проект, копируем файлы QvxLibrary.dll и verpatch.exe из архива SDK в каталог проекта.

Добавляем ссылки на необходимые библиотеки в обозревателе решения.

На вкладке COM подключаем коннектор 1С.

На вкладке Обзор подключаем библиотеку QlikView

Выделяем проект C# (пункт connector1c), нажимаем Свойства (Alt+Enter).

Открываем вкладку «События построения», определяем событие после построения, в моем случае это «$(ProjectDir)verpatch.exe» «$(TargetPath)» /s «QlikView Connector» «start1c.blogspot.com»
Это нужно для того, чтобы после компиляции проекта запустился verpatch.exe и пропатчил созданный файл, иначе QlikView его не увидит. Наличие строки «QlikView Connector» обязательно, вторую строку определяете по своему усмотрению.

Создаем первый класс Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace connector1c
{

static class Program
{
///

/// Главная точка входа для приложения.
///

[STAThread]
static void Main(string[] args)
{
if (args != null && args.Length >= 2)
{
new Connector().Run(args[0], args[1]);
}
}
}
}

Класс Connector.cs отвечает за создание строки подключения для скрипта загрузки.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QlikView.Qvx.QvxLibrary;
using System.Windows.Interop;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace connector1c
{
internal class Connector : QvxServer
{

QvConnector qv_connector;

public override QvxConnection CreateConnection()
{
qv_connector = new QvConnector();
return qv_connector;
}

public override string CreateConnectionString()
{
var base_connector = CreateBaseConnector((qv_connector == null) ? null:qv_connector.MParameters);
base_connector.ShowDialog();
string connectionString = null;
if (base_connector.DialogResult.Equals(true))
{
if (base_connector.GetServerBase())
{
connectionString = String.Format(«Srvr={0};Ref={1};UserId={2};Password={3};Query={4};QV_Table={5}»,
base_connector.GetBaseLocation(),
base_connector.GetBaseName(),
base_connector.GetUser(),
base_connector.GetPassword(),
base_connector.GetQueryText(),
base_connector.getQV_Table());
}
else
{
connectionString = String.Format(«File={0};UserId={1};Password={2};Query={3};QV_Table={4}»,
base_connector.GetBaseLocation(),
base_connector.GetUser(),
base_connector.GetPassword(),
base_connector.GetQueryText(),
base_connector.getQV_Table());
}

}
return connectionString;
}

private BaseConnector CreateBaseConnector(Dictionary mParams = null)
{
var base_connector = new BaseConnector(mParams);
var wih = new WindowInteropHelper(base_connector);
wih.Owner = MParentWindow;
return base_connector;
}

}
}

Класс QvConnector.cs реализует подключение к 1С по COM соединению, передачу текста запроса и считывание результата.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Security.Authentication;
using System.Text.RegularExpressions;
using QlikView.Qvx.QvxLibrary;
using System.Runtime.InteropServices;
using System.Reflection;
using System.IO;

namespace connector1c
{
[ComVisible(true)]
class QvConnector : QvxConnection
{

string connString;
V82.COMConnector v8connector;
string Srvr, File, Ref, Usr, Pwd, Query, QV_TableName;

public override void Init()
{

MParameters.TryGetValue(«File», out File);
MParameters.TryGetValue(«Srvr», out Srvr);
MParameters.TryGetValue(«Ref», out Ref);
MParameters.TryGetValue(«UserId», out Usr);
MParameters.TryGetValue(«Password», out Pwd);
MParameters.TryGetValue(«Query», out Query);
MParameters.TryGetValue(«QV_Table», out QV_TableName);

if (Srvr == null)
{
connString = «File='» + File + «‘;Usr='» + Usr + «‘;Pwd='» + Pwd + «‘;»;
}
else
{
connString = «Srvr='» + Srvr + «‘;Ref='» + Ref + «‘;Usr='» + Usr + «‘;Pwd='» + Pwd + «‘;»;
}

dynamic v8com = GetV8Connect();
if (v8com == null) return;

dynamic v8qBuilder = v8com.NewObject(«QueryBuilder»);
v8qBuilder.Text = Query;
var v8Fileds = new QvxField[v8qBuilder.Result.Columns.Count];
int i = 0;
foreach (var v8Column in v8qBuilder.Result.Columns)
{
v8Fileds.SetValue(new QvxField(v8Column.name, QvxFieldType.QVX_TEXT, QvxNullRepresentation.QVX_NULL_FLAG_SUPPRESS_DATA, FieldAttrType.ASCII), i++);
}

MTables = new List {
new QvxTable {
TableName = QV_TableName,
GetRows = GetData,
Fields = v8Fileds
}
};

Marshal.ReleaseComObject(v8qBuilder);
Marshal.ReleaseComObject(v8com);
Marshal.ReleaseComObject(v8connector);

}

private dynamic GetV8Connect()
{
v8connector = new V82.COMConnector();
return (v8connector == null) ? null : v8connector.Connect(connString);
}

private IEnumerable GetData()
{
QvxTable table = FindTable(QV_TableName, MTables);

if (table == null) yield return null;

dynamic v8com = GetV8Connect();
if (v8com == null)
{
yield return new QvxDataRow();
}

dynamic v8Query = v8com.NewObject(«Query»);
v8Query.Текст = Query;
dynamic result = v8Query.Execute;
dynamic m = result.Choose;
dynamic rezColumns = result.Columns;
var columnIdx = new Dictionary();
foreach (var mx in rezColumns)
{
columnIdx.Add(mx.name, rezColumns.IndexOf(mx));
}

QvxDataRow row;
while (m.Next() == true)
{
row = new QvxDataRow();
foreach(var tField in table.Fields)
{
int idx;
if (columnIdx.TryGetValue(tField.FieldName, out idx))
{
row[tField] = v8com.String(m.Get(idx));
};
}
yield return row;
}

Marshal.ReleaseComObject(v8Query);
Marshal.ReleaseComObject(result);
Marshal.ReleaseComObject(m);
Marshal.ReleaseComObject(v8com);
Marshal.ReleaseComObject(v8connector);

}

public override QvxDataTable ExtractQuery(string query, List qvxTables)
{
return base.ExtractQuery(query, qvxTables);
}

}
}

Для реализации ввода параметров подключения создана форма BaseConnector.xaml.








Логика взаимодействия с формой описана в классе BaseConnector.xaml.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Controls;
using System.Net.NetworkInformation;
using System.Diagnostics;

namespace connector1c
{
///

/// Логика взаимодействия для BaseConnect.xaml
///

public partial class BaseConnector : Window
{
public BaseConnector(Dictionary mParams = null)
{
InitializeComponent();

if (mParams != null)
{
string Srvr, File, Ref, Usr, Pwd, Query, QV_TableName;
mParams.TryGetValue(«File», out File);
mParams.TryGetValue(«Srvr», out Srvr);
mParams.TryGetValue(«Ref», out Ref);
mParams.TryGetValue(«UserId», out Usr);
mParams.TryGetValue(«Password», out Pwd);
mParams.TryGetValue(«Query», out Query);
mParams.TryGetValue(«QV_Table», out QV_TableName);

if (Srvr == null)
{
ServerBase.IsChecked = false;
base_location.Text = File;
}
else
{
ServerBase.IsChecked = true;
base_location.Text = Srvr;
base_name.Text = Ref;
}
username.Text = Usr;
password.Password = Pwd;
query_text.Text = Query;
qv_table.Text = QV_TableName;
}
setVisibility();

}

private void setVisibility()
{
Visibility elemVisibility = (ServerBase.IsChecked.Value) ? Visibility.Visible : Visibility.Hidden;
label_name.Visibility = elemVisibility;
base_name.Visibility = elemVisibility;
label_location.Content = (ServerBase.IsChecked.Value) ? «Сервер» : «Каталог»;
}

private void btnCancel_Click(object sender, RoutedEventArgs e)
{
DialogResult = false;
Close();
}

private void btnOk_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
Close();
}

private void ServerBase_Click_1(object sender, RoutedEventArgs e)
{
setVisibility();
}

public bool GetServerBase()
{
return ServerBase.IsChecked.Value;
}

public string GetBaseLocation()
{
return base_location.Text;
}

public string GetBaseName()
{
return base_name.Text;
}

public string getQV_Table()
{
return qv_table.Text;
}

public string GetQueryText()
{
return query_text.Text;
}

public string GetUser()
{
return username.Text;
}

public string GetPassword()
{
return password.Password;
}

private void Hyperlink_Start1c(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}

}
}

После компиляции проекта полученный файл и библиотеку QvxLibrary.dll необходимо скопировать в %PROGRAMFILES%\Common Files\QlikTech\Custom Data\, в моем случае это C:\Program Files (x86)\Common Files\QlikTech\Custom Data\connector1c. Отсутствующие каталоги необходимо создать вручную. После этого запускаем QlikView, коннектор доступен в списке вариантов подключения.

Исходники проекта C#, connector1c.zip. Успехов в создании своих коннекторов.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

QlikView + 1С без 1С коннектора

В качестве бесплатной альтернативы предлагаю простой способ получения информации из 1С через COM-соединение.
Для экспериментов я использовал демо-базу 1С:Управление торговлей 11. Сначала реализуем тестовую функцию в 1С, открываем Модуль внешнего соединения, пишем код:

Функция TestQlik() Экспорт

Возврат «QlikView успешно подключилось к 1С»;

КонецФункции

Теперь в QlikView настраиваем COM-соединение. Открываем редактор макросов, пишем следующий скрипт, подставляем свои параметры подключения к базе:

sub v82connect

set conn = CreateObject(«V82.ComConnector»)
set v82 = conn.Connect(«File=»»I:\1c_base\demoTRD»»;usr=»»QlikView»»;»)

MsgBox(v82.TestQlik)

end sub

Обратите внимание на настройки параметров локальной безопасности, установлена в «Разрешить системный доступ». Жмем «Тест», если все сделано правильно, должно появиться сообщение «QlikView успешно подключилось к 1С».

Теперь попробуем подгрузить данные из 1С. Сначала сформируем пустую таблицу в скрипте загрузки:

SET ThousandSep=’ ‘;
SET DecimalSep=’,’;
SET MoneyThousandSep=’ ‘;
SET MoneyDecimalSep=’,’;
SET MoneyFormat=’# ##0,00р.;-# ##0,00р.’;
SET TimeFormat=’h:mm:ss’;
SET DateFormat=’DD.MM.YYYY’;
SET TimestampFormat=’DD.MM.YYYY h:mm:ss[.fff]’;
SET MonthNames=’янв;фев;мар;апр;май;июн;июл;авг;сен;окт;ноя;дек’;
SET DayNames=’Пн;Вт;Ср;Чт;Пт;Сб;Вс’;

LOAD * INLINE [
Data, Firma, Partner, Tovar, Quantity, Summa, Cost
];

Запускаем скрипт, размещаем простую таблицу на листе:

В свойствах документа включаем динамическое обновление данных:


Пишем скрипт загрузки в редакторе макросов:

sub v82query

set conn = CreateObject(«V82.ComConnector»)
set v82 = conn.Connect(«File=»»I:\1c_base\demoTRD»»;usr=»»QlikView»»;»)

query_1c = «ВЫБРАТЬ» &_
» НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ) КАК Data,»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаПоПартнерам.Организация) КАК Firma,»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаПоПартнерам.Партнер) КАК Partner,»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаНоменклатуры.Номенклатура) КАК Tovar,»& vbNewLine & _
» СУММА(ВыручкаИСебестоимостьПродаж.Количество) КАК Quantity,»& vbNewLine & _
» СУММА(ВыручкаИСебестоимостьПродаж.СуммаВыручки) КАК Summa,»& vbNewLine & _
» СУММА(ВыручкаИСебестоимостьПродаж.Себестоимость) КАК Cost»& vbNewLine & _
«ИЗ»& vbNewLine & _
» РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж»& vbNewLine & _
» ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам»& vbNewLine & _
» ПО ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики»& vbNewLine & _
» ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК РегистрАналитикаУчетаНоменклатуры»& vbNewLine & _
» ПО ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры = РегистрАналитикаУчетаНоменклатуры.КлючАналитики»& vbNewLine & _
«СГРУППИРОВАТЬ ПО»& vbNewLine & _
» НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, ДЕНЬ),»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаПоПартнерам.Организация),»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаПоПартнерам.Партнер),»& vbNewLine & _
» ПРЕДСТАВЛЕНИЕ(РегистрАналитикаУчетаНоменклатуры.Номенклатура)»

set v8query = v82.NewObject(«Query»)
v8query.text = query_1c
set result = v8query.Execute

set m = result.Choose

do while m.next
set sql_string = ActiveDocument.DynamicUpdateCommand(«INSERT INTO * «& vbNewLine & _
«(Data, Firma, Partner, Tovar, Quantity, Summa, Cost) » & vbNewLine & _
«VALUES (» & m.Data &», «& m.Firma & «, » & m.Partner & «, » & m.Tovar & «, » & m.Quantity & «, » & m.Summa & «, » & m.Cost & «)»)
loop

ActiveDocument.GetApplication.Refresh

end sub

Обратите внимание на написание текста запроса, это связано с особенностями VBScript. Поэтому лучше описание запроса оставлять на стороне 1С, в QlikView передавать только готовый результат. Так же псевдонимы полей в запросе пришлось писать на латинице, кириллицу не воспринимает. Выделяем нашу процедуру в списке редактора, жмем «Тест». Мы увидим что наша пустая таблица заполнилась данными.


Теперь можно построить пару диаграмм:

При желании можно поставить наш скрипт в выполнение после скрипта загрузки:

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

58 queries in 0,382 seconds