Techniky redukce dat pro modelování importu

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

Modely importu se načtou s daty komprimovanými a optimalizovanými a následně se uloží na disk modulem úložiště VertiPaq. Když se zdrojová data načtou do paměti, je možné zobrazit 10x kompresi, 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 je důležité, abyste se snažili minimalizovat data, která se mají načíst do vašich modelů. Platí to zejména pro velké modely nebo modely, které očekáváte, že se časem zvětší. Mezi čtyři přesvědčivé důvody patří:

  • Větší velikosti modelů nemusí vaše kapacita podporovat. 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 článku o podpoře velkých sémantických modelů v Power BI Premium. (Sémantické modely se dříve označovaly jako datové sady.)
  • Menší velikosti modelů snižují kolize prostředků kapacity, zejména paměti. Umožňuje souběžné načítání více modelů po delší časové období, což vede k nižším rychlostem vyřazení.
  • Menší modely dosahují rychlejší aktualizace dat, což vede k nižší latenci generování sestav, 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ž může přinést lepší celkový výkon dotazů.

V tomto článku je popsáno osm různých technik redukce dat. Mezi tyto techniky patří:

Odebrání nepotřebných sloupců

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

  • Vytváření sestav pro dosažení návrhů sestav, které odpovídají filtrování, seskupování a sumarizaci dat modelu
  • Struktura modelu díky podpoře vztahů modelu, výpočtů modelů, rolí zabezpečení a dokonce i formátování barev dat

Sloupce, které neslouží k těmto účelům, je pravděpodobně možné odebrat. Odebrání sloupců se označuje jako vertikální filtrování.

Doporučujeme navrhovat modely s přesně správným počtem sloupců na základě známých požadavků na vytváření sestav. 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 by měly být načteny s co nejmenším množstvím řádků. Toho lze dosáhnout načtením filtrovaných sad řádků do tabulek modelu ze dvou různých důvodů: filtrování podle entity nebo podle času. Odebrání řádků se označuje jako horizontální filtrování.

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 bude mít za následek mnoho menších modelů a může také eliminovat nutnost definovat zabezpečení na úrovni řádků (ale bude vyžadovat udělení konkrétních sémantických oprávnění modelu v služba Power BI a vytváření "duplicitních" sestav, které se připojují k jednotlivým sémantickým modelům). Ke zjednodušení správy a publikování můžete využít parametry Power Query a soubory šablon Power BI. Další informace najdete v blogovém příspěvku Podrobné informace o parametrech dotazů a šablonách Power BI.

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 nenačetli automaticky všechny dostupné historie, pokud se nejedná o známý požadavek na vytváření sestav. Je užitečné pochopit, že filtry Power Query založené na čase je možné parametrizovat a dokonce 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ěny časových filtrů neruší sestavy; Výsledkem bude pouze menší (nebo více) historie dat dostupná v sestavách.

Seskupovat podle a shrnout

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

Například zdrojová tabulka faktů prodeje ukládá jeden řádek na řádek objednávky. Významného snížení dat lze dosáhnout souhrnem všech prodejních metrik, seskupováním podle data, zákazníka a produktu. Zvažte pak, že by bylo možné dosáhnout ještě významného snížení počtu dat seskupením podle data na úrovni měsíce. Bylo by možné dosáhnout 99% snížení velikosti modelu, ale generování sestav na úrovni dne nebo na úrovni jednotlivých objednávek už není možné. Rozhodování o shrnutí dat faktů vždy zahrnuje kompromisy. Kompromis lze zmírnit návrhem smíšeného modelu a tato možnost je popsaná v technice Přepnout do smíšeného režimu .

Optimalizace datových typů sloupců

Modul úložiště VertiPaq používá pro každý sloupec samostatné datové struktury. Tyto datové struktury jsou navrženy tak, aby dosáhly 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. Vyžaduje, aby modul úložiště přiřadil číselný identifikátor každé jedinečné textové hodnotě obsažené ve sloupci. Jedná se o číselný identifikátor, který se pak uloží do datové struktury a 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ě předponou textové hodnoty (například "SO123456"). Předponu je možné odebrat a hodnota čísla objednávky se převede na celé číslo. U velkých tabulek může dojít k významnému snížení počtu dat, zejména pokud sloupec obsahuje jedinečné nebo vysoké hodnoty kardinality.

V tomto příkladu doporučujeme nastavit vlastnost Výchozí souhrn sloupce na Hodnotu Neshrnout. Pomáhá minimalizovat nevhodné shrnutí 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. Datové struktury jsou však uloženy mírně odlišně a obvykle dosahuje méně efektivní komprese. Také se sestavují 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).

Předvolba by měla být 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 ho lze materializovat jako sloupec ve zdroji dat.

V některých případech ale můžou být lepší volbou počítané sloupce modelu. Může se jednat o případ, kdy vzorec zahrnuje vyhodnocení měr nebo vyžaduje konkrétní funkce modelování podporované pouze ve funkcích jazyka DAX. Informace o jednom z takových příkladů najdete v článku DAX o funkcích Principy hierarchií nadřazených a podřízených.

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. Pokud se chcete vyhnout načítání dotazu do modelu, ujistěte se, že v těchto instancích zakážete načítání dotazů.

Screenshot of Power Query showing

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ří skrytou tabulku automatického data a času pro sloupce kalendářních dat, která podporuje autory sestav při konfiguraci filtrů, seskupování a akcí přechodu k podrobnostem pro kalendářní časová období. Skryté tabulky jsou ve skutečnosti počítané tabulky, které zvětší velikost modelu. Pokyny k použití této možnosti najdete v článku o automatickém datu a čase v Power BI Desktopu .

Přepnout do smíšeného režimu

V Power BI Desktopu vytvoří návrh smíšeného režimu složený model. V podstatě umožňuje určit režim úložiště pro každou tabulku. Každá tabulka proto může mít vlastnost Režim úložiště nastavenou jako Import nebo DirectQuery (Duální je další možností).

Efektivní technikou redukce velikosti modelu je nastavit vlastnost Režim úložiště u velkých tabulek faktů na DirectQuery. Vezměte v úvahu, že tento přístup k návrhu by mohl dobře fungovat ve spojení se skupinou podle a shrnout techniku zavedenou dříve. Souhrnná data o prodeji se dají například použít k dosažení vysoce výkonného generování sestav "souhrnu". Stránka podrobné analýzy může zobrazit podrobné prodeje pro konkrétní (a úzký) kontext filtru a zobrazit všechny prodejní objednávky v kontextu. V tomto příkladu by stránka podrobné analýzy obsahovala vizuály založené na tabulce DirectQuery pro načtení dat prodejní objednávky.

Existuje však mnoho dopadů na zabezpečení a výkon související se složenými modely. Další informace najdete v článku Použití složených modelů v Power BI Desktopu .

Další informace o návrhu modelu importu Power BI najdete v následujících článcích: