Окремі дата та час у PowerPivot (і таблиця BISM)

Коли ваша таблиця не надто велика, ви можете імпортувати таблицю з вихідним стовпцем DateTime, і лише тоді ви можете створити похідні обчислювані стовпці в DAX. Однак, коли ваша таблиця велика (тобто мільйони рядків або більше), корисно проводити обчислення поза PowerPivot.

дата

Наприклад: якщо у вас є 15 мільйонів рядків протягом одного місяця, припускаючи, що дата-час має деталізацію в одну секунду, а ви маєте лінійний розподіл протягом 24 годин, ви отримаєте словник приблизно 2,5 мільйона унікальних значень лише для цього стовпця. Це робить цю колонку досить дорогою. Тепер, коли ви розділяєте стовпець у SQL, ви можете заощадити багато місця. Якщо у вас є SQL Server 2008 R2, ви можете використовувати такий синтаксис у запиті SQL (або поданні SQL), щоб зробити розумний розподіл.

Це якщо для дати:

PowerPivot все ще читає стовпець як DateTime, але година/хвилина/секунди зникає, а кількість унікальних значень зменшується до кількості різних днів у ваших даних. Звичайно, полегшити приєднання до таблиці календаря!

Це для часу з округленням до секунд:

Знову ж таки, PowerPivot читає це як DateTime і в будь-якому випадку встановлює дату (поточний день, коли ви імпортуєте дані за допомогою формули вище) - однак, ви, ймовірно, отримаєте годину та хвилину в обчислених стовпцях (але робити це в SQL - це гарна ідея теж).

Якщо ви хочете округлити час до хвилини, а не до секунд, ви можете скористатися типом даних SMALLDATETIME, використовуючи цей привід:

Використовуючи цю техніку, я зберег таблицю 15 мільйонів рядків у книзі Excel розміром 66 Мб, використовуючи не більше 400 Мб або оперативну пам'ять, завантажену в пам'ять. Пам’ятайте, стовпці з унікальними значеннями для кожного рядка є найдорожчими в PowerPivot!