Это первая статья из раздела СОЛК (Советы, Оплаченные Литрами Кофе), посвященная оптимизации количества таблиц в PowerBI.
При создании новых столбцов, или мер внутри PowerBI вы могли заметить выпадающий список при обращении к столбцу, содержащему дату / дату и время.
Что-то вроде такого
«Это полезная бифидобактерия» — скажете вы, она позволяет не запоминать функции дат, которые возвращают все эти номера месяцев, кварталов, и так далее.
С одной стороны — вы правы, это некий помощник на пути изучения DAX, который упрощает написание кода. С другой стороны — за все нужно платить.
По аналогии с языками программирования, эта точка символизирует обращение к свойствам объекта, в данном случае, к иерархии дат, которую заранее просчитал PowerBI в момент загрузки данных в модель. По умолчанию, это происходит автоматически для любой колонки, которая содержит дату или дату-и-время.
Если у вас небольшая модель, состоящая из нескольких таблиц, у которых всего 1-2 столбца с датами — в этом ничего страшного нет, на производительность это скорее всего не повлияет. А вот если таблиц 10-20 и у них по 4-5 столбцов, то изменение в производительности будет ощутимое.
Увидеть все эти виртуальные таблицы с просчитанными иерархиями дат, которые услужливо создал для вас PowerBI можно через интерфейс DAX Studio — они отобразятся на левой панели, в списке таблиц. Они идут с префиксом LocalDateTable
Если вы видите в списке 20+ таблиц, то скорее всего это будет влиять на скорость обновления модели данных.
Чтобы виртуальные таблицы исчезли, а также не появлялись вновь в новых файлах — нужно убрать галочку в настройках в разделе Data Load (секция Current File — настройка текущего файла, Global — для новых файлов)
… Но есть маленький нюанс. После отключения опции все меры / вычисляемые столбцы, которые задействовали эти виртуальные таблицы будут показывать ошибку и их нужно будет скорректировать.
Ниже — чем можно заменить ( [Column] это столбец с датой )
[Column].Date
=INT( [Date] ) — Просто округляем дату до целого и присваиваем ей тип данных Date
[Column].Day
=DAY( [Column] )
[Column].Month
=FORMAT( [Date], «MMMM» )
[Column].MonthNo
=MONTH( [Column] )
[Column].Quarter
= «Qtr » & INT( ( MONTH( [Column] ) + 2) / 3 )
[Column].QuarterNo
=INT( ( MONTH( [Column] ) + 2) / 3 ) — Пользуясь случаем передаю привет @Кулешовой Ольге
[Column].Year
=YEAR( [Column] )
Шустрого DAX всем !