Porozmawiajmy od funkcji tworzenia automatycznych hierarchii dat w Power BI. Nie jest ona taka prosta, jak by się mogło wydawać. Bo w końcu co jest skomplikowanego w podzieleniu daty na rok/kwartał/miesiąc/dzień?
Ale zacznijmy od początku.
Wchodząc do opcji w Power BI znajdziesz opcję Automatyczna data/godzina zarówno w zakładce GLOBALNE jak i BIEŻĄCY PLIK.

W zakładce GLOBALNE ustawiasz jej aktywację dla wszystkich nowych plików.
BIEŻĄCY PLIK – możesz ją włączać/wyłączać tylko dla pliku w którym obecnie pracujesz.
Jeżeli będzie ona włączona to dla każdej kolumny w Twoim modelu zawierającej daty zostanie stworzona automatyczna hierarchia:

Ba! Nie tylko zwykła hierarchia, ale teraz też możemy używać funkcji analizy czasowej opartych o te kolumny.
No i myślisz sobie – super! Nie muszę tego robić manualnie!
I właśnie taki był zamysł tej funkcji. Pamiętajmy, że Power BI to narzędzie, które powstało z myślą o użytkownikach biznesowych. Takich, którzy nie chcą zagłębiać się w technikalia ale za to potrzebują szybkiego dostępu do informacji.
Więc dlaczego ja mam ją wyłączoną?
Aby odpowiedzieć na to pytanie cofnijmy się do podstaw – czym jest tabela dat?
Oficjalna dokumentacja Power BI podpowiada nam, jakie wymagania muszą być spełnione:
- Musi mieć kolumnę typu danych data (lub data/godzina) — jest to tak zwana kolumna dat.
- Kolumna dat musi zawierać wartości unikatowe.
- Kolumna dat nie może zawierać wartości pustych.
- Kolumna dat nie może zawierać brakujących dat.
- Kolumna dat musi obejmować pełne lata. Rok nie musi być koniecznie rokiem kalendarzowym (styczeń – grudzień).
- Tabela dat musi być oznaczona jako tabela dat.
No to analizujemy punkty po kolei:
Musi mieć kolumnę typu danych data (lub data/godzina)
✅ No i to wymaganie będzie spełnione. W końcu nasze tabele posiadają taką kolumnę.
Kolumna dat musi zawierać wartości unikatowe.
🛑 A tutaj już zaczynają się schody. W większości przypadków nie mamy do czynienia z kolumną, w której każdy wiersz będzie reprezentował unikalną wartość.
Kolumna dat nie może zawierać wartości pustych.
✅ To wymaganie będzie w większości przypadków spełnione.
Kolumna dat nie może zawierać brakujących dat.
🛑 I tutaj mamy największy problem – musisz mieć naprawdę ogromne szczęście, żeby mieć tabelę w której faktycznie będzie zachowana ciągłość dat. Podobnie jak przy unikatowych wartościach
Kolumna dat musi obejmować pełne lata.
🛑 Znowu marne szanse na to, że w Twoim źródle danych akurat tak będzie
Tabela dat musi być oznaczona jako tabela dat.
🛑 Nawet, jeżeli niczego i nigdzie nie oznaczysz – będziesz mógł korzystać z funkcji analizy czasowej i hierarchii. Magia!
I teraz zaczynają pojawiać się pytania. Ale jak?
Skoro nie spełniamy wymagań dotyczących tabeli dat i skoro tabela dat jest potrzebna do tego, aby korzystać z funkcji analizy czasowej to jak to się dzieje, że korzystając z automatycznej hierarchii te funkcje są dostępne?
Odpowiedź jest prosta (a przy okazji nawet trochę przerażająca)
Automatyczna data/godzina tworzy ukrytą tabelę dat dla każdej kolumny, w której mamy datę/czas!
Tak – dobrze widzisz. Jeżeli masz model danych w którym jest 20 kolumn z datami – to zostanie utworzonych 20 wirtualnych tabel dat.
Doskonale to widać w DAX Studio.

Tutaj mamy bardzo prosty model – zaimportowanych tylko 6 tabel. Ale… Dla tych 6 tabel z danymi zostało utworzonych aż 11 odrębnych tabel dat!
Każda z tych tabel składa się z 7 kolumn i ok. 2.600 wierszy. I to wszystko wymaga obliczenia i siedzi w pamięci. Co za tym idzie negatywnie wpływa na wydajność Twojego raportu.
Dla porównania – tak to wygląda dla modelu w którym stworzymy kalendarz i oznaczymy go jako tabelę dat:

Właśnie dlatego korzystanie z porządnej tabeli dat jest tak istotne w Power BI.