Sdílet prostřednictvím


Techniky redukce dat pro modelování importu

Tento článek se zaměřuje na modelátory dat Power BI Desktopu, kteří vyvíjejí a publikují sémantické modely Power BI. Konkrétně popisuje různé techniky, které pomáhají omezit data načtená do modelů importu.

Modely importu jsou načteny s komprimovanými a optimalizovanými daty a poté jsou uloženy na disk úložným modulem VertiPaq. Když se zdrojová data načtou do paměti, je možné dosáhnout 10x komprese, takže je rozumné očekávat, že 10 GB zdrojových dat může komprimovat na velikost přibližně 1 GB. Při zachování na disku je možné dosáhnout dalšího snížení o 20 %.

Navzdory efektivitě dosažené modulem úložiště VertiPaq byste se měli snažit minimalizovat data načtená do vašich modelů. To platí zejména pro velké modely nebo modely, které očekáváte, že se v průběhu času stanou velkými. Mezi čtyři přesvědčivé důvody patří:

  • Vaše kapacita nemusí podporovat větší velikosti modelů. Sdílená kapacita může hostovat modely o velikosti až 1 GB, zatímco kapacity Premium můžou hostovat větší modely v závislosti na SKU. Další informace najdete v tématu Velké sémantické modely v Power BI Premium.
  • Menší velikosti modelů snižují kolize prostředků kapacity, zejména paměti. Mnoho menších modelů může být v rámci kapacity souběžně načteno po delší dobu, což vede k nižší míře vyřazování.
  • Menší velikosti modelů dosahují rychlejší aktualizace dat, což vede k nižší latenci, vyšší sémantické propustnosti aktualizace modelu a nižšímu tlaku na zdrojové systémové a kapacitní prostředky.
  • Menší počty řádků tabulky můžou vést k rychlejšímu vyhodnocení výpočtů, což vede k lepšímu celkovému výkonu dotazů.

Důležité

Tento článek se týká Power BI Premium nebo jejích předplatných kapacity (SKU P). Microsoft konsoliduje možnosti nákupu a vyřazuje Power BI Premium SKU založené na kapacitě. Místo toho by měli noví a stávající zákazníci zvážit nákup předplatných kapacity Fabric (SKU F).

Další informace najdete v tématu Důležité aktualizace týkající se licencování Power BI Premium a nejčastějších dotazů k Power BI Premium.

Odebrání nepotřebných sloupců

Sloupce tabulky modelu slouží ke dvěma hlavním účelům:

  • Vytváření sestav za účelem vytváření návrhů sestav, které vhodně filtrují, seskupují a shrnují data z modelu.
  • Struktura modelu podporuje relace modelu, výpočty modelů, role zabezpečení a dokonce i barevné formátování dat.

Pravděpodobně můžete odebrat jakýkoli sloupec, který nebude sloužit žádnému z těchto účelů. Odebrání sloupce z tabulky se někdy označuje jako vertikální filtrování.

Doporučujeme navrhovat modely s přesným počtem sloupců podle vašich známých požadavků na reportování. Vaše požadavky se můžou v průběhu času měnit, ale mějte na paměti, že později je jednodušší přidávat sloupce, než je později odebrat. Odebrání sloupců může přerušit sestavy nebo strukturu modelu.

Odebrání nepotřebných řádků

Tabulky modelu byste měli načítat s co nejmenším počtem řádků. Toho můžete dosáhnout načtením filtrovaných sad řádků do tabulek modelu ze dvou různých důvodů: filtrování podle času nebo podle entity. Odebrání řádků se někdy označuje jako horizontální filtrování.

  • Filtrování podle času zahrnuje omezení množství historie dat načtených do tabulek faktů (a omezení řádků kalendářních dat načtených do tabulek kalendářních dat modelu). Doporučujeme, abyste ve výchozím nastavení nenačítá všechny dostupné historie, pokud se nejedná o známý požadavek na vytváření sestav. Můžete implementovat filtry Power Query založené na čase s parametry a dokonce je nastavit tak, aby používaly relativní časová období (vzhledem k datu aktualizace – například posledních pět let). Mějte také na paměti, že retrospektivní změna časových filtrů neruší sestavy, výsledkem bude pouze méně (nebo více) historie dat dostupné v sestavách.
  • Filtrování podle entity zahrnuje načtení podmnožina zdrojových dat do modelu. Například místo načítání faktů o prodeji pro všechny prodejní oblasti se načítají pouze fakta pro jednu oblast. Tento přístup k návrhu vede k mnoha menším modelům a může také eliminovat potřebu definovat zabezpečení na úrovni řádků (RLS), ale vyžaduje udělení konkrétních sémantických modelů ve službě Power BI a vytváření duplicitních sestav, které se připojují k jednotlivým sémantickým modelům. K zjednodušení správy a publikování můžete použít parametry Power Query a soubory šablon Power BI. Další informace najdete v tématu Vytváření a používání šablon sestav v Power BI Desktopu.

Seskupovat podle a shrnout

Možná nejúčinnější technikou zmenšení velikosti modelu je načtení předem shrnutých dat. Tuto techniku můžete použít ke zvýšení úrovně detailu tabulek faktů. Existuje však odlišný kompromis, což vede ke ztrátě podrobností.

