Contact us

Pošlji
povpraševanje

Zakladnica znanja

  • Predzanje

  • Kategorije

May 18, 2020

5 pravil za dober podatkovni model

Avtor: Branka Trifunović

5 pravil za dober podatkovni model

V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (januar 2020).

Podatkovni model je srce vsakega Power BI projekta. Ključno je, da je podatkovni model sestavljen optimalno, zato si bomo v tem članku ogledali 5 pravil dobre prakse.

Označimo tabelo kot koledar

Običajno želimo podatke spremljati kronološko, zato potrebujemo koledarsko tabelo. Koledarska tabela je najpomembnejša tabela v podatkovnem modelu. Ustvarimo jo lahko na več načinov, običajno pa izberemo pot, ki je opisana v članku Dinamični koledar v Power Query z M funkcijo.

Ko ustvarimo koledarsko tabelo, jo moramo kot tako še posebej označiti. To storimo tako, da izberemo tabelo in kliknemo Table Tools > Mark as date table. Vmesnik nas vpraša še po stolpcu tabele, izberemo datumsko polje, v našem primeru poimenovano Date.

Power BI preveri, ali polje vsebuje vse zaporedne datume od začetnega do končnega in potrdi uspešno validacijo. Model zdaj ve, da se znotraj polja v tej tabeli nahajajo datumi.

Razvrstimo po drugi koloni

Polje Mesec v tabeli koledar lahko privzeto znotraj Power BI poročil razvrstimo po abecednem redu naraščajoče ali padajoče, kar nam običajno ne koristi. Mesece želimo razvrstiti kronološko. Poskrbimo, da imamo v tabeli poleg meseca tudi stolpec z zaporedno številko meseca, npr. Month No. Če stolpca nimamo, ga lahko dodamo na dva načina:

  • Odpremo Power Query z Transform Data, izberemo tabelo Calendar, izberemo polje Date in kliknemo Add Column > Date > Month. Stolpec preimenujemo v Month No. Zapremo Power Query z Close&Apply.
  • V Power BI izberemo tabelo Calendar, kliknemo Table Tools > New column in v vrstico za formulo vnesemo = MONTH(Calendar[Datum]), kjer je Calendar ime naše koledarske tabele, Datum pa ime stolpca z datumi.

Da mesece razvrstimo po vrstnem redu, izberemo stolpec z imeni mesecev Month, kliknemo Column Tools > Sort By Column > Month No. Na podoben način lahko razvrstimo tudi npr. dneve v tednu.

Če hočemo kasneje izvzeti mesec iz filternega konteksta, si pomagamo s funkcijo ALL().

Povežemo tabele v Star shemo

Pri sestavljanju podatkovnega modela vedno težimo k Star shemi , ki ima eno fact tabelo in več dimenzijskih tabel. Ponovimo:

Fact tabela je tabela, ki vsebuje podatke ki jih spremljamo, npr. vseh tabela transakcij. Fact tabele so velike in se dnevno še povečujejo.

Dimenzijska tabele so tabele, ki opisujejo transakcije z atributi kot so kdaj, kdo, kje, kaj in podobno. Dimenzijske tabele so praviloma majhne in se redko spreminjajo.

Primer: na spodnji sliki je fact tabela fKnjizbe, ki vsebuje na tisoče vrstic. Nanjo so povezane manjše dimenzijske tabele.

Najboljša praksa je, da vse dimenzijske tabele vsebujejo ID atributa, ki ga opisujejo. Za tabelo produktov je to npr. Product ID. Enako polje se nahaja tudi v fact tabeli. Preverimo, da se tip podatkov ujema v obeh tabelah. Polji v podatkovnem modelu povežemo: ProductID iz fact tabele izberemo in ga povlečemo na enako polje v dimenzijski tabeli. Na ta način ustvarimo povezavo. Če so tabele urejene, bo povezava tipa Many to One. Drugačnih tipov povezav običajno ne želimo.

Na enak način povežemo ostale dimenzijske tabele in fact tabelo. Dobimo obliko, ki spominja na zvezdo oz. Star shemo.

Skrijemo povezana polja

Povezana polja skrijemo: desni klik na polje, Hide in report view. Povezana polja skrijemo tako v fact kot dimenzijskih tabelah. Običajno so v teh poljih števila, ki ne nosijo druge informacije kot indeks atributa. V filtrih ne bomo uporabljali indeksov ampak imena, npr. Kolo BMX-C203 ali Slovenija. Ko bomo v poročilu izbrali določen produkt iz dimenzijske bomo s tem filtrirali tudi fact tabelo, kar je glavna ideja star sheme.

Običajno gremo še korak dlje in skrijemo vsa polja, ki jih ne potrebujemo. V fact tabeli na koncu ni viden noben stolpec, ampak samo mere oz. measure-ji.

Nastavimo sinonime

Imena polj v tabelah lahko kličemo v Visualu Q&A in tako hitro prikažemo podatke, ki nas zanimajo.

Poljem lahko priredimo tudi sinonime: v podatkovnem modelu izberemo polje in v polje Synonyms vnesemo želene sinonime. V Q&A se lahko na ta polja zdaj sklicujemo tudi preko sinonimov.

Kazalo