Site icon Data Tools

Функции уровня детализации (LOD) в Tableau, 1 часть

Что такое уровень детализации? (LOD)

Уровень детализации (Level of detail (LOD)) – это возможность, которая впервые появилась в Tableau Desktop v9. Несмотря на то, что она дает большую гибкость и позволяет контролировать использование данных в визуализации, до конца понять ее смысл может быть нелегко.

Полки Rows и Columns

Чтобы понять, что такое уровень детализации, а также когда, где и почему ее нужно использовать, давайте сначала рассмотрим, в чем заключается идея детализации. На детализацию области построения в первую очередь влияют три инструмента визуализации. Первые два – это полки Rows (Ряды) и Columns (Колонки). Детализация определяется шкалами измерения, которые используются для  группировки искомых величин. Неважно, помещаете вы шкалу измерения на полку Rows (Ряды) или на полку Columns (Колонки), это влияет лишь на обозначение осей – получается или гистограмма с горизонтальными столбцами, или с вертикальными.

Например, если вы поместите State (Штат) на полку Rows (Ряды), визуализация разобьет значения величин исходя из этого уровня детализации.

В примере выше в области построения сумма продаж (SUM) будет разбита по штатам (State), например, так:

Если к примеру выше добавить еще одну шкалу измерения, скажем, вставить Category (Категория) после State (Штат), то на гистограмме мы получим большую детализацию и меньшую обобщенность. Другими словами, мы увеличили уровень детализации. Получится примерно следующее:

Полка Detail (или кнопка Detail)

Другим способом определения уровня детализации в Tableau Desktop является полка Detail (Детализация) на карточке Marks (Маркеры). Ее также обычно называют кнопкой Detail (Детализация). Перетаскивая шкалу измерения на полку Detail (Детализация), мы влияем на визуализацию, и характер влияния зависит от типа диаграммы. Давайте возьмем точечную диаграмму со значениями Profit (Прибыль) и Sales (Продажи) по соответствующим осям:

Сейчас точечная диаграмма содержит только одну точку, потому что измеренные значения не сегментированы ни по одной шкале измерений, или потому что результаты не разукрупнены. Другими словами, уровень детализации наиболее обобщен. Давайте увеличим детализацию, перетащив Order ID (Идентификатор заказа) на полку Detail (Детализация):

В этом случае, добавляя шкалу измерения на полку Detail (Детализация), мы сильно изменяем область построения. На точечную диаграмму это влияет следующим образом:

Теперь для каждого отдельного Order (Заказа) есть свой маркер, что делает эту визуализацию менее общей и более детализированной. Добавляя цвет или изменяя форму маркера можно сделать эту точечную диаграмму более легкой для восприятия.

Level of Detail (LOD) Calculations
(Формулы уровня детализации)

Формулы уровня детализации (LOD) дают четвертый способ определения уровня детализации. Самое замечательное в уровне детализации Tableau – это возможность задавать ее независимо для шкал измерения, используемых в визуализации. Перетаскивая поле на полку Rows (Ряды), Columns (Колонки) или Detail (Детализация), мы изменяем всю область построения. Уровень детализации (LOD) позволяет задавать нужный уровень детализации для конкретного поля независимо от области построения.

Работа с функцией INCLUDE

Начнем с данных

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

Давайте представим очень простую таблицу, содержащую поля: OrderID (ID заказа), Customer Name (Имя клиента) и Sales (Продажи). Вот фрагмент наших данных, первые двенадцать строк:

В качестве примера давайте выполним агрегацию, получив среднее значение. Самый высокий уровень агрегации, и, следовательно, самый низкий уровень детализации – это просто среднее значение всех двенадцати записей примерного набора данных. Это же относится и к полю OrderID (ID Заказа), которое будет выступать первичным ключом данной таблицы. Таким образом, OrderID по умолчанию является высшим уровнем детализации.

Я сложил все значения в колонке, а затем разделил на общее число строк, получилось $3059,00 деленное на 12. Результатом данной агрегации будут средние продажи на запись – $254,92.

В дашборде Tableau это будет выглядеть так:

Давайте увеличим уровень детализации, для чего учтем другое измерение из нашего примерного источника данных Customer Name (Имя клиента). Я хочу, чтобы Tableau ответил на мой вопрос:

Каков средний объем продаж на одного клиента?

Давайте отсортируем таблицу по полю Customer Name (Имя клиента):

Теперь давайте сгруппируем все заказы по полю Customer Name (Имя клиента) и сложим продажи для каждого клиента:

Теперь мы можем получить среднее значение, как мы сделали это выше, суммируя все значения в колонке и разделив на количество рядов. Поскольку всего клиентов 8, то в данном случае, делителем будет выступать число восемь, хотя общее количество записей 12. В результате получим $382,39 на клиента.

Я изменил уровень детализации. До вычисления уровня детализации, получение среднего объема продаж на одного клиента означало бы включение поля Customer Name (Имя клиента) в вашу визуализацию. Я получил то же значение, включив общую сумму Grand Total, агрегированную в среднее значение в этом примере, используя имя клиента (Customer Name) в качестве измерения:

Давайте посмотрим, как можно выполнить те же вычисления в Tableau без добавления к визуализации поля Customer Name (Имя пользователя).

Синтаксис уровня детализации

Но сначала  познакомимся с синтаксисом, который использует Tableau для вычисления уровня детализации. В редакторе Вычисляемых полей дашборд Tableau использует цветовое кодирование различных элементов вычислений. Функции обозначены синим. Поля – оранжевым. Параметры – фиолетовым. Уровень детализации – тёмно-синим.

Вот наш синтаксис:

{INCLUDE [dim1]: aggregate expression}

Где dim1 – измерение, а aggregate expression – выражение для агрегации (прим. пер.)

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

В вычислениях уровня детализации вы можете использовать дополнительные измерения, разделяя их запятыми, например так:

{INCLUDE [dim1], [dim2] : aggregate expression}

Include LOD

Вот как можно получить в дашборде Tableau тот же уровень детализации для примера выше, в котором мы получили средние продажи на клиента. Сначала  создадим вычисляемое поле, которое я назвал LOD Sales Include Customer Name (Уровень детализации продаж включая имя клиента). Помните, сначала необходимо просуммировать наши значения Sales (Продажи) для нового уровня детализации Customer Name (Имя клиента):

{INCLUDE [Customer Name]: SUM([Sales])}

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

Получилось! Получилось правильное значение средних продаж по всем заказам ($254,92), и правильное значение средних продаж на клиента ($382,38).

Обратите внимание, что мы не использовали Customer Name (Имя клиента) ни в одной из трех областей, которые задают уровень детализации – Rows (Ряды), Columns (Колонки) или Detail (Детализация). Мы использовали вычисление уровня детализации чтобы Включить имя пользователя в уровень детализации. Можно видеть, что таким образом мы получили куда большую гибкость и контроль над нашей визуализацией.

Exit mobile version