Открыть список
Как стать автором
Обновить
43.47
Рейтинг
ManyChat
Будущее мессенджер-маркетинга

14 практических советов по использованию Tableau

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

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

Пару слов о структуре. Сначала я расскажу про общие подходы, которые мы выработали для Tableau Server, а потом покажу конкретные хаки, которые, возможно, сделают вашу жизнь лучше. Начнем!



Общие подходы использования Tableau Server


Сейчас у нас 112 юзеров и Tableau — довольно популярный инструмент, но на пути к удобному для всех использованию инструмента мы столкнулись с рядом трудностей. Ниже рассмотрим топ таких проблем.

Используйте Views вместо Custom SQL


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

Все вышеперечисленное становится крайне трудоемким, если использовать кастомные запросы в табло, т.е. все приходится просматривать руками. Плюс при разработке отчета можно удобно тестировать — просто обновляешь код вьюхи в IDE и обновляешь datasource в Tableau, и у тебя готов результат.

Кроме того, мы используем в качестве базы данных Snowflake, и в нашем DWH есть все нужные данные. Нам не нужно делать джоины источников на уровне Tableau. Это сильно сокращает время работы с Tableau и даёт возможность вынести всю логику расчета во вью. Tableau мы стали использовать только как инструмент визуализации.

До


После



Управление доступами через проекты


Для того, чтобы не показывать лишние отчеты, и чтобы упросить навигацию по всем отчетам, мы создали проекты/папки, в каждой из которых свои уровни доступа. Например, публикуя отчет в Draft — его увидят только аналитики. В Stage находятся отчеты которые еще в работе, но которые уже можно показывать заказчикам. В Production уже лежат законченные отчеты, сгруппированные по отделам бизнеса, доступные всем.



Редактирование воркбука на Tableau Server, если ты не создатель


Маленький хак, который позволяет править отчет другого аналитика. Мелочь, но позволяет быстро поправить очевидную опечатку или добавить новый фильтр без поиска автора и без скачивания воркбука. Однако имейте в виду, что в таком случае могут слететь логин/пароль к датасорсу.


Различные методы подключения к данным: Extract, Live, Tableau Server


В какой-то момент у нас появилась проблема: как быстро работать в Tableau со вьюхами, которые считаются долго? Это напрямую отражается на времени загрузки отчета. Решений было несколько — материализация вьюх в таблицы или экстракты в Tableau по расписанию.

Материализация — это отдельный процесс, когда мы сохраняем результат вью в отдельную таблицу. По-простому процесс выглядит вот так.
Код
CREATE OR REPLACE TABLE DMA.MV_TEST AS
SELECT * FROM DMA.V_TEST


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

Пример таблицы, из которой мы автоматически каждый день материализуем вьюхи

Если запрос из вьюхи считается относительно быстро, то его можно подключать к Tableau и сохранять в экстракт. При работе с экстрактами мы пользуемся следующим эмпирическим правилом:
  • До 30 млн строк -> Extract
  • Больше 30 млн строк -> Live
  • Больше 30 млн строк и много экстрактов в воркбуке -> Tableau Server Extract


Использование функционала Tableau Server Admin — Jobs, Views


Отчеты Background Tasks for Extracts и Jobs позволяют решать проблему мониторинга всех обновлений экстрактов. Из-за того, что у нас +70 отчетов обновляются каждый день, через этот отчет можно быстро локализовать проблему, какие дашборды сегодня не обновились.



Используйте шаблоны оформления книг


Автор этой истории: vgolovneva

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

Основными проблемами были:
  1. Поиск нужных отчетов в Tableau.
  2. Разные названия фильтров и разное расположение. Из-за этого их приходится долго искать.
  3. Нет прямой связи между документацией к проекту/отчету и самим дашбордом.
  4. Нет доступа к исходному коду, из-за этого нельзя посмотреть исходные запросы и понять особенности расчетов.

Решая эту проблему, мы наткнулись на решение от Романа Бунина из Яндекса. И вдохновившись этим решением сделали свой шаблон.


Основные правила, которые мы для себя сформулировали:

Фиксируем расположение основных фильтров, их последовательность и порядок
Например, фильтры даты и все сопутствующие фильтры мы всегда располагаем второй строчкой в строго определенном порядке.

Фильтры всегда располагаются сверху. Они отделены как основные, у них всегда фиксированный порядок. Это позволяет «привыкнуть» и быстро их находить.

Исключением будут те шаблоны, где Business Type, Country, Country Group являются не основными, а применимы только для одного графика.


Выделяем специальное место под остальные фильтры и фиксируем их размер
Так как остальные фильтры используются реже, то «привыкания» к месту не происходит, их располагаем просто ниже в удобном для нас порядке. Если неосновных фильтров мало, то их можно унести вбок.


Выделяем специальное место под документацию к отчету
Если к дашборду есть документация, то под нее сразу есть отведенное место.


Фиксируем основные правила ведения дашбордов
Все размеры и шрифты четко фиксируются. За счет того, что все размеры (высота отделов под фильтры и заголовки) фиксированные, не происходит эффекта «прыганья» заголовков.


Договариваемся, что весь исходный код для отчетов оборачивается во view
В отчетах Tableau это выглядит следующим образом:



Хаки с дашбордами


Далее пойдут советы/лайфхаки/приемы которые мы ежедневно используем в наших отчетах. Скачать воркбук с примерами можно тут.

Параметры и измерения


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

Шаг 1. Создать параметр

 //   Dimension Parameter