Představte si příklad, kdy zdrojová tabulka faktů prodeje ukládá jeden řádek pro každý řádek objednávky. Významné snížení dat je možné dosáhnout souhrnem všech prodejních metrik, seskupováním podle data, zákazníka a produktu. Ještě důležitějšího snížení dat je možné dosáhnout seskupením podle data na úrovni měsíce. I když by bylo možné zmenšit velikost modelu o 99%, už není možné generovat sestavy na denní úrovni nebo na úrovni jednotlivých řádků objednávek. Rozhodování o shrnutí faktů vždy zahrnuje kompromisy. Kompromis lze zmírnit návrhem modelu, který obsahuje některé tabulky v režimu úložiště DirectQuery, který je popsán dále v tomto článku.

Optimalizace datových typů sloupců

Modul úložiště VertiPaq používá pro každý sloupec samostatné interní datové struktury. Díky návrhu těchto datových struktur dosáhnete nejvyšší optimalizace pro data číselných sloupců, která používají kódování hodnot. Text a jiná nečíselná data ale používají kódování hash. Kódování hash vyžaduje, aby modul úložiště přiřadil číselný identifikátor každé jedinečné hodnotě obsažené ve sloupci. Jedná se o číselný identifikátor, který je pak uložený v datové struktuře, který během ukládání a dotazování vyžaduje vyhledávání hash.

V některých konkrétních případech můžete zdrojová textová data převést na číselné hodnoty. Například číslo prodejní objednávky může být konzistentně doplněno textovou hodnotou jako předponou (například SO123456). V tomto případě může být předpona SO odebrána a hodnota čísla objednávky se převede na celé číslo. U velkých tabulek může tato úprava vést k významnému snížení počtu dat, zejména pokud sloupec obsahuje jedinečné hodnoty nebo hodnoty s vysokou kardinalitou.

V tomto příkladu doporučujeme nastavit výchozí vlastnost souhrnu pro sloupec na Do Not Summarize. Pomáhá vyhnout se nevhodným souhrnům hodnot čísel objednávek.

Předvolba pro vlastní sloupce

Modul úložiště VertiPaq ukládá počítané sloupce modelu (definované v jazyce DAX) stejně jako běžné sloupce zdroje Power Query. Interní datové struktury jsou však uloženy mírně odlišně a obvykle dosahují méně efektivní úrovně komprese. Datové struktury se také sestaví po načtení všech tabulek Power Query, což může vést k prodloužení doby aktualizace dat. Proto je méně efektivní přidávat sloupce tabulky jako počítané sloupce než počítané sloupce Power Query (definované v jazyce M).

Pokud je to možné, upřednostnit vytváření vlastních sloupců v Power Query. Pokud je zdrojem databáze, můžete dosáhnout vyšší efektivity načítání dvěma způsoby: Výpočet lze definovat v příkazu SQL (pomocí nativního dotazovacího jazyka zprostředkovatele) nebo může být materializován jako sloupec ve zdroji dat.

Někdy mohou být počítané sloupce modelu lepší volbou. To platí, když vzorec zahrnuje vyhodnocování metrik nebo vyžaduje konkrétní modelovací funkce podporované jenom ve funkcích jazyka DAX. Informace o jednom z takových příkladů naleznete v tématu Principy funkcí pro hierarchie nadřazený-podřízený v jazyce DAX.

Zakázání načítání dotazů Power Query

Dotazy Power Query, které mají podporovat integraci dat s jinými dotazy, by se do modelu neměly načítat. Abyste se vyhnuli načítání těchto dotazů do modelu, zajistěte, abyste v těchto instancích zakázali načítání dotazů.

Snímek obrazovky Power Query s možností Povolit načtení

Zakázání automatického data a času

Power BI Desktop obsahuje možnost automatického data a času. Když je tato možnost povolená, vytvoří skryté tabulky automatického data a času pro každý sloupec kalendářních dat v modelu. Tato možnost podporuje autory sestav při konfiguraci filtrů, seskupování a drill-down akcí pro kalendářní časová období. Skryté tabulky jsou ve skutečnosti počítané tabulky, které zvětšují velikost modelu.

Další informace najdete v tématu Pokyny k automatickému datu a času v Power BI Desktopu.

Použití režimu úložiště DirectQuery

Režim úložiště DirectQuery je alternativou k režimu importu úložiště. Tabulky modelu DirectQuery neimportují data. Místo toho se skládají pouze z metadat definujících strukturu tabulky. Při dotazování tabulky se nativní dotazy používají k načtení dat z podkladového zdroje dat. Když zkombinujete tabulky režimu úložiště Import a DirectQuery v jednom modelu, označuje se jako složený model.

Efektivní technikou zmenšení velikosti modelu je nastavení režimu úložiště pro větší tabulky faktů na DirectQuery. Uvědomte si, že tento návrhový přístup často dobře spolupracuje s technikou skupina podle a shrnutí, která byla představena dříve. Souhrnná data o prodeji se dají například použít k dosažení vysoce výkonných souhrnných sestav. Stránka detailní analýzy může zobrazit podrobné prodeje pro konkrétní (a úzký) kontext filtru, přičemž zobrazuje všechny prodejní objednávky v daném kontextu. V tomto příkladu by stránka dílčí analýzy mohla obsahovat vizuály založené na tabulce modelu DirectQuery pro získání dat prodejní objednávky.

Existuje však mnoho dopadů na zabezpečení a výkon související s režimem úložiště DirectQuery a složenými modely. Další informace najdete v tématu Použití složených modelů v Power BI Desktopu.

Další informace související s tímto článkem najdete v následujících článcích: