Измерение даты: по умолчанию или настраиваемое? В чем разница?

Tags: Power BI, таблица

Если вы какое-то время работали с Power BI, вы знаете, что существуют два типа измерений даты: пользовательское или встроенное /по умолчанию. И всегда сбивает с толку людей, то, какое измерение даты полезно использовать, и какова разница между этими двумя подходами. Также, основываясь на выборе типа измерения даты, ваши расчеты DAX могут немного отличаться. В этом посте мы объясним все, что вам нужно знать о параметрах по умолчанию и пользовательских датах в Power BI, и поможем вам выбрать правильный вариант для решения Power BI.

Измерение даты по умолчанию в Power BI

Для некоторых людей измерение даты Power BI по-прежнему остается загадкой. Многие люди до сих пор не знают, что существует стандартное или встроенное измерение даты. Этого измерения даты не существовало в самом начале существования Power BI Desktop (в июле 2018 года). Это пришло немного позже. Цель этого измерения по умолчанию заключается в том, чтобы облегчить работу вычислений по времени в Power BI и сделать весь процесс проще для пользователя. Посмотрим, как это измерение работает.

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

По умолчанию (вы можете изменить конфигурацию по умолчанию) Power BI создает измерение даты для каждого отдельного поля даты в вашем наборе данных. Измерение даты - это общая величина даты с нормальными полями, такими как; Год, месяц, квартал, день и т. д. Вот конфигурация в Power BI Desktop, которая позволяет модели создать размер даты по умолчанию:

 

В Power BI Desktop File menu -> Option and Settings -> Options

 

В окне Options в разделе Current File, Data Load; Time Intelligence: Auto Date/Time

При включении этого элемента Power BI автоматически создает таблицу скрытых дат для каждого поля модели, которая имеет тип данных даты или даты / времени. Причина, по которой нелегко найти таблицу даты по умолчанию, заключается в том, что она СКРЫТА! Основная причина скрытия этой таблицы заключается в том, что пользователь столкнется с слишком большим путаницей, если вы увидите таблицу даты для каждого столбца типа данных даты. Вот модель, созданная с использованием параметра Date по умолчанию:

На скриншоте выше вы видите, что в FactInternetSales есть три поля даты: DueDate, OrderDate и ShipDate. Для каждого из этих полей существует значение TABLE для даты, которое вы не видите здесь. Но если у вас есть опция в настройках Power BI, вы можете увидеть иерархию Date под этой таблицей, которая показывает, что за сценой находится таблица. (Обратите внимание, что даже если вы не видите иерархию дат в этом представлении, это не означает, что измерение даты по умолчанию для Power BI не создано). Если вы хотите включить функцию, чтобы ПОКАЗАТЬ вашу иерархию даты, вы можете сделать это в разделе Options, Preview Features и включить “Show dates as a hierarchy in the fields list”

Зачем нужна таблица даты для каждого поля даты?

Итак, теперь, когда вы знаете, есть измерение даты по умолчанию, ваш второй вопрос может быть: почему Power BI создает его несколько раз, для каждого поля даты ?! Причина в том, что дата обычно действует как ролевое измерение. Иногда это может быть дата выполнения, иногда дата отправки, а иногда и дата заказа. Все эти параметры представляют собой поля даты, но их значения и поведение различны. Если вы читали статью о вычисляемых таблицах, вы знаете, что одним из способов выполнения ролевых измерений в Power BI является создание копий измерения даты. Это то, что Power BI делает за сценой автоматически. Power BI сначала создает шаблон для таблицы Date, а затем копирует его для каждой отдельной даты или поля даты / времени в модели. Вот закулисный взгляд на  модель Power BI:

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

Как выглядит таблица даты по умолчанию?

Есть много вариантов измерения даты в мире, и вы можете подумать, как выглядит таблица даты по умолчанию? Какие столбцы доступны там и какие столбцы отсутствуют? Здесь подсвечены столбцы:

Вид выше может быть создан с помощью таких инструментов, как Power BI Helper. Но если вам интересно увидеть список этих имен столбцов в Power BI Desktop, один из способов - увидеть его, когда вы пишете выражение DAX, после ввода точки (.) После имени даты или даты / времени, вы получаете список полей;