Customer Name
Ship Mode
Country/Region
City
State
Category
Sub-Category
Product Name
Discount


Шаг 2. Создать рассчитываемое поле, где и будет производиться подмена

//    Dimension Breakdown
CASE [  Dimension Parameter]
WHEN 'None' THEN ''
WHEN 'Order ID' THEN [Order ID]
WHEN 'Customer Name' THEN [Customer Name]
WHEN 'Ship Mode' THEN [Ship Mode]
WHEN 'Country/Region' THEN [Country/Region]
WHEN 'City' THEN [City]
WHEN 'State' THEN [State]
WHEN 'Category' THEN [Category]
WHEN 'Sub-Category' THEN [Sub-Category]
WHEN 'Product Name' THEN [Product Name]
WHEN 'Discount' THEN STR(ROUND([Discount],2))
ELSE ''
END



Параметры и даты


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

Кроме того, из-за того, что на графиках могут быть неоконченная неделя или месяц, то можно отдельным фильтром сразу же исключать данные.


Как это сделать:
Шаг 1. Создаем параметр


Шаг 2. Создаем фильтр и ставим его значение True
Если параметр стоит в Exclude, то на дашборд попадут только точки, для которых выполняется условие. Если в Include, то условие фильтра всегда будет выполнятся и ничего скрываться не будет.

CASE [Not Finished Period]
WHEN 'Exclude' then DATE(DATETRUNC([Period Granularity], TODAY())) > [My Date]
ELSE TRUE
END




Экспорт сырых данных


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



Плюс такого подхода в том, что так устраняются множество ad-hoc запросов, плюс экономия на учетках с расширенными правами Tableau.


Полученные данные можно скачать как таблицу нажав на «Crosstab»

Показывайте labels только на окончании графиков


Простое решение как уменьшить шум на графиках, не убавив в информативности.


Добавляйте плавающие контейнеры как tooltip




Если хочется оставить дашборд чистым, когда появляется очень много фильтров. Менее важные можно спрятать в tooltip.

Шаг 1. Создаем пустой Floating контейнер и включаем Кнопку


Шаг 2. Добавляем нужный контент в контейнер


Шаг 3. Подставляем нужные картинки и оформления контейнера


Шаг 4. Дебажим через режим просмотра



Иерархии


Простой инструмент, который позволит делать разбивки со вложенностью.


Используйте Actions для ссылок на документацию


Для того, чтобы дать на большом дашборде сразу несколько ссылок на разные части документации, можно вставлять actions, если пользователь кликнул по определенному дашборду. Однако Actions можно использовать и для других вещей тоже.


Шаг 1. Создайте лист который будет вызывать Action



Шаг 2. Создайте Action
Меню с Actions находится здесь: Worksheet → Actions


Далее выберите, что именно должен делать Action — редиректить на сайт, выделять значения, фильтровать и т.д. В нашем случае мы выбираем Go to URL.


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


Шаг 3. Добавьте лист на дашборд и протестируйте результат
Вуаля, при нажатии на лист на дашборде у tooltip появляется ваша ссылка на документацию.



Считайте доверительные интервалы для А/Б тестов


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

Пример визуализации

Например конверсия в PRO подписку. На уровне SQL мы подготавливаем 2 группы и считаем для них конверсию. Далее идем по шагам.

Шаг 1. Создать два рассчитываемых поля для расчета верхней и нижней границы доверительного интервала
-- Lower Limit 

[PRO CONVERSION] - 1.96*SQRT(([PRO CONVERSION]*(1-[PRO CONVERSION]))/COUNTD([USER_ID]))

-- Upper Limit 
[PRO CONVERSION] + 1.96*SQRT(([PRO CONVERSION]*(1-[PRO CONVERSION]))/COUNTD([USER_ID]))


Шаг 2. Добавить рассчитываемые поля в Detail


Шаг 3. Добавить их в финальный график в Tableau

Создаем Reference Line, где в Value подставляем наши рассчитываемые поля.



Место для рефлексии


Эта статья — скорее сборник тех проблем, с которыми мы столкнулись. Решив эти проблемы, мы стали экономить часы работы при построении отчетов, проверки гипотез и получении инсайтов.

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

Пишите в комментариях, какие вы используете хаки и приемы, которые упрощают вам работу в Tableau?

Ссылки


Документация


Группировка воркбуков по проектам
Параметры
Background Tasks for Extracts
Managing Jobs in Tableau Server
Labels
Tableau Online tips: Extracts, live connections, & cloud data
Actions

Полезные ссылки по теме


Блог Романа Бунина по визуализации данных
YouTube канал Penguin Analytics про приемы в Tableau
YouTube плейлист Gronify про приемы в Tableau
Табло комьюнити
Полезные приёмы работы с Tableau
Теги:tableauвизуализация данныхвизуализацияmanychatmanychat teamlifehacksаналитика
Хабы: ManyChat SQL Визуализация данных
Всего голосов 7: ↑7 и ↓0 +7
Просмотры5.8K

Похожие публикации

Frontend Developer (React)
от 200 000 ₽ManyChatМоскваМожно удаленно
PHP Developer (product team)
от 170 000 ₽ManyChatМосква
Backend TechLead
от 300 000 ₽ManyChatМосква
Fullstack developer
от 220 000 ₽ManyChatМосква

Лучшие публикации за сутки

Информация

Дата основания
Местоположение
Россия
Сайт
manychat.com
Численность
101–200 человек
Дата регистрации
Представитель
Anna Kryukova (Vlasyuk)

Блог на Хабре