Как улучшить производительность Tableau (check-list)
Спросите пользователей Tableau, что им больше всего нравится в Tableau, и они, скорее всего, скажут, что это возможность быстро и легко создавать потрясающие визуализации данных. Tableau был спроектирован с учетом удобства использования, очевидного в его доступном интерфейсе, но за этим интерфейсом скрывается мощный набор компонентов, способных создавать сложные визуализации данных с молниеносной скоростью. Конечно, могут возникнуть проблемы. Контрольный список производительности Tableau даст вам рекомендации как повысить производительность.
Контрольный список производительности Tableau разделен на семь основных категорий.
Данные
- Пусть анализ будет простым. Работайте с подмножеством данных.
- Вводите только данные, необходимые для анализа. Попробуйте добавить фильтр источника данных или использовать экстракт. При использовании объединения минимизируйте количество объединяемых таблиц.
- Используйте «Describe» (Описать), чтобы исследовать измерения в новых наборах данных, не загружая их в viz (сочетание клавиш CTRL + E).
- Удаляйте неиспользуемые столбцы (меры/измерения), чтобы минимизировать время обновления экстракта или время пользовательского запроса SQL.
- Создайте опубликованный файл TDS для вашей бизнес-группы, а не для каждого аналитика, создающего собственный источник данных. Сюда входят все метаданные, связанные с измерениями, мерами, вычисляемыми полями, иерархиями, наборами, параметрами и соглашениями об именах.
- Используйте экстракты везде, где это возможно, чтобы ускорить производительность. Скрывайте неиспользуемые и конфиденциальные поля. Сверните детализацию данных путем предварительной агрегации или фильтрации. Разбейте иерархии только на видимые измерения.
Фильтрация
- Минимизируйте количество быстрых фильтров. Используйте действия фильтра панели инструментов там, где это возможно.
- Избегайте выбора «Only relevant values» (Только соответствующие значения) для ваших быстрых фильтров. Это требует последовательных запросов. Не используйте это, когда не нужно.
- Избегайте быстрых фильтров высокой мощности (множественный выбор или выпадающие списки). Быстрые фильтры высокой мощности медленно загружаются и отображаются.
- Избегайте быстрых фильтров или действий, которые управляют фильтрами контекста. Они требуют перезагрузки таблицы контекста, и их следует избегать везде, где это возможно.
- Пусть диапазон быстрого фильтра будет простым. Чем сложнее диапазон, тем медленнее запрос.
- Замените быстрые фильтры, показывающие «Only Relevant Values» (Только релевантные значения) и большое количество быстрых фильтров, на фильтрацию с панели мониторинга. Они будут каскадно взаимодействовать с вашим пользователем и работать быстрее.
- Не ленитесь с пользовательскими фильтрами. Безопасность от пользовательских фильтров может повлиять на производительность на сервере Tableau, поскольку сервер не может совместно использовать соединения и кэши запросов, если пользовательские фильтры активны. Подумайте о создании сводного представления, которое представляет собой независимый от пользователя обзор с использованием предварительно агрегированного извлечения со скрытыми основными данными. Для подробного просмотра ограничьте его конкретными пользователями или группами активных каталогов вместо пользовательских фильтров.
Пользовательский SQL
- Ограничьте пользовательский SQL в живых соединениях так как они могут быть неэффективными. Там, где это возможно, создайте представление на сервере базы данных для реализации вашего собственного SQL и подключите Tableau к вашему представлению.
- Избегайте параметров в пользовательском SQL в Tableau. Tableau оборачивает пользовательский SQL в подзапрос, который многие базы данных плохо обрабатывают. Рассмотрите возможность создания представления в базе данных или используйте объединение с несколькими таблицами с фильтрами.
- Следите за бесполезными стоками, например, ORDER BY. Tableau пересортирует данные после загрузки в любом случае.
Вычисления
- Используйте рассчитанные поля осторожно. Подумайте о типе данных при написании кода расчета. Числовые и логические> дата> строковые вычисления, когда дело доходит до производительности.
- Ограничивайте смешанные вычисления. Они требуют последовательного запроса нескольких источников данных и могут занимать много времени. Где это возможно, создайте представление на сервере базы данных.
- Избегайте расчетов на уровне строк с использованием параметров.
Построение
- Избегайте множества отметок. Больше отметок = больше времени рендеринга. Ограничивайте использование подробных текстовых таблиц с большим количеством отметок.
- Минимизируйте размер файла изображений или пользовательских форм, где это возможно. Храните изображения размером менее 50 КБ.
- Если используются пользовательские рисунки, используйте PNG с прозрачным фоном вместо JPG. Отображения станет чище, а файлы форм займут меньше места.
Локальные вычисления
- Даже если рабочая книга опубликована на сервере Tableau, локальные вычисления по-прежнему влияют на производительность. По возможности используйте Tableau Server, ограничивая локальные вычисления, такие как группы, иерархии, контрольные линии, вычисления таблиц и смешивание.
- Табличные вычисления довольно мощные, но они могут выполняться медленно. Они зависят от локального механизма вычислений и могут требовать много памяти.
Макет информационной панели
- Ограничивайте количество рабочих листов на информационной панели. Если у вас есть более четырех визуализаций на одной панели, лучше пересмотрите ее.
- Исправьте размер информационной панели относительно потребления конечным пользователем. Автоматическое определение размера менее эффективно, чем указание размера панели.
Контрольный список оптимизации производительности Tableau: Вычисления – избегайте вычислений на уровне строк с использованием параметров
«Избегайте вычислений на уровне строк с использованием параметров».
Давайте сначала посмотрим, что такое вычисления на уровне строк.
Вычисления на уровне строк
Вычисления на уровне строк, также известные как вычисления на уровне записей, работают с каждой записью в базовых данных. Примером вычисления на уровне строк является оператор IF, который не агрегирует, например,
IF([Age] >= [Voting Age]) = THEN ”TRUE” ELSE “FALSE” END
При построении расчета все параметры в вашей рабочей книге будут перечислены в секции «Данные» в левой части окна:
Рис.1 Параметры рабочей книги
Проблемы
Мы только что создали вычисление на уровне строк, которое использует параметр. Этот, казалось бы, простой расчет может повлиять на производительность всей нашей информационной панели. Выполнение запроса на уровне строки займет время, но выполнение запроса на уровне строки для параметра, который имеет значительное разнообразие возможностей, увеличит это время обработки в геометрической прогрессии.
Давайте предположим, что вместо того, чтобы использовать одно значение для нашего параметра «18», мы вместо этого свяжем его с таблицей возрастов по голосованию по странам. В настоящее время есть 196 стран, а в некоторых из них будет другой возраст для голосования!
Вы можете видеть, насколько дорогой стала эта маленькая операция. Да, параметры очень полезны и обеспечивают полезную степень гибкости как для вас, так и для ваших пользователей, но вы должны взвесить риск и вознаграждение. В этом случае гораздо лучше иметь менее универсальную информационную панель, которая будет загружаться в разумный срок.
Контрольный список оптимизации производительности Tableau: Вычисления - ограничьте смешанные вычисления
«Ограничьте смешанные расчеты. Они требуют последовательного запроса в несколько источников данных и могут занимать много времени. Там, где это возможно, создайте представление на сервере базы данных».
Чтобы наглядно рассказывать интересные истории, информация, которая нам нужна, хранится правильно и подготовлена для нас заранее. Обычно это результат кропотливой работы наших ИТ команд и групп управления данными. Однако в большинстве случаев этот сказочный сценарий начинается не с визуализации данных. Нам приходится пробираться через многочисленные источники данных, разбросанные по разным платформам, серверам и т. д. Даже при значительных усилиях по структурированию данных все же может существовать пара разрозненных источников, которые нуждаются в небольшом TLC для получения ценной информации.
Смешанные вычисления
Ответом Tableau на эту ситуацию является смешанное вычисление, в котором в одном вычисляемом поле могут использоваться поля из нескольких источников данных. Например, допустим, вам необходимо оценить общий показатель продаж в своей организации, но автономия каждого региона в применяемых методах управления данными означает, что данные хранятся в четырех или пяти отдельных местах. Возможно вы захотите использовать Tableau для построения следующего расчета, чтобы оценить свой общий показатель продаж:
Рис. 1 Оценка общего показателя продаж
Держитесь подальше от такого искушения! Хотя интуитивно понятный интерфейс Tableau делает такие вычисления довольно простыми в плане создания, они не идеальны, если учесть их влияние на производительность в процессе визуализации.
Потенциальные проблемы
Использование смешанных вычислений в Tableau возможно, но не желательно, ведь вы ссылаетесь более чем на один источник данных в вычисляемом поле. Чтобы получить значения для вашего вычисления, Tableau должен отдельно запросить данные у каждого из источников данных. Запомните это правило: ваша визуализация будет настолько быстрой, насколько быстро работает ваш самый медленный источник данных.
Вы не только рискуете ждать данных от самого медленного источника данных, но и заставляете Tableau предпринять дополнительные шаги, чтобы извлечь данные, необходимые для завершения расчета. Это постепенно увеличивает время загрузки вашей визуализации, что может быть довольно обременительным для больших наборов данных.
В примере, рассмотренном выше, лучшей альтернативой смешанному вычислению будет подготовка нового представления на сервере базы данных. Это позволит обработать и запросить данные за пределами Tableau и позволит этому инструменту сделать то, что он делает лучше всего – выполнить быструю и гибкую визуализацию данных.
Думайте эффективно
Во многих случаях небольшая дополнительная подготовка вместе с администратором базы данных на уровне данных имеет большое значение для достижения той же производительности визуализации, часто это гораздо более эффективный подход. Конечно, это требует некоторого предварительного анализа и подготовки, когда речь идет о вопросах, которые вы хотите задать, или историях, которые вы надеетесь рассказать, но многие эксперты Tableau подчеркивают важность этого этапа проектирования и планирования в своей работе. Итак, после того, как мы спланировали нашу блестящую информационную панель инструментов, давайте удостоверимся, что данные для построения истории подготовлены заблаговременно, и избежим прочих неприятностей, которые часто идут рука об руку с смешанными вычислениями.
Контрольный список оптимизации производительности Tableau: Вычисления – используйте вычисляемые поля осторожно
«Используйте вычисляемые поля осторожно. Подумайте о типе данных при создании расчета. Числовые и логические > дата > строчные вычисления, когда дело доходит до производительности».
Вычисляемые поля в Tableau
Вы можете создать новое поле, используя базовые источники данных, используя вычисления внутри Tableau Desktop. Чтобы сделать это, просто щелкните правой кнопкой мыши на панели «Dimensions» (Измерения) или «Measures» (Меры) и выберите «Create Calculated Field» (Создать вычисляемое поле). В зависимости от версии Tableau это можно сделать в разделе «Create» (Создать) в контекстном меню, в зависимости от версии и того, где вы щелкаете в списке полей:
Рис.1 Команда «Create Calculated Field» (Создать вычисляемое поле)
Tableau предоставляет вам огромный список функций, которые помогут в создании ваших расчетов. Эти функции делятся на разные категории. Например, если вы работаете с полями, имеющими строковый тип данных, вам нужно будет рассмотреть все функции в категориях «String» (Строка).
Рис.2 Описание категории «String» (Строка)
Tableau покажет вам примеры использования в боковом окне.
Вот подвох. Вычисляемые поля должны идти с предупреждением – покупатели остерегайтесь. Вы можете столкнуться с определенными неприятностями, если не будете осторожны. Вы можете использовать ваши данные внутри Tableau.
Знай свои типы данных
Вычисляемые поля могут быть ограничивающим фактором в производительности. Tableau поможет вам в построении ваших расчетов, если вы изучите этот синтаксис, но он не сможет показать вам, повлияет ли ваш прекрасный расчет, который вы только что прописали, на производительность вашей панели в целом.
При рассмотрении того, как расчеты риска влияют на производительность вашей визуализации, ключевым фактором является тип данных полей, которые вы используете в своих вычислениях. Как указывалось выше, в более быстрых вычислениях используются поля с типами данных «булевый» или «число». Тип данных «дата» является самыми медленными из всех строк.
Влияние производительности на различные типы данных может быть незаметным для небольших наборов данных, но эти различия становятся гораздо более заметными по мере увеличения числа строк или числа полей в вычислениях. Если производительность является приоритетом, рассмотрите возможность применения другого типа данных для достижения тех же вычисленных результатов. Вот несколько идей:
• Замените операторы if/then, приводящие к строке, строкой с логическим значением. Например, замените:
IF [Field]="Compare" THEN "Match" ELSE "No Match" END
На
[Field]="Compare"
Затем используйте ярлыки, чтобы изменить «True» на «Match» и «False» на «No Match».
• Если ваш оператор if/then выводит три итоговых результата, рассмотрите возможность изменения результатов на 1, 2 и 3, а не на что-то вроде «Превышает», «Соответствует» и «Не соответствует» – это не всегда работает, но иногда идеально подходит.
• Преобразуйте даты в целые числа (часто с помощью таблицы календаря в вашей базе данных), это позволит просто добавлять и вычитать вместо DATEDIFF() или DATEADD().
• В вычислениях на основе параметров используйте целое число в качестве значения параметра и введите строковое значение в качестве ярлыка, сводя к минимуму необходимость более медленного сравнения строк
Когда использовать вычисления
Вы можете выполнить вычисления внутри собственного источника данных. Это повторяющаяся тема в контрольном списке производительности Tableau. Сценарий сосредоточен на том, что он делает лучше всего – на создании интерактивных визуализаций и информационных панелей. Базовому источнику данных нужно только скомпилировать все данные один раз, чтобы создать визуализацию, но в Tableau они должны запрашиваться снова и снова.
Контрольный список оптимизации производительности Tableau: пользовательский SQL – избегайте параметров
«Избегайте параметров в пользовательском SQL в Tableau. Tableau оборачивает пользовательский SQL в подзапрос, который многие базы данных обрабатывают плохо. Рассмотрите возможность создания представления в базе данных или используйте объединение с несколькими таблицами с фильтрами.»
Параметры и пользовательский SQL в таблице
Проще говоря, параметры – это динамические значения, которые можно использовать для замены постоянных значений. Они предлагают большую гибкость в управлении или редактировании вашей визуализации из Tableau. Например, вы можете создать параметр для установки цели по производительности, а затем использовать его в вычислениях для сравнения фактических результатов с заданными.
Рис.1 Окно создания параметра
Использование параметров в пользовательском SQL является относительно новой функцией для Tableau, впервые появившейся в Tableau 8. До этого параметры были ограничены только фильтрами и вычислениями. Теперь вы можете использовать параметры для подстановки динамических значений в запрос для соединений, использующих пользовательский SQL.
Рис.2 Редактирование SQL
Проблемы с производительностью
При использовании параметров в пользовательском SQL проблемы с производительностью возникают в двух местах:
1. Сам пользовательский SQL – Пользовательский SQL помещается внутри подзапроса, и ваша база данных может выбрать больше данных, чем необходимо в результате подзапроса. Для этого требуется больше дискового пространства, больше обработки и больше времени ваших конечных пользователей, чтобы дождаться визуализации. Конечно, не все базы данных будут вести себя таким образом.
2. Динамическое значение в запросе – да, в этом вся суть параметра. Однако представьте, что Tableau проверяет свой кэш, ища полный запрос, включая этот динамический текст. Поскольку пользователи получают возможность управлять параметром (опять же, в этом суть), существует большая вероятность того, что кэша не будет. Как и в любом из этих советов по производительности, это не всегда так. Часто выбираемые параметры могут дать вам больше попаданий в кэш, чем редко выбираемые параметры.
Пользовательский SQL раскрывает некоторые внутренние механизмы Tableau. Это дает вам большие возможности в создании ваших информационных панелей, и некоторые из лучших консультантов Tableau не случайно являются мастерами SQL.
Контрольный список оптимизации производительности Tableau: пользовательский SQL – ограничение в живых соединениях
«Ограничьте пользовательские живые соединения в SQL, поскольку они могут быть неэффективными. Там, где это возможно, создайте представление на сервере базы данных, чтобы реализовать свой собственный SQL и подключить Tableau к вашему отчету».
В других средах и в других инструментах использование собственных пользовательских соединений SQL – это способ повышения и оптимизации производительности. Но не в Tableau. Здесь оно может стать серьезным препятствием для работы вашей панели.
Вот несколько советов о том, почему ограничение количества ваших пользовательских SQL соединений приведет к быстрой визуализации.
Влияние на производительность
Причина того, что пользовательские SQL-соединения могут потенциально влиять на производительность, заключается в том, что SQL-запрос отправляется в базу данных внутри подзапроса. Даже несмотря на то, что ваш SQL-оператор может сам по себе работать чрезвычайно эффективно, при помещении в подзапрос SQL, который уже обременен другими предложениями GROUP BY, ORDER BY, WHERE и другими типами, он может стать громоздким и медленным довольно быстро.
Рис.1 Примеры некоторых пользовательских SQL.
При добавлении пользовательских SQL-соединений будьте очень осторожны, потому что природа подзапроса такова, что вы не работаете в вакууме.
Пользовательский SQL также не позволяет Tableau использовать Join Culling (объединенный отбор). Часто для таких вещей, как быстрые фильтры, Tableau будет получать информацию только из одной таблицы. Когда Join Culling активен, Tableau будет отправлять запрос только к нужным таблицам, а не всем таблицам в соединении. Поскольку Tableau не может использовать Join Culling с пользовательским SQL, это означает, что каждая таблица попадает в каждый запрос.
Переместите его в источник данных
Вместо использования пользовательских соединений SQL внутри Tableau Desktop мы предлагаем альтернативу. Используйте свои операторы SQL, чтобы создать представление внутри базы данных, затем подключите его к Tableau. Это упростит вам задачу, поскольку не требуется сводить их со всеми остальными SQL, которые Tableau генерирует без пользовательского подзапроса SQL.
Выборки
Если вы не можете создать материализованное представление в базе данных, другой вариант – использовать извлечение данных с вашим настраиваемым соединением SQL. Ваш запрос будет выполняться только один раз, когда вы создадите или обновите эту выборку. Общее влияние на производительность визуализации должно быть сведено к минимуму.
Контрольный список оптимизации производительности Tableau: пользовательский SQL – следите за бесполезными предложениями
«Контролируйте наличие бесполезных предложений, например, ORDER BY. Tableau будет пересортировывать данные после загрузки в любом случае».
Обзор SQL
SQL, или язык структурированных запросов, предназначен для управления данными в реляционной БД. Он состоит из двух частей:
• Язык определения данных (DDL)
• Язык манипулирования данными (DML)
Являясь законченным языком управления данными, SQL включает в себя широкий спектр операторов и элементов управления для запроса, представления и редактирования существующих данных.
Tableau дает вам возможность написать собственный SQL для полного контроля и гибкости в том, как ваши данные извлекаются для визуализаций и информационных панелей. Для этого дважды щелкните кнопку New Custom SQL (Новый пользовательский SQL) на странице источника данных (ПРИМЕЧАНИЕ. Этот параметр доступен не для всех источников данных):
Рис.1 Окно создания New Custom SQL (Новый пользовательский SQL)
После того, как вы нажмете эту опцию, вы увидите экран, где сможете ввести любой SQL, который вы пожелаете:
Рис.2 Окно добавления нового пользовательского SQL
Дополнительный SQL
За пределами Tableau есть ряд полезных операторов SQL, которые жизненно важны для администраторов баз данных. Внутри Tableau некоторые из этих команд становятся, в общем, бесполезными. Это происходит из-за того, что Tableau делает многое из того, что делает SQL, когда организует и визуализирует ваши данные.
Например, команда ORDER BY важна при создании результирующего набора непосредственно из SQL. Вы можете упорядочить результаты в алфавитном порядке, чтобы пользователю было легче находить релевантные результаты. Tableau делает все это в Tableau Desktop.
Поскольку пользовательский SQL работает в подзапросе после его выдачи в базу данных, мы будем инструктировать сервер базы данных упорядочивать содержимое подзапроса, а затем последовательно упорядочивать данные тем способом, который мы задали в Tableau. Выполнение такой работы дважды является неоптимальным и не дает дополнительной выгоды. Поскольку предложение ORDER BY в подзапросе не приносит никакой пользы, лучше не указывать его и не испытывать снижения производительности.
Tableau – очень мощный инструмент, и возможность написания собственного пользовательского SQL-кода только расширяет эту универсальность. Хитрость заключается в том, чтобы знать, как изменить ваш SQL, чтобы дать Tableau именно то, что нужно для получения желаемого результата, и ничего лишнего. Дополнительный SQL, хотя и кажется безобидным, может значительно замедлить вашу визуализацию или информационную панель. Чем быстрее вы сможете показать свои информационные панели пользователям отчетов, тем лучше.
Контрольный список оптимизации производительности Tableau: Макет информационной панели – зафиксируйте размер информационной панели
«Зафиксируйте размер информационной панели относительно использования конечным пользователем. Автоматическое определение размера менее эффективно, чем фиксация размера панели».
Автоматическое масштабирование
В левом нижнем углу информационной панели есть настройка размера. Этот раскрывающийся список позволяет указать размеры информационной панели по высоте и ширине, когда она обслуживается сервером Tableau:
Рис.1 Настройка автоматического масштабирования
Выбор опции Automatic в раскрывающемся меню Size означает, что Tableau автоматически отмасштабирует информационную панель, чтобы она соответствовала экрану или окну пользователя, когда ее будут запускать. Автоматическое масштабирование дает некоторые непредсказуемые результаты с точки зрения внешнего вида, но есть и более существенная проблема, связанная с производительностью.
Tableau Server запомнит размер каждой информационной панели, которую он отображает, чтобы информационная панель была быстрее при следующем запуске. Таким образом, если все двадцать человек смотрят на информационную панель с немного разными размерами, то Tableau Server будет считать эту информационную панель двадцатью различными информационными панелями.
Фиксированный размер
В решении этой проблемы есть два аспекта. Во-первых, вам нужно понять, как ваши пользователи просматривают вашу панель. Простой способ установить это – использовать аналитическую программу, чтобы получить некоторые основные демографические данные профилей ваших пользователей, например, разрешение экрана. Google Analytics вполне способна справиться с этой задачей и предлагается бесплатно компанией Google.
Рис.2 Частотность использования стандартных разрешений при просмотре страницы Tableau
В приведенном выше примере вы можете видеть, что наши пользователи используют самые разные устройства для работы с Tableau. Чем точнее вы настроите свое отслеживание потребителей отчетов, тем лучше. Давайте попробуем разместить три разные аудитории – пользователей мобильных телефонов, пользователей планшетов и пользователей ПК.
Разрешение 320 × 568 будет четко отображать нашу визуализацию для мобильных телефонов (без полосы прокрутки), это подойдет более чем 50% наших пользователей. Для пользователей планшетов мы выберем дисплей 768 × 1024 (18,52%). Наконец, для пользователей ПК мы будем использовать 1366 × 768 (7,4%).
Как только у вас появится представление о том, какие разрешения планировать, вернитесь к настройке размера на панели инструментов и выберите вариант, который наилучшим образом соответствует нужному размеру. Или вы можете выбрать опцию Exactly (Точно) и ввести высоту и ширину до уровня пикселей:
Рис.3 Можно вручную прописать размерность
Как видите, Tableau автоматически настроит информационную панель в соответствии с требуемым размером, это поможет вам как разработчику понять, как будет выглядеть ваша панель для пользователей на сервере, а также как будет представлено ее содержимое в окне. Для настройки других размеров нам просто нужно скопировать и вставить лист и настроить новый размер.
Создание трех версий одной и той же информационной панели может показаться довольно сложной задачей, но это избавит сервер Tableau от ненужной работы над автоматическим определением размеров. Это, в свою очередь даст прирост производительности на сервере в целом. Предвидя самые распространенные размеры и устанавливая свои информационные панели и визуализации в этих пределах, вы значительно снизите нагрузку на Tableau Server.
Если ваш документ публикуется через портал, всегда обращайтесь к владельцам портала, чтобы определить пределы своего окна. Во многих случаях это и определит необходимый размер. Если Tableau относительно новый для вашего бизнеса, рассмотрите возможность обращения к поставщикам аппаратного обеспечения вашего компьютера, чтобы определить оборудование (настольные ПК/ноутбуки/планшеты), которое используют в компании. Вы обнаружите, что у большинства пользователей одна и та же модель ноутбука, и вы можете использовать это как отправную точку в выборе размеров панели.
Всегда проверяйте разные размеры на разных устройствах. Без полного тестирования не делайте выводов о том, что настройка сделана правильно.
Контрольный список оптимизации производительности Tableau: Макет информационной панели – ограничьте количество листов
«Ограничьте количество листов на информационной панели. Если у вас есть более четырех визуализаций на вашей информационной панели, решительно пересмотрите это».
Информационные панели
Возможность размещения как можно большего количества информации на одной информационной панели для создания вау-эффекта очень заманчива как для новых пользователей, так и гуру Tableau. В Tableau есть много разных возможностей и вариантов, так что здесь трудно провести черту от элегантного до загроможденного, информативного, отвлекающего и красивого, до чертовски безобразного!
У каждого – свое мнение о том, как все должно выглядеть, но вы, создатель, должны сделать панель максимально простой, яркой и информативной. В то же время вы должны сконцентрироваться на том, чтобы сосредоточить внимание аудитории на предоставлении ответов в разумные сроки.
Если визуализация занимает слишком много времени, вы можете потерять аудиторию. Если визуализация слишком загромождена, или плохо спроектирована, вы не дадите нужных ответов. Если у вас есть визуализация, которая тратит слишком много времени для рендеринга, а когда это происходит, то она выглядит нечеткой/загроможденной, это может быть полным провалом. Позвольте мне проиллюстрировать:
Рис.1
Мы не ставим перед собой цель в этом контрольном списке давать вам советы по эстетике в Tableau, поэтому давайте просто скажем, что гораздо эффективнее рассказать одну историю хорошо, чем рассказать несколько историй невнятно. Каждый раз для каждой информационной панели сосредоточьтесь на том, на какую аудиторию вы ориентируетесь, на своих пользователей отчетов, и какую историю вы хотите рассказать.
Помимо этого небольшого совета, слушайте своих пользователей. Они скажут вам, какие отчеты подходят, а какие нет. Постройте обратную связь и развивайтесь вместе с ней.
За кулисами
Каждый рабочий лист, представленный на информационной панели, расходует время. Чем больше рабочих листов, тем дольше потребитель отчета должен ждать загрузки информационной панели, естественно.
Каждая из этих визуализаций является инвестицией. Чем больше вы добавляете, тем больше конечный пользователь будет ждать. Стоит ли этого дополнительное время, которое будет проявляться сотни или тысячи раз, когда панель будут загружать?
Правда, вероятно, нет.
Рассмотрите типы диаграмм, которые представлены на информационной панели. Различные типы диаграмм имеют разное время обработки из-за способа построения и визуализации диаграмм, а также расчетов таблиц и количества осей, содержащихся в каждой из них. Гистограмма менее трудоемкая, чем, например, диаграмма Парето. Просто имейте это в виду при разработке панелей мониторинга, особенно если вы чувствуете необходимость получить более четырех таблиц.
Возможности портала
Вместо того, чтобы перегружать свои информационные панели большим количеством рабочих таблиц, вам следует подумать о создании аналитического портала (если у вас его еще нет). Это позволит вам сгруппировать дополнительные информационные панели, сохраняя при этом эффективную загрузку и эффективную передачу своей истории. Существует много разных способов создания аналитического портала, но, возможно, самый простой способ – использовать решение для управления контентом. Они легко поддерживаются нетехническими членами команды, быстро настраиваются и универсальны в своей способности интегрироваться с другими типами инструментов или приложений.
Контрольный список оптимизации производительности Tableau: Данные – вводите только необходимые данные
Этот пост посвящен теме повышения производительности Tableau с помощью выбора данных. Давайте обсудим вторую идею, касающуюся повышения производительности в разделе «Данные» в контрольном списке оптимизации Tableau:
«Вводите только необходимые для анализа данные. Попробуйте добавить фильтр источника данных или использовать выборку. При использовании объединения минимизируйте количество объединяемых таблиц».
В этом вопросе есть три рекомендации: используйте фильтр источника данных, создайте выборку и объедините маленькие таблицы в соединении. Прежде чем мы подробно рассмотрим каждый из аспектов, давайте сначала обсудим общую идею.
Вполне логично, что Tableau не будет работать так же быстро, если мы попытаемся сжать, обработать и отсортировать огромное количество лишних данных. Интуитивно понятно, что чем больше данных мы подключаем, тем больше ресурсов тратит Tableau на вычисляемые поля, фильтры и т. д. Если нам на самом деле не нужны все данные, к которым мы подключены, то мы фактически тратим ресурсы впустую, хотя вместо этого могли бы использовать их для повышения производительности.
Сосредоточьтесь на производительности работы пользователя
На мгновение забудьте о производительности Tableau. Как насчет пользователей? Больше данных, как правило, означает, что в окне данных необходимо сортировать больше полей, наши вычисления также усложняются, и нужно добавлять триллион фильтров, чтобы отсеять данные, которые нам не нужны.
Ненужные данные в конечном итоге замедляют работу, как Tableau, так и самого пользователя.
Естественно, что, когда мы впервые создаем рабочий лист для подключения к как можно большему количеству данных, мы точно не знаем, что именно нам понадобится. Однако, как только у нас появится представление о том, какие данные нужны на самом деле, необходимо отредактировать подключение таким образом, чтобы оно предназначалось только для этих данных. Также необходимо изучить способы повышения производительности наших соединений. Давайте обсудим некоторые способы достижения этой цели с помощью трех рекомендаций, указанных выше.
Минимизация объединенных таблиц
Сначала давайте рассмотрим процесс уменьшения количества объединенных таблиц, к которым мы подключены. Объединение нескольких таблиц в одном источнике данных может быть очень полезным, но у этого процесса также есть свои недостатки. С одной стороны, если неправильно настроить объединение, данные из результирующего запроса могут быть скомпилированы с ошибками, например, дублироваться. Даже если данные скомпилированы правильно, количество возвращаемых строк может быть существенно больше, чем у каждой таблицы по отдельности, в зависимости от степени детализации таблицы и типа объединения.
Присоединение таблицы также включает все ее поля, если не указано иное. Поэтому каждое объединение вносит потенциальную ошибку в данные и увеличивает количество полей и строк, а их необходимо отсортировать при создании визуальных элементов. Если эти таблицы содержат данные, использующиеся в нашем анализе фактически, то выгоды могут перевесить затраты.
Однако если после создания анализа какие-либо данные из объединенных таблиц не используются, необходимо отредактировать объединение и удалить их. Даже если это не приведет к значительному повышению производительности, это определенно облегчит работу пользователя, когда он попытается разобраться с измерениями и мерами, к которым мы подключаемся.
Например, я создал две таблицы в Excel, отражающие то, что я недавно видел на клиентском сайте, только мои таблицы были намного меньше и проще. Одна таблица представляет собой таблицу инвентаризации с почти 170 строками и показывает запасы по трем продуктам в четырех магазинах по два раза в день в течение недели. Другая таблица – это таблица заказов приблизительно с 80 строками, в которой есть заказы, полученные в течение этой недели. Если я попытаюсь объединить эти две таблицы по номеру магазина, как показано на рисунке 1, мой запрос вернет более 3300 результатов. Даже при объединении в дополнительные поля результаты можно сократить до 1120 строк. Как показывают данные, у меня, вероятно, также возникнут проблемы с вычислениями из-за способа составления этих таблиц.
Рисунок 1: Попытка соединить таблицы.
Клиент, с которым я работал, столкнулся с теми же проблемами, только в гораздо большем масштабе, поскольку в одной только таблице инвентаризации было почти 200 миллионов строк. Производительность была очень низкой, а на извлечение данных ушла вся ночь. Когда я посмотрел на шаблоны рабочих листов, ни один из них не использовал данные из обеих таблиц. После того, как мы продублировали источник данных и удалили ненужную таблицу, время, необходимое для обновления извлечений, сократилось до нескольких минут.
Добавление фильтров источника данных
Следующая рекомендация, которую мы рассмотрим, касается использования фильтров источников данных. Фильтры источников данных, как правило, используются двумя способами. Первый способ – использование фильтра источника данных в качестве контекстного, а второй предназначен для фильтрации выборки, чтобы уменьшить её, и чтобы меньше времени шло на обновление.
Контекстные фильтры – это квазифильтры, повышающие производительность в определенных случаях, обычно в тех случаях, когда в представлении используется много фильтров и данных. Традиционные фильтры в Tableau работают независимо друг от друга, а это означает, что оценивается каждый фильтр для каждой строки в наборе данных, а не только для тех строк, которые прошли через предыдущие фильтры.
Контекстные фильтры используются перед традиционными фильтрами, поэтому каждый традиционный фильтр оценивается только для строк, проходящих через контекстный. Контекстный фильтр создает таблицу с одноуровневой адресацией только для значений, прошедших через нее, а затем традиционные фильтры оцениваются по строкам в этой таблице с одноуровневой адресацией.
Тем не менее, контекстные фильтры отобразятся на производительности при создании таблицы с одноуровневой адресацией. На рисунках 2 и 3 я проанализировал производительность двух рабочих листов с помощью Performance Analyzer, одного из инструментов Tableau.
Рисунок 2: Производительность без контекстного фильтра.
Рисунок 3: Производительность с контекстным фильтром.
Рабочие книги идентичны, но в одной из них используется глобальный контекстный фильтр. Обратите внимание на дополнительное время, необходимое для загрузки начального представления при использовании контекстного фильтра. Но после этого производительность существенно улучшилась.
В этом примере более быстрое время загрузки последующих представлений на самом деле не компенсирует начальное время, необходимое для создания таблицы с одноуровневой адресацией. Но это был относительно небольшой набор данных с несколькими фильтрами. Чем больше данных и фильтров используется, тем более оправданным становится использование контекстного фильтра.
Используйте извлеченные образцы, но ограничивайте размер
Еще один способ использования фильтра источника данных – это ограничение размера и времени обновления выбранного фрагмента. Когда выбирается образец, он содержит все данные, и на обновление может уйти много времени. Но если вы используете только подмножество данных, используйте фильтр источника данных, тогда выборка будет содержать только необходимую вам информацию. Отфильтрованный извлеченный фрагмент требует меньше ресурсов с точки зрения памяти, а время обновления почти пропорционально меньше сокращению данных.
Наконец, когда дело доходит до улучшения производительности Tableau, использование выбранного фрагмента – это настоящая удача. Это связано не только с тем, что извлеченный фрагмент хранится в структуре, которую Tableau легче запрашивать и проще получать к ней доступ, но также потому, что детерминированные вычисления хранятся в виде реальных значений. Это означает, что, если в выборке есть вычисляемое поле, и Tableau знает, что оно не изменится, вместо того, чтобы выполнять вычисление после запроса, Tableau сохраняет значение как фактические данные, так что вычисления не требуются.
Конечно, основной недостаток использования выборок состоит в том, что данные не отображаются в реальном времени. Однако при выполнении запланированных задач выборки может обновляться автоматически каждые 15 минут. Итак, если у вас проблемы с производительностью и данные не обрабатываются в течение 15 минут, лучше использовать функцию выборки.
Окончательный вердикт
Когда речь идет о данных, не стоит жадничать! Используйте только то, что вам нужно; не больше, и не меньше. Избавьтесь от объединенных таблиц, содержащих те данные, которые на самом деле не используются. Подумайте об использовании фильтров источника данных либо в качестве контекстного фильтра, либо для фильтрации выбранного фрагмента. Везде, где возможно, используйте функцию выборки! Конечно, есть много других советов, например, можно скрыть неиспользуемые измерения или использовать предварительную агрегацию источника данных.
Контрольный список оптимизации производительности Tableau: данные – анализ должен оставаться простым
Серия «Контрольный список оптимизации производительности Tableau» предназначена для того, чтобы помочь вам повысить производительность вашей информационной панели и настроить конфигурацию сервера Tableau. Каждый пост раскрывает один из компонентов, указанный в общем контрольном списке оптимизации производительности Tableau для профессионалов.
Первая тема, которую мы рассмотрим в новой серии, касается Данных, а первый пункт в нашем контрольном списке звучит следующим образом:
«Анализ должен быть простым. Работайте с подмножеством данных. Если это необходимо, сделайте выборку».
Посмотрите на эти примеры для продаж по позициям:
Рисунок 1: Визуализация.
Рисунок 2: Упрощенный анализ.
Как вы думаете, на какой визуализации на рисунках выше лучше всего данные представлены? Конечно, визуализация может быть и более детализированной, но слишком большое количество деталей может отвлекать от основной идеи. Тем не менее, понятный и краткий визуальный анализ, это не просто макет. Нужно копать глубже.
Все начинается с соответствующей подготовки
Не менее важным для визуализации является то, как вы готовите данные для своих листов. Это может иметь огромное влияние на оптимизацию. При попытке сделать данные как можно более аккуратными и оптимизированными следует учитывать несколько вещей.
Оптимизация информационной панели
Визуализация может работать также быстро, как основные источники данных. Это отличный ингибитор оптимизации, превращающий отличные информационные панели в головную боль. Ключом к оптимизации медленных данных является выборка только тех данных, которые необходимы для анализа рабочего листа.
Переносимость отчета
Когда вы выбираете данные, вы создаете TDE и он может обслуживать один рабочий лист или несколько. К счастью, TDE можно упаковать вместе с рабочим листом как автономный набор отчетов, не зависящий от связи с источником данных. Им можно делиться и распространять намного легче, чем лист, опирающийся на оперативный соединитель данных.
*** Внимание: Пользуясь TDE в TWBX, помните о безопасности.
Эффективность источника данных
Выборка данных может не только оптимизировать информационную панель, но и повысить эффективность и производительность самого источника данных. Выборка данных не должна связываться с источником данных, из которого извлекается. Это автономное подмножество данных.
Агрегированная выборка
При выборке данных, Tableau также дает возможность агрегировать данные для всех видимых измерений. Когда используются предварительные агрегации, выборка данных называется «агрегированной выборкой». Этот тип выборки не содержит данных на уровне строк. Он содержит только агрегированные данные. Это идеально подходит для некоторых визуализаций, в зависимости от типа выполняемого анализа. Агрегированная выборка меньше стандартной выборки данных, и обеспечивает еще один уровень эффективности для высокой производительности информационной панели и рабочих листов.
Вычисляемые поля
При выборке данных все вычисляемые поля в выборке преобразуются в статические. Это отличный способ снизить нагрузку на источник данных при каждом обращении к данным через действующее соединение. К вычисляемым полям, преобразующимся в статические значения, можно получить доступ и объединить их так же легко, как и любое другое поле. Они особенно эффективны при работе со строковыми вычислениями, требующими намного большего количества ресурсов, чем числовые вычисления или вычисления данных.
Контрольный список оптимизации производительности Tableau: Данные – удалите неиспользуемые столбцы из выборки
Не так часто бывает, что в источнике данных есть только те данные, которые нужны. Как правило, мы имеем подключение к данным, в котором есть много столбцов, не нужных для нашего анализа. На ранних этапах анализа может быть сложно судить о том, что именно вам нужно и что вам не нужно, но по мере того, как рабочий лист начинает обретать форму, вы быстро поймете, что на самом деле вам нужно, а что – нет. Как только вы узнаете, какие данные вам нужны, то сможете создать выборку данных, в котором содержатся только точные данные, необходимые для построения вашей визуализации.
Есть довольно много факторов, влияющих на производительность выборки, но что может иметь действительно большое значение, так это удаление неиспользуемых столбцов из выборки, как упоминалось в разделе «Данные» контрольного списка производительности таблицы:
«Удалите неиспользуемые столбцы (меры/измерения), чтобы минимизировать время обновления выборки или время пользовательского запроса SQL».
В этом посте будет предложено несколько способов того, как можно удалить или скрыть эти неиспользуемые поля для повышения производительности ваших данных. Скрытие поля просто означает, что при создании/обновлении выборки эти скрытые столбцы не включаются.
Скрыть поля в окне данных
Чтобы скрыть поле в окне «Data» (Данные), щелкните на нем правой кнопкой мыши и выберите «Hide» (Скрыть). Ваше скрытое поле теперь будет отображаться серым цветом в окне Data:
Рис.1 Окно Data
Скрыть поле путем редактирования источника данных
Кроме того, вы можете скрыть поле в меню подключения к данным при начальном создании подключения к данным или щелкнув правой кнопкой мыши по источнику данных и выбрав «Edit Data Source» (Редактировать источник данных). Здесь выберите выпадающее меню в нужном поле и выберите «Hide» (Скрыть):
Рис.2 Команда «Hide» (Скрыть)
Скрытие всех неиспользуемых полей
Хотя предыдущие два варианта дают вам точный контроль над полями, которые вы скрываете или не скрываете, я предпочитаю, чтобы Tableau скрыл все неиспользуемые поля в моей книге перед созданием выборки. Это можно сделать, нажав кнопку «Hide All Unused Fields» (Скрыть все неиспользуемые поля) в диалоговом окне выборки. В приведенном примере я создал образец рабочей книги и решил включить только те поля, которые я использовал в своей книге:
Рис.3 Окно «Extract data» (Выбрать данные)
После того, как моя выборка была создана, от начальных 30 полей в исходном источнике данных осталось 15.
Выбирайте эту опцию только в том случае, если вы уверены, что скрытые поля никогда не будут использоваться этой или любой другой книгой, использующей данную выборку данных.
Отображение скрытых полей
После того как вы скроете свои поля, они больше не будут отображаться в окне данных; однако, если вы щелкнете правой кнопкой мыши по источнику данных и снимите флажок использовать выборку, у вас будет возможность отобразить скрытые поля в раскрывающемся меню в верхней части окна данных.
Рис.4 Команда «Show hidden fields» (Показать скрытые поля)
Контрольный список оптимизации производительности Tableau: Данные – используйте «Описание»
В этом посте мы рассмотрим одну из функций, которая делает Tableau отличным инструментом для исследования данных.
«Используйте «Описание», чтобы исследовать измерения в новых наборах данных, не загружая их в визуализацию (сочетание клавиш CTRL + E)».
Tableau хорош во многих вещах, и визуализация данных – только одна из них. Первое, что вы заметите, подключившись к источнику данных в Tableau, - это как он делит ваши данные на измерения и меры. Это само по себе говорит о том, что теперь вы можете точно знать, для чего могут использоваться ваши данные.
Размеры используются для распределения ваших данных по частям/группам/сегментам. Это – те вещи, с помощью которых вы можете «нарезать» свои данные. При перетаскивании в представление размеры создают заголовки строк и столбцов. Кроме того, у вас есть меры, с помощью которых вы можете реализовать математику (мне нравится, что Tableau дружественна к аллитерации: меры = математика). Обычно это непрерывные поля данных, которые при перетаскивании в представление создают ось, а не заголовок столбца/строки.
Но что еще нам может сказать Tableau о наших размерах и мерах? Давайте посмотрим:
В окне «Данные» вы сразу же заметите, что рядом с каждым полем есть своего рода значок, указывающий тип данных, который Tableau видит как:
Рис.1 Иконки показывают какой тип данных Tableau видит в поле
Довольно скользкий момент. Теперь, Tableau может понять это неправильно, но вы всегда можете использовать контекстное меню, чтобы внести исправления и изменить тип данных:
Рис.2 Смена типа данных в поле
Очень полезно. Спасибо, Tableau!
«Describe»
Есть еще кое-что, что вы можете заметить в контекстном меню, это слово «Describe» (Описать). Что оно делает? Давайте взглянем:
Рис.3 Функция «Describe…»
Если вы выберете «Describe» из меню, вот что вы увидите ... настоящая сокровищница информации о выбранном вами поле (измерение или мера):
Рис.4 Окно описания поля
Role (Роль): здесь Tableau сообщает вам, как он будет взаимодействовать с этим полем, когда оно используется в представлении. В этом примере, по полю Region (Регион) из Superstore Sales (Продажи в гипермаркете) он скажет вам, что это дискретное измерение, поэтому, когда я перетаскиваю это поле на полки Rows (Строки) или Columns (Столбцы), я увижу строку или столбец для каждого элемента измерения.
Type (Тип): Говорит мне, что данное поле является столбцом базы данных. Еще один возможный вариант – это вычисляемое поле. Вычисляемые поля создаются в самой книге, а не в вашем источнике данных. Вот пример того, как это будет выглядеть в диалоговом окне:
Рис.5 Если тип поля – «Вычисляемое поле», окно с описанием покажет его формулу
Remote Column (Удаленный столбец): это имя столбца в базовом источнике данных. Мне это нравится, потому что, если вы любите переименовывать свои поля в Tableau, чтобы сделать их более значимыми, может быть сложно вспомнить, как изначально называлось поле. Используя информацию об удаленном столбце, вы можете убедиться, что указали правильное имя поля, если вам нужно вызвать вашего администратора базы данных и спросить что-то об этом поле.
Remote Type (Тип удаленного доступа): здесь снова делается ссылка на базовый источник данных и рассказывается, как он видит это конкретное поле. Так же, как вы можете назначить новое имя полю в Tableau, вы также можете назначить новый тип данных. Примером этого может быть что-то вроде почтового индекса. Многие базы данных назначают этот тип данных как «числовой», но вы возможно захотите, чтобы они работали как текст в Tableau. Вы забыли исходный тип данных поля? Используйте «Describe», чтобы узнать, что это было.
Contains NULL (Содержит NULL): есть ли в ваших базовых данных пустые значения в этом поле? Если так, то здесь вы узнаете об этом.
Locale (Локализация): ваша рабочая книга создана для использования в Великобритании? Этот флаг в диалоговом окне «Describe» (Описать) сообщит вам об этом. Установка языкового стандарта, как описано здесь, сообщает Tableau, как отображать определенную информацию в соответствии с локальными нормами. Например, европейские даты часто отображаются в формате дд/мм/гг, а не в формате мм/дд/гг, обычно используемом в США.
Sort flags (Флаги сортировки): сортируется ли основной источник данных по этому полю? Если да, то в каком положении? Когда базовые источники данных создаются как представления, например, из базы данных SQL или базы данных Access, это представление или запрос могут быть отсортированы по одному или нескольким полям. Если поле, которое вы описываете, является участником такого рода, вы узнаете об этом.
Column width (Ширина столбца): если поле имеет заданную фиксированную ширину в базовом источнике данных, что часто наблюдается при подключениях ODBC, таких как SQL Server или Oracle, тогда это значение будет отображаться здесь.
Status (Статус): когда дело доходит до вычисляемых полей, иногда используемая мера или измерение меняются или удаляются. Это делает вычисленное поле недействительным, и вы увидите, что указано здесь.
СОВЕТ: в окне данных недопустимые вычисляемые поля обозначены красным восклицательным знаком (!).
Рис.6. Окно описания поля
Нажатие на «Load» (Загрузка) покажет вам, что именно находится в этом поле. Для измерений будут перечислены все элементы измерения, например:
Рис.7. Список значений меры
Для показателей будет указан диапазон значений в этой мере.
Стало лучше? В Tableau, содержится больше информации о ваших данных, чем вы можете себе представить.
Контрольный список оптимизации производительности Tableau: Данные – используйте выборки
Здесь мы рассмотрим шестой пункт в разделе «Данные» контрольного списка производительности Tableau:
«Используйте выборки везде, где это возможно, чтобы повысить производительность. Скрывайте неиспользуемые и конфиденциальные поля. Сверните детализацию данных путем предварительной агрегации или фильтрации. Разбейте иерархию только на видимые измерения»
Есть много причин для использования выборок и много толкований того, когда их использовать в других типах соединений, но с учетом вышесказанного, мы просто используем выборки в их полном объеме. Позвольте мне объяснить немного больше об экстрактах и почему вышеупомянутые пункты могут иметь значение.
Оптимизация
Во-первых, когда вы создаете выборку, Tableau использует множество различных методов для оптимизации выборки для ее использования в системе. Сначала Tableau описывает структуру выборки и определяет отдельный файл для каждого столбца, используемого в базовом источнике данных. Он будет сортировать, сжимать и добавлять значения для каждого столбца в файл хранилища столбцов.
Скрывая неиспользуемые поля, как указано в контрольном списке, вы минимизируете файлы. Они объединяются с метаданными для формирования вашего единого отображенного в память файла, содержащего все файлы, относящиеся к каждому столбцу из вашего основного источника данных.
Агрегирование
Во-вторых, при создании выборки у вас есть возможность объединить ваши данные для видимых измерений. Обычно это называют агрегированной выборкой. Поскольку вы агрегируете данные, вы не вносите данные на уровне строк полностью, как в случае неагрегированной выборки.
При взаимодействии с агрегированной выборкой все вычисления и суммирования уже рассчитаны. Поэтому у Tableau мало работы для отображения результатов в рамках вашей визуализации. Вы также можете определить уровень сворачивания, чтобы еще больше уменьшить размер выборки, снова увеличив производительность.
Рис.1 Выборка данных
Фильтрация источника данных
Наконец, в контрольном списке упоминается фильтрация. Фильтрация источников данных также может быть полезна при попытке контролировать размер ваших выборок. Время, когда этот фильтр будет применяться – ключевой момент.
• Если фильтр источника данных установлен до создания выборки, выборка будет содержать отфильтрованные записи.
• Если фильтр источника данных установлен после создания выборки, он будет применен ко всему выбранному набору данных. Таким образом, ваша выборка будет содержать «все» данные, но покажет только то, что разрешает фильтр источника данных.
Я надеюсь, что это краткое объяснение проливает некоторый свет на то, как работают выборки и как вы можете использовать их для повышения производительности.
Контрольный список оптимизации производительности Tableau: Данные - используйте один файл TDS
Этот пост посвящен тому, как использовать файлы TDS для простого обмена метаданными об источнике данных с другими пользователями. Сейчас давайте углубимся в пятый пункт раздела «Данные» контрольного списка производительности Tableau:
«Создавайте опубликованный TDS файл для своей бизнес-группы, а не для каждого аналитика, создающего собственный источник данных. Сюда входят все метаданные, связанные с измерениями, мерами, вычисляемыми полями, иерархиями, наборами, параметрами и соглашениями об именах».
Файлы TDS экономят время и позволяют избежать путаницы, позволяя настраивать метаданные, чтобы пользователи могли сразу приступить к созданию визуализаций. На всякий случай, если это новый термин для вас, метаданные – это причудливый способ сказать «данные о данных». Итак, метаданные для переменной продаж в наборе данных могут быть мерой, непрерывностью, числом в десятичном формате, валютой с единицами, показанными в тысячах, а агрегация по умолчанию установлена на сумму.
Tableau проделывает большую работу по автоматическому выполнению этой задачи вместо нас, например, присваивая переменные измерениям или мерам и выбирая тип данных, такой как «географический» или «дата», но процесс может зайти не туда. Если переменные в наборе данных помечены аббревиатурами, которые будут понятны не всем пользователям, будет лучше, если мы переименуем эти переменные и добавим подробный комментарий для других пользователей в TDS файл, а не оставим их, чтобы пользователи могли сделать неправильное предположение.
Расчет уже введенных полей также очень помогает сэкономить время, затрачиваемое на воссоздание вычисляемых полей, и убедиться, что все используют одни и те же вычисления. Например, следующие вычисления для «Profit Ratio» в наборе данных «Superstore» похожи, но дают очень разные результаты:
SUM([Profit]/[Sales])
SUM([Profit])/SUM([Sales])
Рис.1 Результаты вычислений Profit Ratio
Вы можете создать TDS файл из существующей книги, в которую уже добавили все необходимые поля форматирования и вычислений, или вы можете начать с нуля и подготовить источник данных для других. Ниже приведен обзор тех вещей, которые охватывают метаданные, сохраненные в TDS файле, которые можно увидеть, щелкнув правой кнопкой мыши переменную в окне Data:
• Переименовать переменную
• Группировать переменные в папки
• Иерархия
• Расчетные поля
• Группы
• Наборы
• Параметры (Примечание. TDS файл сохраняет параметр только в том случае, если на него ссылается вычисляемое поле)
• Размер или мера
• Дискретный или непрерывный
• Тип данных
• Географическая роль
• Свойства по умолчанию (сюда входят комментарии, цвет, форматы чисел, агрегация и итоги)
Создание TDS/TDSX
При создании файла TDS у вас также будет возможность создать TDSX. Файл TDS сообщает Tableau, как использовать данные после их переноса в Tableau, и включает путь к файлу, чтобы найти место, где данные расположены локально, будь то выборка или файл Excel.
TDSX файл создаст заархивированный файл, который включает в себя выборку данных вместе с метаданными о том, как эти данные должны отображаться в Tableau. Если ваши пользователи имеют локальный доступ к данным, просто создайте TDS файл, чтобы избежать создания нескольких копий одного и того же источника данных.
Ниже показаны скриншоты с двумя способами создания TDS файла в Tableau Desktop. Первый вариант – щелкнуть правой кнопкой мыши на источнике данных в окне «Data» (Данные) и выбрать «Add to Saved Data Sources…» (Добавить в сохраненные источники данных)… После этого выберите имя, сохраните местоположение и решите, каким должен быть тип файла (TDS или TDSX).
Другой вариант - перейдите в «Data» (Данные) на панели инструментов, выберите источник данных и выберите «Add to Saved Data Sources…» (Добавить в сохраненные источники данных)…. Выберите имя, место сохранения и тип файла.
Рис.2 Вариант 1
Рис.3. Вариант 2
Контрольный список оптимизации производительности Tableau: Фильтрация – избегайте «только релевантных значений» в быстрых фильтрах
Скорость имеет значение! Современные пользователи отчетов ожидают, что их информационные панели будут работать так же быстро, как запускаются веб-страницы. Вот почему важно оптимизировать каждую информационную панель для достижения максимальной производительности. Следующий пункт в нашем разделе «Фильтрация» такой:
«В фильтрах избегайте выбора «Только релевантные значения». Это требует последовательных запросов. Не используйте этот инструмент, когда не нужно».
Давайте разберемся, что это значит и почему это может негативно повлиять на производительность вашей панели.
Необязательный параметр
Что означает опция «Only relevant values» (Только соответствующие значения)? Параметр по умолчанию для быстрого фильтра – «All values in database» (Все значения в базе данных), что очень похоже на такое выражение: быстрый фильтр сделает все значения в базе данных для этого конкретного поля доступными для выбора пользователем.
Сравните это с «Only relevant values» (Только соответствующие значения). Эта опция сначала сравнивает значения, которые она возвращает из базы данных, со значениями в других быстрых фильтрах. Затем отображаются только те значения, которые применяются при выборе, сделанном для других фильтров. Его можно найти в меню фильтра прямо здесь:
Рис. 1 На рабочем листе нажмите стрелку вниз в правом верхнем углу вашего быстрого фильтра и выберите «Только релевантные значения».
Хорошим примером этого была бы информационная панель, отображающая информацию о США. Допустим, есть региональный фильтр и фильтр на уровне штата. Выбрав «Only relevant values» (Только соответствующие значения) для фильтра состояния, он сначала просмотрит Регион, выбранный пользователем. Если региональный фильтр установлен для Западного региона, тогда фильтр на уровне штата будет показывать только состояния Западного региона. Поэтому пользователю не разрешается делать недопустимую комбинацию выбора фильтров.
Просто чтобы указать точку, если для фильтра состояния не выбраны «Only relevant values» (Только соответствующие значения) для фильтра Штат, то при выборе Западного региона будет получено пустое представление. Выбран любой Штат за пределами Западного региона.
Ограничения производительности
С этим параметром возникает проблема, когда есть больше двух быстрых фильтров. Tableau вынужден запускать не только один запрос, чтобы получить все значения для каждого быстрого фильтра, он должен выполнить второй подзапрос, чтобы заполнить представление каждого выбора на основе релевантности с другими фильтрами на информационной панели. В результате этих подзапросов производительность вашей панели может сильно пострадать.
Это ограничение идет рука об руку с предыдущим пунктом контрольного списка производительности Tableau “Ограничение количества быстрых фильтров”. В общем, чем больше быстрых фильтров вы добавляете на свою информационную панель, независимо от того, содержат ли они только соответствующие значения или нет, тем больше возможностей у вас есть, чтобы испортить производительность всего вашего отчета.
Лучшее решение
Итак, как мы можем обойти проблемы быстродействия фильтра с релевантностью? Точно так же, как мы это делали с обычными быстрыми фильтрами: всегда используйте действия фильтра на информационной панели! Действие фильтра не требует отдельного запроса или подзапроса для получения результатов.
Это не только улучшит производительность вашей панели, но и создаст более понятный и интуитивно понятный интерфейс для того, кто будет использовать отчет. Вы можете сделать это, выбрав любой вид на информационной панели и выбрав «Use as Filter» (Использовать как Фильтр).
Рис. 2 На информационной панели нажмите стрелку вниз в правом верхнем углу листа, который вы хотите использовать в качестве фильтра. Затем выберите «Использовать как фильтр»
Это означает, что всякий раз, когда пользователь отчета нажимает на метку данных, он автоматически фильтрует всю информационную панель по этому значению.
Контрольный список оптимизации производительности Tableau: Фильтрация – избегайте высокопроизводительных быстрых фильтров
Следующий пункт в нашем контрольном списке оптимизации по категории «Фильтрация»:
«Избегайте мощных быстрых фильтров (множественный выбор или выпадающие списки). Мощные быстрые фильтры медленно загружаются и отображаются».
Давайте посмотрим, как высокая мощность элементов в ваших быстрых фильтрах может негативно влияет на производительность.
Что такое мощность множества?
В SQL мощность множества – это количество уникальных значений в определенном столбце. Например, количество штатов в Соединенных Штатах равно пятидесяти, поскольку есть пятьдесят уникальных значений независимо от того, сколько строк в этом столбце. Мощность обычно классифицируется по трем категориям:
• Высокая мощность: у этих столбцов очень редкие или даже уникальные значения. Примером значений столбцов с высокой мощностью могут быть уникальные идентификаторы или адреса электронной почты.
• Нормальная мощность: в категорию элементов нормальной мощности попадают значения, которые несколько необычны. Примером могут быть фамилии клиентов. Есть некоторые распространенные вроде «Джонс», но есть и необычные (для нас), как «Джаханшахи».
• Низкая мощность: Это относится к значениям столбцов, которые имеют очень мало уникальных значений. Вот примеры этой категории: булевы значения или базовые классификации людей, такие как пол.
Естественно, когда в вашей визуализации появляется быстрый фильтр, количество элементов в наборе будет определять, сколько опций появится у фильтра.
Проблема
Проблема с быстрыми фильтрами с высокой мощностью состоит в том, что Tableau должен запрашивать и возвращать все значения в быстром фильтре, если вы используете раскрывающийся список. Если в быстром фильтре есть много значений, из которых он может выбирать, то он постепенно добавляет те пункты, которые должен проверить Tableau, прежде чем ваша визуализация сможет завершить загрузку.
Если вы используете инструмент Best Practice Analyzer из базы инструментов Workbook Tools для Tableau, он покажет быстрые фильтры высокой мощности как предупреждение. Кроме того, он будет возвращать количество уникальных значений в столбце высокой мощности в качестве дополнительной информации.
Дикое решение
Лучший способ решить эту потенциальную проблему – убрать опцию выпадающего списка из быстрого фильтра. Вместо этого рассмотрите возможность использования параметра подстановки. Это позволяет пользователю отчета начать ввод символов, а Tableau предоставит список совпадений, из которых пользователь сможет выбрать нужное значение. Это сокращает время предварительной обработки для улучшения функционирования визуализации. Когда вы начнете искать значение фильтра, Tableau не придется загружать весь диапазон уникальных значений в быстрый фильтр.
Рис.1 Опция «Wildcard match»
Изменить тип быстрого фильтра довольно легко. Просто нажмите на стрелку вниз на панели инструментов и выберите подстановочный знак. Затем, когда вы введете несколько символов, Tableau вернет все значения, соответствующие этим символам.
Рис. 2 Фильтр «Crime type»
Контрольный список оптимизации производительности Tableau: Фильтрация – не ленитесь с пользовательскими фильтрами
Последний пост в разделе «Фильтрация» посвящен тому, когда и как не следует использовать пользовательские фильтры, и как это может замедлить вашу визуализацию:
«Не ленитесь с пользовательскими фильтрами. Безопасность с пользовательскими фильтрами может повлиять на производительность на сервере Tableau, поскольку сервер не может совместно использовать соединения и кэши запросов, если пользовательские фильтры активны. Рассмотрите возможность создания сводного представления, которое представляет собой независимый от пользователя обзор с использованием предварительно агрегированного извлечения со скрытыми основными данными. Для подробного просмотра ограничьте его конкретными пользователями или группами активных каталогов вместо пользовательских фильтров».
Простые фильтры
Пользовательские фильтры – это способ фильтрации данных в ваших визуализациях с сервера Tableau на основе конкретных пользователей. Например, если у вас есть глобальный отчет о продажах, вы можете отфильтровать данные, которые региональные менеджеры по продажам видят по штатам. Все это управляется с сервера Tableau на основе пользовательских разрешений и логинов. Вы можете фильтровать по отдельным пользователям или группам пользователей. Специфика пользовательских фильтров может быть детализирована до уровня строки или столбца.
Ниже приведен еще один пример, только на уровне штата:
Рис.1 Фильтрация на уровне штата
Рис. 2 Окно настройки пользовательского фильтра
Большие проблемы
Реализация пользовательских фильтров влияет на производительность сервера Tableau. Как указано выше в руководстве, использование их в качестве удобной защиты означает, что Tableau Server не может совместно использовать кэш при создании визуализации.
Когда Tableau создает представление, оно создает кэш запросов, который можно быстро использовать для других пользователей. Пользовательские фильтры заставляют Tableau Server повторно запрашивать базу данных для создания визуализации, по существу воссоздавая все ваши уязвимые визуализации и информационные панели с нуля для каждой отдельной группы или пользователя, который фильтруется через пользовательские фильтры. Представьте, что у вас есть десятки или даже сотни пользователей, управляемых пользовательскими фильтрами, каждый из которых имеет доступ к очень сложной и интенсивной информационной панели. Вы можете сразу увидеть, как пользовательские фильтры могут существенно повлиять на производительность.
Эффективные альтернативы
В определенных ситуациях мы рекомендуем использовать предварительно агрегированные выборки, которые удаляют те уровни детализации, которые вы хотите защитить. Это может уменьшить количество запросов, на которые влияют пользовательские фильтры, предоставляя источник данных, который можно использовать для визуализаций более высокого уровня. Тогда только визуализации, требующие более высокого уровня детализации нужно защитить с помощью пользовательских фильтров.
Контрольный список оптимизации производительности Tableau: Фильтрация – простые фильтры стабильного диапазона
Следующий пост в нашем списке советов по фильтрации: Ваш диапазон быстрых фильтров должен быть простым. Чем сложнее диапазон, тем медленнее запрос.
Обзор быстрого фильтра
Быстрые фильтры – это быстрый и простой способ добавить интерактивность в вашу визуализацию или информационную панель, используя локальные или глобальные фильтры. Есть много разных вариантов работы ваших быстрых фильтров. Параметры, которые вы сможете выбрать, будут контекстными в зависимости от типа данных вашего поля.
Быстрый фильтр диапазона доступен с числовыми полями и полями даты. Вот как это выглядит:
Рис.1 Числовые поля и поля даты быстрого фильтра
Можно настроить оба конца временной шкалы даты, а также только дату начала или конца.
Проблемы с производительностью
Проблемы с быстрым фильтром такого типа возникают тогда, когда в опциях фильтра слишком много уникальных значений. Мы частично затронули эту тему в предыдущей статье «Контрольный список производительности», посвященной высокой мощности в быстрых фильтрах. Например, наличие диапазона дат на вашем быстром фильтре за пятилетний период звучит достаточно разумно, но не в том случае, если вы можете отфильтровать до уровня дня. Если вы не подготовите свой фильтр или связанное с ним поле, то это именно то, что вы будете делать.
Это не только замедлит вашу визуализацию, но также обеспечит уровень детализации вашего фильтра, который не особенно полезен для пользователя отчетов.
Простота всегда лучше
Эмпирическое правило заключается в том, чтобы любые быстрые фильтры, использующие диапазон, были максимально простыми. Вместо использования какого-либо измерения даты в вашем источнике данных, такого как «Дата Продажи» или «Дата Отгрузки» в качестве фильтра, рассмотрите возможность использования года или года и месяца в качестве значений фильтра.
Если ваш пользователь отчета должен просматривать данные до определенного дня, то, вероятно, лучше всего это обрабатывать в отдельной визуализации, а не с помощью быстрого фильтра по диапазонам.
Контрольный список оптимизации производительности Tableau: Фильтрация – минимизируйте быстрые фильтры
Минимизируйте эти быстрые фильтры!
«Минимизируйте количество быстрых фильтров. Используйте действия фильтра информационной панели там, где это возможно».
Давайте посмотрим, что такое быстрые фильтры и как их использование (или переиспользование) может привести к замедлению работы ваших информационных панелей.
Что такое быстрые фильтры?
Фильтры – это то, что ограничивает ваше представление подмножеством общих данных в вашем источнике данных. Предположим, вы хотите увидеть показатели продаж по штатам, но вас интересует только Техас. Добавьте фильтр, выберите «Техас», и готово! До тех пор, пока ... кто-то другой не захочет посмотреть продажи по другому штату. Как вы позволяете пользователю взаимодействовать с этим фильтром на информационной панели? На информационных панелях нет полки «Filters» (Фильтры), поэтому мы должны предоставить другой механизм, чтобы пользователи могли выбирать из доступных полей.
Введите быстрые фильтры. Быстрые фильтры – это простой способ добавить уровень интерактивности пользователя в ваши отчеты, и вот как это можно сделать:
Рис.1 Щелкните правой кнопкой мыши на активном поле на полке фильтров и выберите «Показать быстрый фильтр» в контекстном меню.
После того, как вы увидите «Show Quick Filter» (Отобразить Быстрый фильтр), список доступных параметров для этого измерения (или показателя, в зависимости от того, по какому параметру вы фильтровали) будет отображаться справа от вашей визуализации, следующим образом:
Рис.2
Отличительной особенностью быстрых фильтров является то, что их можно настроить для применения одним из трех способов:
1. Для одного представления в качестве локального фильтра
2. Для всех представлений, которые построены на источнике данных (так называемый «Global filter» (глобальный фильтр))
3. Для любой комбинации отдельных рабочих листов, выбранных из тех, что доступны в рабочей книге.
Влияние на производительность
Хорошо, теперь мы знаем, что быстрые фильтры отлично подходят для интерактивности, но их ненадлежащее использование может вызвать проблемы с производительностью на ваших информационных панелях.
Добавление быстрого фильтра – это просто щелчок правой кнопкой мыши, но под капотом у Tableau будет идти определенная работа. Для каждого добавляемого быстрого фильтра Tableau должен выполнить запрос к базе данных, чтобы определить, какие значения отображать для выбранной меры или измерения. Если у вас много данных и много вариантов, то Tableau проделает там большую работу. Он должен запросить базу данных для всех возможных опций фильтра для всех быстрых фильтров.
Если у вас локально есть два или три быстрых фильтра для каждой визуализации на информационной панели, то вы добавили довольно много дополнительных функций, которые Tableau должен выполнить, прежде чем он сможет визуализировать информационную панель. Tableau не только должен генерировать все различные элементы, как я уже указывал, но и применять все правила отображения для этого фильтра. Значение: он должен применять релевантность, если вы выбрали Use Relevant Values (Использовать релевантные значения), и он должен форматироваться с использованием выбранного вами стиля (Single Value – List, Single Value – Drop Down (одно значение – список, одно значение – раскрывающийся список и т. д.)
Итак, вы видите, что у полной информационной панели потенциально могут быть сотни различных значений, которые будут отобраны для отображения. Не оптимально по производительности, друзья!
Действия фильтра
Действия фильтра информационной панели лучше, чем использование большого количества быстрых фильтров. В отличие от быстрых фильтров, действия фильтров на информационной панели не генерируют дополнительные запросы к базе данных. Использование действий фильтра на информационной панели также лучше для пользователя, поскольку они могут фильтровать столько представлений на информационной панели, сколько хотят. Это позволяет пользователю отчетов просматривать все отчеты по принципу «яблоки к яблокам».
Вот как вы можете создать действие фильтра информационной панели. Начните с использования стрелки раскрывающегося списка на одной из визуализаций на информационной панели и выберите «Use as Filter» (Использовать как фильтр) следующим образом:
Рис. 3 На информационной панели нажмите стрелку вниз в верхнем правом углу листа, который вы хотите использовать в качестве фильтра. Затем выберите «Использовать как фильтр»
Теперь, когда вы нажимаете на любую метку данных, она будет фильтровать другие визуализации на основе вашего выбора:
Рис. 4. Пользователь щелкает на строке, Tableau фильтрует данные на дополнительном рабочем листе.
Помимо предотвращения возможного снижения производительности, вы обнаружите, что ваши информационные панели будут намного чище и интуитивнее в использовании, если вы удалите весь беспорядок излишних быстрых фильтров. Это не значит, что быстрый фильтр бесполезен; он, безусловно, имеет право на жизнь. Просто убедитесь, что те инструменты, которые вы используете, являются неотъемлемой частью передачи истории данных.
Контрольный список оптимизации производительности Tableau: Фильтрация – используйте действия фильтра информационной панели
Продолжаем оптимизацию в категории «Фильтрация»:
«Замените быстрые фильтры, отображающие «Только релевантные значения» и большое количество быстрых фильтров, действиями фильтра на информационной панели. Они будут каскадно взаимодействовать с вашим пользователем и работать быстрее».
У меня 99 проблем ...
Как мы уже обсуждали в предыдущих постах серии «Контрольный список оптимизации производительности Tableau», при использовании быстрых фильтров возникают большие потенциальные проблемы с производительностью. Если у нас слишком много быстрых фильтров, с помощью параметра Only Relevant Values (Только релевантные значения) или с помощью быстрых фильтров, которые имеют много значений (то есть с высокой мощностью), это будет влиять на производительность всей информационной панели.
Суть проблемы заключается в том, что Tableau должен выполнять дополнительную работу за кулисами, чтобы заполнить значения для этих быстрых фильтров. Это часто означает несколько подзапросов, прежде чем Tableau сможет завершить загрузку.
... и действие фильтра не единственно
Действия фильтра на информационной панели вам в помощь! Мы уже рассмотрели, почему действия фильтров информационной панели являются оптимальной заменой нескольких быстрых фильтров, и как строить действия информационной панели. Короче говоря, им не требуется, чтобы Tableau выполняла дополнительные запросы и добавляла интуитивный уровень взаимодействия с вашей информационной панелью. Это связано с тем, что для загрузки представления нет быстрых фильтров, которые необходимо запрашивать и заполнять. Фильтр работает с действием пользователя, например, нажатием на метку. Не только это, но и действия фильтра могут применяться ко всей панели, тогда как глобальные быстрые фильтры будут применяться ко всей книге, что чаще всего нежелательно.
Давайте теперь рассмотрим, как действия фильтров панели могут работать как каскадные фильтры.
Каскадные фильтры
Каскадные фильтры работают в иерархии фильтров. Фильтр верхнего уровня, когда выбрано значение, уменьшит количество параметров, доступных в других фильтрах. Например, предположим, что фильтром верхнего уровня является Region, и мы выбираем West. При использовании каскадных фильтров этот выбор будет изменять параметры в фильтре State для всех западных штатов.
Действия фильтра информационной панели лучше всего работают в тандеме по управляемым аналитическим путям, которые позволяют потребителю отчета углубляться от макроса до микроуровня. Давайте посмотрим на пример:
Рис.1 Показатели избыточного веса среди населения по штатам
Наше представление выше позволяет нам фильтровать, нажимая на штат на карте США, фильтровать по региону, щелкая по любому из названий регионов, или фильтровать по штату, щелкая по любой из меток на графике. Использование любого из этих действий фильтра вызовет карту района внизу:
Рис.2 Показатели избыточного веса среди населения по штату Оклахома
Мы можем снова отфильтровать, нажав на любой из штатов для получения дополнительной информации:
Рис.3 Результаты фильтрации
Контрольный список оптимизации производительности Tableau: Фильтрация – избегайте быстрых фильтров, которые управляют контекстными фильтрами
Следующий пункт в нашем контрольном списке «Фильтрация»:
«Избегайте быстрых фильтров или действий, которые управляют контекстными фильтрами. Они требуют перезагрузки контекстной таблицы, их следует избегать везде, где возможно».
Что такое контекстный фильтр?
Фильтры, которые вы добавляете в визуализацию, вычисляются отдельно, независимо от того, что делают другие фильтры. Вы можете добавить «контекст» в ваши фильтры, добавив контекстный фильтр. После создания контекстного фильтра все остальные фильтры рассчитываются с использованием этого нового набора данных.
Рис.1 Контекстные фильтры обозначены серым цветом на полке фильтра.
Давайте возьмем гипотетический пример страховой компании с 50 миллионами клиентов. Это огромное количество для применения фильтра, но если мы добавили контекстный фильтр только для 40-летних мужчин, то Tableau создаст новую контекстную таблицу TEMP только с этими значениями.
Все фильтры получат доступ к этой новой таблице, и смогут извлекать значения из нее при ограниченном наборе данных. Цель этой контекстной таблицы – сделать ее как можно меньше. Если все сделано правильно, это улучшит производительность.
Проблема
Есть загвоздка: «ЕСЛИ все сделано правильно». Если контекстный фильтр выбирает все или недостаточно урезает базовые данные до лучше управляемого набора в новой контекстной таблице, это может создать большие проблемы с производительностью.
Давайте рассмотрим приведенный выше пример с нашей страховой компанией и нашим источником данных о клиентах в 50 миллионов строк. Каждый раз, когда загружается визуализация, Tableau будет воссоздавать эту контекстную таблицу. Если контекстная таблица не только большая, но и широкая, вы увидите, что эта огромная нагрузка на производительность сдерживает процесс визуализации.
Проблемы усугубляются, если рассматривать Tableau Server с несколькими пользователями, каждый из которых создает новые контекстные таблицы по 50 миллионов строк с многочисленными столбцами.
Оптимизация контекстных фильтров
Мы не рекомендуем использовать быстрые фильтры для управления контекстными фильтрами, если это возможно. Причина этого заключается в том, что для каждого быстрого фильтра Tableau будет запрашивать соответствующий источник данных, чтобы вернуть значения для быстрого фильтра. Если для визуализации используется большая контекстная таблица, то это двойной удар по производительности.
Первое, что следует учитывать при использовании контекстного фильтра – сделайте вновь созданную таблицу TEMP как можно меньшей. Это может означать фильтрацию строк на основе значения, а также удаление столбцов, которые не нужны для этой конкретной визуализации. Ваша цель должна состоять в том, чтобы уменьшить размер набора данных как минимум до одной десятой от исходного размера.
Контрольный список оптимизации производительности Tableau: Локальные вычисления - производительность сервера
«Даже если книга опубликована на сервере Tableau, локальные вычисления все равно будут влиять на производительность. По возможности используйте возможности Tableau Server, ограничивая локальные вычисления, такие как группы, иерархии, контрольные линии, табличные расчеты и смешивание».
Расчет против вычисления
Возможно, лучше всего начать с разницы между вычислениями и расчетами. Хотя на первый взгляд они кажутся идентичными понятиями, на самом деле есть небольшая разница. Расчет включает в себя чистую арифметику, такую как расчет процентов по кредиту. А в вычислении применяют ряд правил, таких как алгоритм, для получения ответа. Примером вычисления может быть оценка рейтинга кредитоспособности потенциального заёмщика.
Локальные вычисления не ограничиваются только вычислениями Tableau, такими как табличные вычисления; они также включают целый ряд дополнительных функций.
Рис.1 – Смешивание может повлиять на производительность, добавляйте его с умом.
Локальные вычисления на сервере
Как мы уже говорили в нашем руководстве, даже если ваше вычисление локальное, в большинстве случаев они фактически вычисляется и отображается на сервере Tableau. Сервер Tableau в режиме по умолчанию использует расчет пороговых значений для определения сложности информационной панели. Этот порог составляет 100 для ПК и 20 для планшетов. Если информационная панель превышает эту величину, то большая часть рендеринга будет проходить на стороне сервера, а не на стороне клиента. Это полезно, потому что ресурсы на компьютере, на котором работает сервер Tableau, обычно намного мощнее и могут с большей легкостью справляться с вашей сложной информационной панелью.
Проблема с рендерингом на стороне сервера заключается в том, что для особо тяжелой визуализации или информационной панели по-прежнему требуются ресурсы сервера Tableau, а не выгрузка на локальный компьютер пользовательского отчета. Ненужные или чрезмерные вычисления приведут к потере ресурсов на сервере Tableau, замедляя весь процесс.
Очевидно, что при доступе к этому отчету сотен или даже тысяч пользователей нагрузка на сервер Tableau может возрасти и это повлияет на производительность. Лучший способ решить эту проблему – использовать базовую базу данных для выполнения расчетов там, а затем использовать ее в своей визуализации.
Контрольный список оптимизации производительности Tableau: Локальные вычисления – табличные расчеты
«Табличные расчеты – это мощный инструмент, но он может сильно замедлить работу. Они зависят от локального механизма вычислений и могут потребовать существенного объема памяти».
Табличные расчеты
Табличные расчеты – это вычисления, которые используют значения во всей таблице и могут реструктурировать их для разных представлений и полей. Когда дело касается табличных расчетов, существует два типа полей: разбиение на разделы и адресация. Поля группируют ваши данные в разные сегменты. Один из примеров этого – сегментирование данных о продажах по регионам, категориям продуктов или по сотрудникам. Каждый из этих разделов затем рассчитывается.
Поля адресации определяют направление вашего расчета. Общим адресным полем будет дата. Используя любой из приведенных выше примеров, мы могли бы сгруппировать продажи по дате, категории или сотруднику (поля раздела), а затем отобразить их в виде столбчатой диаграммы год за годом (поле адресации).
Табличные расчеты часто используются для создания общей базовой линии для событий, которые начинаются в разные даты, средневзвешенных значениях, процентах от общего числа и т. д. В блоге моего коллеги Томаса Маккалоу есть отличный пост о некоторых важных табличных расчетов, с которыми должен ознакомится каждый пользователь Tableau.
Рис. 1 – Табличный расчет процента от общего с разбивкой.
Используйте осторожно
Потенциальная проблема с табличными расчетами заключается в том, что они используют локальный механизм вычислений. Механизм обработки данных Tableau – это прорыв в обеспечении возможности специального анализа и функций перетаскивания в Tableau Desktop. Это довольно мощный инструмент, но визуализации, которые в значительной степени полагаются на табличные расчеты для того, чтобы рассказать свою историю, могут привести к снижению производительности. Чем сложнее информационная панель и соответствующие данные, тем больше у вас возможностей улучшить производительность визуализации.
Лучшее, что вы можете сделать, это облегчить рабочую нагрузку в Tableau Desktop, подготовив как можно больше данных, прежде чем они будут использоваться в таблице. Это распространенная тема в вопросе эффективности таблиц в Tableau. Как инструмент анализа данных, Tableau дает вам невероятную мощность и гибкость в том, что вы создаете. Наше предостережение состоит в том, что если вы используете значительный объем данных с тысячами пользователей, вы замедлите работу Tableau Server.
Вы можете использовать их, но есть лучшие способы оптимизировать производительность. И один из них – провести дополнительную работу в вашей базе данных, чтобы подготовить данные до того, как они попадут в Tableau Desktop.
Контрольный список оптимизации производительности Tableau: Рендеринг – избегайте вычислений высоких отметок
«Избегайте вычислений высоких отметок. Большие отметок = больше времени на рендеринг»
Давайте рассмотрим это подробнее.
Подсчет отметок
Отметки – это точки, графики или символы на вашей визуализации. Это могут быть столбики на вашей горизонтальной гистограмме или точки на линейном графике. Каждая конкретная точка данных – это отметка, которую нужно создать и разместить на визуализации с помощью Tableau, прежде чем можно будет представить отчет.
На большинстве диаграмм не будет большого количества отметок. Средняя визуализация может иметь несколько сотен или даже меньше, что для Tableau не проблема. Самый простой способ определить, сколько отметок на вашей визуализации – посмотреть на рабочий лист внутри Tableau Desktop. В нижнем левом углу указано количество отметок на этом конкретном листе:
Рис.1 Количество отметок на листе
Больше отметок означает больше работы для Tableau во время рендеринга.
Меньше - больше
Во многих ситуациях можно уменьшить количество отметок без изменения истории, цели или задачи. Чтобы уменьшить количество отметок, которые должен отображать ваш рабочий лист, нужно помнить, что в некоторых случаях «меньше значит больше». Если у вас есть три трехсоттысячные точки данных, вам не обязательно отображать их все на одном листе. Лучше отфильтровать их или разбить результат на различные листы для лучшей наглядности в представлении данных.
Есть много других способов, с помощью которых вы сможете использовать интерактивность Tableau, чтобы позволить пользователю детализировать информацию, которая его больше всего интересует, не перегружая одну рабочую таблицу слишком большим количеством отметок. Чрезмерная перегрузка рабочего листа просто приведет к потере аудитории, поскольку перекрывающиеся и объединяющиеся отметки могут затруднить расшифровку визуализации, что приведет к оттенению того месседжа, который вы хотите представить пользователю.
Контрольный список оптимизации производительности Tableau: Ограничьте текстовые таблицы с большим количеством отметок
«Ограничьте использование детализированных текстовых таблиц множеством отметок.»
Количество отметок
Давайте начнем этот пост с рассмотрения количества отметок. Отметки – это отдельные точки данных на вашем графике. В зависимости от вашей визуализации они могут отображаться в виде полос, графиков, линий или текста.
Чтобы определить, сколько отметок у вас на рабочем листе, нужно посмотреть в нижнем левом углу Tableau Desktop.
Рис.1 Количество отметок на листе
В этом конкретном примере 209 отметок. Для Tableau это не так много, но их количество может быстро вырасти, если вы не будете осторожны.
Текстовые таблицы
Текстовые таблицы или кросс-таблицы (или сводные таблицы в Microsoft Excel) могут иметь множество отметок. Если у вас есть шесть разных столбцов в пятидесяти рядах состояний, то вы сразу получите триста отметок. Скорее всего, ваш пользователь отчетов не сможет понять смысл вашей визуализации, если вы не добавите тонну контекстных подсказок (и мигающие стрелки, указывающие на конкретную важную ячейку).
Визуализацию с большим количеством отметок не только трудно расшифровать, потребуется больше времени для ее загрузки. В зависимости от того, сколько отметок вы получили, и насколько трудно будет Tableau достать их из источника данных, этот процесс может оказать заметное влияние на производительность вашего рабочего листа. Предположим, что в каждой из этих записей в среднем шесть символов ($xxx,xxx.xx), тогда количество элементов, которые Tableau должна создать только для отметок данных для этой текстовой таблицы, возрастет до 3300.
Лучшее использование текста
Есть очень мало случаев, когда текстовая таблица является лучшим вариантом, чем более наглядное представление данных. Простая замена – это традиционная гистограмма, которая легко сравнивает производительность по столбцам. Используя другие диаграммы, вы можете создавать визуализации, которые легче интерпретировать и понимать. Вам нужно будет решить, какой из аспектов ваших данных является самым важным, прежде чем выбирать, какой график лучше всего отражает историю данных.
Кроме того, текстовые таблицы не так уж и интерактивны. В этом сила Tableau. Ничто не дает такого понимания, как возможность пробежаться по всему самому важному.
Если вы сможете избежать текстовых таблиц, сделайте это. Используйте их в качестве дополнительных раздаточных материалов для людей, которым нужны дополнительные детали, или для людей, у которых просто есть куча дополнительного времени, чтобы просмотреть всё строка за строкой.
В ситуациях, когда необходимо использовать текстовую таблицу, рассмотрите возможность использования таких действий информационной панели, чтобы они отображали только соответствующую выборку данных, а не весь источник данных. Моя идея заключается в том, чтобы использовать комбинацию контейнеров информационной панели и действий фильтра для отображения подмножества текстовых данных только тогда, когда пользователь старается изо всех сил. Это относительно просто. Как только у вас будет построена текстовая таблица, добавьте контейнер макета на информационную панель (горизонтальный или вертикальный, в зависимости от того, как вы хотите, чтобы он функционировал). Добавьте текстовую таблицу и другой лист на информационную панель в контейнер макетов и удалите заголовок из текстовой таблицы. Затем добавьте действие фильтра на информационную панель. Не имеет значения, выберете ли вы «hover», «select» или «menu», но обязательно выберите опцию «Exclude all values» в опции «Clearing the selection»: Конечный результат на практике выглядит так:
Рис.2 Оптимизация количества отметок
Это помогает снизить количество отметок и отображает релевантную информацию только после того, как кто-то подключился к информационной панели.
Хотя каждый тип диаграммы имеет право на жизнь, текстовая таблица, возможно, является одним из наиболее часто используемых параметров. Пользователи Excel, которые переходят на Tableau, имеют тенденцию работать через старые испытанные и верные подходы. Будьте смелее и переходите к другим типам диаграмм. Вы обнаружите, что пользователи вашего отчета будут вам благодарны.
Контрольный список оптимизации производительности Tableau: Рендеринг – минимизируйте размеры изображения и ограничьте размер файла
«Минимизируйте размеры файлов любых изображений или пользовательских фигур там, где это возможно. Храните изображения размером менее 50 КБ».
Изображения и пользовательские фигуры
Что касается рендеринга, изображений и пользовательских форм, вы должны сосредоточиться на использовании их в качестве отметок. Например, вы хотите создать отчет о национальном ВВП, и вместо названия страны хотите использовать флаг этой страны. Или, возможно, вы создали собственную форму, например, звездочку, для отдела продаж, который превысил определенный заданный уровень.
Tableau дает вам возможность включать эти изображения и пользовательские формы непосредственно в ваш рабочий лист. Когда вы устанавливаете Tableau Desktop, он создает новую папку с именем «My Tableau Repository». Большую часть времени она будет находиться в папке «Мои документы». В вашем хранилище будет папка с именем «Shapes».
Рис. 1 Папка с именем «Shapes»
Сюда вы можете добавить пользовательские формы или изображения, создав новую папку. Каждая папка в папке «Shapes» считается палитрой фигур внутри Tableau Desktop. Мы рекомендуем называть папку так, чтобы ее было легко запомнить и описать, например, «Национальные флаги» в приведенном выше примере.
Вернувшись в Tableau Desktop, вы можете получить доступ к этим новым изображениям или фигурам, сначала нажав кнопку Shapes (Фигуры) на карточке Marks (Отметки), а затем выбрав More Shapes (Другие фигуры):
Рис. 2 More Shapes (Другие фигуры)
Затем используйте раскрывающийся список справа, чтобы найти новую папку, созданную вами для доступа к своим фигурам или изображениям:
Рис.3 Окно редактирование формы
Теперь вы можете назначить свои формы или изображения для любого элемента данных в левом окне.
Проблемы с производительностью
Учитывая потенциальные проблемы с производительностью, которые мы обрисовали в предыдущей статье о рендеринге с большим количеством отметок, вы уже могли догадаться, что пользовательские формы или изображения, имеющие большой размер файла, придадут вашей визуализации дополнительную нагрузку при загрузке. Изображения с большими размерами будут загружаться при каждом обращении к вашему документу. Если ваша информационная панель уже имеет большое количество отметок, то это, по сути, смертный приговор для быстродействия.
Мы предлагаем хранить изображения с максимальным объемом до 50 КБ. Tableau рекомендует хранить изображения размером 32 на 32 пикселя. Большие отметки можно разместить с помощью опции Size (Размер) на карточке Marks (Отметки). Если вам необходимо превысить эти пороговые значения, то вы можете предварительно просмотреть использование своих данных и их группировку с другими отчетами на информационной панели. Лучше отказаться от этой идеи или оставить ее в виде отдельного отчета, который не повлияет на производительность других визуализаций.
Другая проблема – экспорт
Мало того, что изображения большого размера и пользовательские формы также представляют проблему с производительностью для доступа к онлайн-отчетам, они могут существенно увеличить размер файла экспортируемого отчета. Если вы обычно экспортируете свои отчеты Tableau на другой носитель, такой как PDF, тогда пользовательские формы и изображения могут существенно увеличить размер вашего документа.
Причина в том, что PDF рассматривает каждый знак как отдельный объект, а не рассматривает визуализацию как одно изображение. Это замедлит процесс экспорта, а также увеличит размер вашего PDF.
Наша рекомендация
В большинстве случаев вы можете достичь своей цели, используя упакованные типы отметок, которые предлагает Tableau Desktop. Пользовательские формы и изображения являются ненужными дополнениями для большинства пользователей. Мы рекомендуем не использовать их, если вы попадаете в эту категорию. Однако есть отрасли, где требуются дополнительные типы отметок. Если это так, то постарайтесь максимально оптимизировать свои изображения, прежде чем добавлять их на рабочий лист.
Попробуйте использовать формат GIF с минимальным количеством цветов в палитре. PNG, как правило, больше, чем GIF и их нужно использовать только тогда, когда вам нужен прозрачный фон. JPEG не очень хорошо подходит для типов отметок и должен быть сохранен для изображений с большей шириной и высотой, таких как фон.
Контрольный список оптимизации производительности Tableau: Рендеринг - Используйте прозрачные фоновые PNG
«Если вы используете нестандартные формы, используйте PNG с прозрачным фоном вместо JPG. Визуализации станут чище, а файлы форм займут меньше места».
Изображения и пользовательские фигуры
Как правило, при создании карт символов в Tableau пользователи выбирают из готовых наборов форм. Но иногда необходимо, чтобы пользовательские изображения выделяли график. Для начала имеет смысл обсудить разницу между PNG и JPG.
PNG расшифровывается как “Portable Network Graphic»s. PNG – это файл изображения со сжатием без потерь, что означает, что изображение становится меньше без снижения качества. PNG чаще всего используются для изображений с резкими контрастными цветами, текстовых или графических линий. PNG обычно имеют большой размер.
JPG означает «Joint Photographic Experts Group». JPG – это сжатый файл с потерями, а это означает, что изображение стало меньшим, но с определенным влиянием на качество. JPG чаще всего используются для высококачественных фотографий. Как правило, файлы JPG имеют меньший размер, чем PNG.
Чтобы проиллюстрировать разницу, посмотрите эти две фотографии.
Рис 1 – Пример фото в формате JPG
Рис 2 – Пример фото в формате PNG
С первого взгляда различие практически невозможно определить. Ощутимая разница появляется тогда, когда вы смотрите на свойства и размеры двух файлов.
Рис.3 – Свойства файла JPG
Рис.4 – Свойства файла PNG
В качестве пользовательских изображений в Tableau изображения PNG имеют огромное преимущество перед JPG, потому что тип файла PNG поддерживает прозрачный фон, что может потенциально сильно сократить размер файла. JPG не поддерживают прозрачность. Давайте рассмотрим использование прозрачного PNG-файла в сравнении с обычным JPG-файлом для пользовательского изображения.
Рис. 5 – Файл PNG с прозрачным фоном
Выше показан PNG-файл. На нем нет белого фона. Это изображение логотипа может без проблем накладываться на любую другую графику и при этом сохранять четкую форму и свое качество. Это возможно, с помощью установки альфа-канала. Альфа-канал – это степень непрозрачности пикселя, которую можно изменить для выбора различных уровней прозрачности. Это изображение занимает 33,7 Кб. Основная причина такого результата заключается в том, что весь ненужный белый фон удален. В нашей предыдущей статье «Контрольный список оптимизации производительности Tableau» мы выяснили, что чем меньше размер изображения, тем лучше это для загрузки и экспорта.
PNG также предпочтительнее старого GIF, который также поддерживает прозрачность. Это потому, что края изображения PNG намного чище, чем у GIF. Вот все три варианта на разноцветном фоне, чтобы проиллюстрировать их различия:
Рис.6 - три варианта логотипа на разноцветном фоне
Первое изображение слева – это JPG (без прозрачности), второе – это наш PNG, а последнее – это GIF. Довольно заметные различия с точки зрения качества и размера файла.
В частности, в Tableau мы видим различие между использованием прозрачного изображения PNG и JPG.
Рис. 7 – Пример JPG изображения в Tableau
Рис. 8 – Пример PNG изображения в Tableau
Основным отличием является отсутствие белого фона из-за прозрачности.