Возможно, это было загадкой для многих людей, когда они пишут заявление DAX; Каков список полей, которые появляются после точки (.) перед именем поля даты? Теперь вы знаете ответ.

 

Поле Date не является полем с точки зрения модели Power BI. Это ТАБЛИЦА, скрытая таблица, и из-за этого вы можете выбрать, какой столбец в этой таблице вы хотите использовать в своем выражении.

 

Запись вычислений Time Intelligence с измерением даты по умолчанию.

Написание выражений DAX для вычислений времени, использующих значение даты по умолчанию, осуществляется проще. Вам просто нужно использовать имя поля «Дата» плюс “.[Date]” в конце. Это означает, что вы используете поле [Date] скрытой таблицы дат для выражения. Например, вот как выглядит расчет по годам:

 

Year to Date with the Default Date Dimension

1

2

3

Sales YTD = TOTALYTD(

   SUM(FactInternetSales[SalesAmount]),

   FactInternetSales[OrderDate].[Date])

 

Если вы не используете «. [Date]», то вы не получите правильный результат, потому что для вычислений Time Intelligence нужен столбец DATE для работы, а с помощью «. [Date]» вы выбираете столбец даты в таблице скрытых дат по умолчанию.

Как вы можете видеть, расчет не работает, если вы не указали в выражении «. [Date]». Но если вы включите его, тогда все будет хорошо. Выражения, основанные на анализе речи, использующие значение Date по умолчанию, очень просто.

 

Измерение даты по умолчанию имеет встроенную иерархию дат

Одним из основных преимуществ использования значения по умолчанию Date является встроенная иерархия Date of Year / Quarter / Month / Day, которую она предоставляет. Всякий раз, когда вы перетаскиваете поле «Дата», Power BI автоматически показывает иерархию под визуальным, потому что есть скрытое поле «Дата» со встроенной иерархией за сценой.

Измерение даты по умолчанию  потребляет память

О да! Конечно, как и любые другие структуры таблиц в структуре Power BI, основанной на памяти, каждая таблица дат потребляет память. Но она будет делать то же самое, даже если вы создадите свое собственное измерение даты! Всякий раз, когда вы выполняете сценарий размерности ролей, вы также потребляете еще больше памяти! Основное отличие заключается в том, что измерение даты по умолчанию для Power BI будет создано, даже если вы не хотите проводить анализ на основе даты в поле даты! Например, даже если вы не используете DueDate в своем анализе на основе даты, все еще Power BI создает для него измерение даты. Вы не можете остановить его для одного поля. Вы должны либо остановить создание по умолчанию измерения Date для всей модели, либо использовать его для всей модели, вы не можете настроить его для каждого поля. Но с пользовательским измерением даты вы можете это сделать.

 

Пользовательское измерение даты

Вы можете думать, что если доступно измерение даты по умолчанию, тогда почему у меня должно быть собственное измерение даты? Ну, есть некоторые причины для этого. Давайте сначала проверим, как вы можете использовать настраиваемое измерение даты.

 

Mark as Date Table

Чтобы использовать свое пользовательское измерение Date, вы должны пометить свою таблицу как таблицу Date. Это очень важный шаг для Power BI, потому что тогда он будет знать, что таблица, которая будет использоваться для вычислений времени, является этой таблицей. Разумеется, вы можете иметь более одной таблицы Date, которая будет помечена как таблица Date (из-за той же причины ролевых размеров). Если у вас есть пользовательская таблица дат, вот как ее пометить как таблицу даты; Перейдите на вкладку Modelling в Power BI Desktop, затем выберите собственную таблицу Date  и выберите Mark as Date Table..

Вы также должны выбрать столбец полной даты в качестве Date column таблицы даты.

Обычно после этого изменения, если вы посмотрите на значок полей «Дата» в вашей пользовательской таблице дат, вы увидите их по-разному (без иерархии даты по умолчанию), которая показывает, что таблица теперь успешно отмечена как таблица «Дата».

Запись расчетов Time Intelligence с пользовательским измерением даты

Предпосылкой для этого шага является отметка таблицы как таблицы дат, которую мы сделали на предыдущем шаге, теперь вы можете написать выражение DAX так же просто, как показано ниже:

 

1

2

3

Sales YTD = TOTALYTD(

   SUM(FactInternetSales[SalesAmount]),

   DimDate[FullDateAlternateKey])

Как вы можете видеть, в этом выражении нам не нужна «.[Date]», чтобы перейти к полю даты. Поскольку для этого столбца нет скрытой таблицы дат, вы просто ссылаетесь на столбец, чтобы получить поле «Дата». Фактически, если вы используете здесь «.[Date]», вы получите сообщение об ошибке, потому что здесь нет скрытой таблицы дат.

Измерение даты по умолчанию или пользовательское?

Теперь, когда вы знаете все о измерении по умолчанию и пользовательском измерении, пришло время для основного вопроса: в чем разница ?! когда что необходимо выбирать? Ответ, как и многие другие ситуации, зависит от! Если вы хотите использовать общий анализ на основе даты и хотите создать модель проще и быстрее, то в этом случае очень важно использовать параметр Date Date. Но если вы хотите сделать специальный анализ на основе даты (например, анализ на основе открытого отдыха), тогда пользовательское измерение Date даст вам больше энергии. Давайте рассмотрим различия в деталях:

Моделирование по умолчанию намного проще

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

Если у вас есть поле «Дата», и вы его не используете, удалите его!

Когда у вас есть поле даты, Power BI автоматически создает для него таблицу, создавая связь этого с основным полем даты, а таблица потребляет память! Если вы не собираетесь использовать это поле, удалите его, чтобы сохранить память. Это также важно для любых других полей, которые вы не используете в модели; удалите их, чтобы получить лучшее потребление памяти, но это еще более важно для полей Date, потому что за сценой у вас будет не просто поле, но и таблица.

Индивидуальный и комплексный анализ проще с пользовательским измерением даты

Хотя измерение даты по умолчанию проще для общего анализа на основе даты, пользовательское измерение даты является очень мощным вариантом, когда дело доходит до индивидуального анализа. Например, предположим, что вы хотите создать анализ на основе даты, основанный на государственных праздниках. Как вы можете сделать это с использованием измерения даты по умолчанию? Ну, ответ заключается в том, чтобы создать список праздничных дней в виде таблицы и слить или присоединить его к полю даты, что означает создание собственного пользовательского измерения Date. Здесь, в этом сообщении, мы объяснили пример получения праздничных дней для пользовательского измерения даты в Power BI.

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

Частая ошибка, которую нужно избегать!

Одна большая распространенная ошибка, которая часто встречается, и это происходит из-за путаницы измерения по умолчанию и пользовательской таблицей, заключается в том, что мы видим оба измерения в одной модели! Вот что имеется в виду:

Предположим, вы хотите использовать настраиваемое измерение даты, и вы добавляете его в свою модель, вы создаете связь с полем даты в таблице фактов, а затем вы НЕ указываете его как таблицу дат! Вот где начинаются все ошибки! Если вы не отмечаете это как таблицу дат, то вы позволяете Power BI создавать измерение даты по умолчанию для поля даты даже в этой таблице (учитывая, что создание таблиц дат по умолчанию включено в параметрах, которое по умолчанию включено) , В результате у вас есть настраиваемая таблица дат, но у вас также есть измерение даты по умолчанию для поля даты в вашей настраиваемой таблице дат! Это означает, что вы используете дополнительную память дважды! и ваши выражения DAX также становятся еще более неправильными:

1

2

3

Sales YTD = TOTALYTD(

   SUM(FactInternetSales[SalesAmount]),

   DimDate[FullDateAlternateKey].[Date])


Это не правильно! Вы получите правильный результат в визуализации, но делать это так неправильно! Потому что, если вы собираетесь использовать таблицу даты по умолчанию, то в чем смысл добавления дополнительного пользовательского измерения? если вы собираетесь использовать пользовательскую таблицу дат, тогда вам нужно отметить ее как таблицу дат.

Резюме

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

No Comments

Add a Comment