Filtry pro modely dolování (Analysis Services – Dolování dat)

Platí pro: SQL Server 2019 a starší služby Analysis Services Azure Analysis Services Fabric/ Power BI Premium

Důležité

Dolování dat bylo v SQL Serveru 2017 Analysis Services zastaralé a nyní ukončeno ve službě SQL Server 2022 Analysis Services. Dokumentace se neaktualizuje pro zastaralé a ukončené funkce. Další informace najdete v tématu Zpětná kompatibilita služby Analysis Services.

Filtrování modelů založené na datech vám pomůže vytvořit modely dolování, které používají podmnožinu dat ve struktuře dolování. Filtrování vám dává flexibilitu při navrhování dolování struktur a zdrojů dat, protože můžete vytvořit jednu dolování strukturu založenou na komplexním zobrazení zdroje dat. Pak můžete vytvořit filtry, které budou pro trénování a testování různých modelů používat jenom část těchto dat, a nemusíte vytvářet jinou strukturu a související model pro každou podmnožinu dat.

Například definujete zobrazení zdroje dat v tabulce Zákazníci a související tabulky. Následně definujete jednu dolovací strukturu, která zahrnuje všechna pole, která potřebujete. Nakonec vytvoříte model filtrovaný podle konkrétního atributu zákazníka, například oblasti. Pak můžete snadno vytvořit kopii tohoto modelu a změnit jenom podmínku filtru tak, aby vygenerovala nový model na základě jiné oblasti.

Mezi scénáře reálného života, ve kterých můžete tuto funkci využít, patří:

  • Vytváření samostatných modelů pro diskrétní hodnoty, jako je pohlaví, oblasti atd. Například obchod s oblečením může používat demografické údaje zákazníků k vytváření samostatných modelů podle pohlaví, i když prodejní data pocházejí z jednoho zdroje dat pro všechny zákazníky.

  • Experimentování s modely vytvořením a testováním více seskupení stejných dat, jako je věk 20–30 vs. věk 20–40 vs. věk 20–25.

  • Zadání složitých filtrů pro vnořený obsah tabulky, například vyžadování zahrnutí případu do modelu pouze v případě, že zákazník zakoupil aspoň dvě konkrétní položky.

Tato část vysvětluje, jak vytvářet, používat a spravovat filtry na modelech dolování.

Vytváření filtrů modelů

Filtry můžete vytvářet a používat následujícími způsoby:

  • Použití karty Modely dolování v Návrháři dolování dat k sestavení podmínek pomocí dialogových oken editoru filtrů.

  • Zadáním výrazu filtru přímo do vlastnosti Filter modelu dolování.

  • Nastavení podmínek filtru v modelu prostřednictvím kódu programu pomocí AMO

Vytváření filtrů modelů pomocí Návrháře dolování dat

Model v Návrháři dolování dat můžete filtrovat změnou vlastnosti Filter modelu dolování. Buď můžete zadat výraz filtru přímo do podokna Vlastnosti , nebo můžete otevřít dialogové okno filtru pro sestavení podmínek.

Existují dvě dialogová okna filtru. První umožňuje vytvořit podmínky, které se použijí v tabulce případů. Pokud zdroj dat obsahuje více tabulek, nejprve vyberete tabulku a pak vyberete sloupec a určíte operátory a podmínky, které platí pro daný sloupec. Pomocí operátorů AND/OR můžete propojit více podmínek. Operátory, které jsou k dispozici pro definování hodnot, závisí na tom, zda sloupec obsahuje diskrétní nebo souvislé hodnoty. Pro souvislé hodnoty můžete například použít operátory větší než a menší než. Pro diskrétní hodnoty však můžete použít pouze = (rovno), != (nerovná se) a je operátory null .

Poznámka:

Klíčové slovo LIKE není podporováno. Pokud chcete zahrnout více samostatných atributů, musíte vytvořit samostatné podmínky a propojit je pomocí operátoru OR .

Pokud jsou podmínky složité, můžete použít druhé dialogové okno filtru pro práci s jednou tabulkou najednou. Když zavřete druhé dialogové okno filtru, výraz se vyhodnotí a potom se zkombinuje s podmínkami filtru, které byly nastaveny na jiných sloupcích v tabulce případu.

Vytváření filtrů u vnořených tabulek

Pokud zobrazení zdroje dat obsahuje vnořené tabulky, můžete pomocí druhého dialogového okna filtru vytvořit podmínky na řádcích v vnořených tabulkách.

Pokud například tabulka případů souvisí se zákazníky a vnořená tabulka zobrazuje produkty, které zákazník zakoupil, můžete vytvořit filtr pro zákazníky, kteří si zakoupili konkrétní položky, pomocí následující syntaxe ve vnořeném filtru tabulky: [ProductName]='Water Bottle' OR ProductName='Water Bottle Cage'

Můžete také filtrovat existenci konkrétní hodnoty v vnořené tabulce pomocí klíčových slov EXISTS nebo NOT EXISTS a poddotazu. To vám umožní vytvořit podmínky, jako je EXISTS (SELECT * FROM Products WHERE ProductName='Water Bottle'). Vrátí EXISTS SELECT(<subquery>)true, pokud vnořená tabulka obsahuje alespoň jeden řádek s hodnotou Water Bottle.

Podmínky v případové tabulce můžete kombinovat s podmínkami ve vnořené tabulce. Následující syntaxe například obsahuje podmínku v tabulce případu (Age > 30 ), poddotaz v vnořené tabulce (EXISTS (SELECT * FROM Products)) a více podmínek v vnořené tabulce (WHERE ProductName='Milk' AND Quantity>2).

(Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName='Milk'  AND Quantity>2) )  

Po vytvoření filtru se text filtru vyhodnotí službou SQL Server Analysis Services, přeloží do výrazu DMX a uloží se s modelem.

Pokyny k použití dialogových oken filtru v nástrojích SQL Server Data Tools naleznete v tématu Použití filtru na model dolování.

Správa filtrů modelů dolování

Filtrování modelů založené na datech výrazně zjednodušuje správu dolování struktur a modelů dolování, protože můžete snadno vytvořit více modelů založených na stejné struktuře. Můžete také rychle vytvořit kopie stávajících modelů dolování a pak změnit pouze podmínku filtru. Filtry ale můžou vést k nejasnostem.

Tady jsou některé časté otázky týkající se správy a interpretace filtrů v modelech dolování:

Jak zjistím, jestli se používá filtr?

Existuje několik způsobů, jak určit, jestli se filtr použije na model:

  • V návrháři klikněte na kartu Modely dolování, otevřete Vlastnosti a zobrazte vlastnost Filtr na modelu dolování.

  • DMV, DMSCHEMA_MINING_MODELS, zobrazí sloupec, který obsahuje text filtru. Pro zobrazení názvů modelů a jejich filtrů můžete použít následující dotaz na DMV (zobrazení dynamické správy):

    SELECT MODEL_NAME, [FILTER]   
    FROM $SYSTEM.DMSCHEMA_MINING_MODELS  
    
    
  • Můžete získat hodnotu vlastnost Filtru objektu MiningModel v AMO nebo zkontrolovat element Filtru v XMLA.

Můžete také vytvořit konvenci vytváření názvů pro modely, které budou odrážet obsah filtru. To může usnadnit rozlišování souvisejících modelů.

Jak můžu uložit filtr?

Výraz filtru se uloží jako skript, který je uložený s přidruženým modelem dolování nebo vnořenou tabulkou. Pokud odstraníte text filtru, můžete ho obnovit pouze ručním opětovným vytvořením výrazu filtru. Proto pokud vytváříte složité výrazy filtru, měli byste vytvořit záložní kopii textu filtru.

Proč se ve filtru nezobrazují žádné efekty?

Kdykoli změníte nebo přidáte výraz filtru, musíte před zobrazením efektů filtru znovu zpracovat strukturu a model.

Proč se ve výsledcích prediktivního dotazu zobrazují filtrované atributy?

Když u modelu použijete filtr, ovlivní to jenom výběr případů použitých pro trénování modelu. Filtr nemá vliv na atributy známé modelem nebo změní nebo potlačí data, která jsou přítomna ve zdroji dat. V důsledku toho můžou dotazy na model vracet předpovědi pro jiné typy případů a rozevírací seznamy hodnot používaných modelem můžou zobrazovat hodnoty atributů vyloučené filtrem.

Předpokládejme například, že model [Kupující kol] vytrénujete pouze s případy týkajícími se žen ve věku 20 až 30 let. Stále můžete spustit predikční dotaz, který předpovídá pravděpodobnost muže, který si koupí kolo, nebo předpovědět výsledek pro ženu ve věku 30–40. Je to proto, že atributy a hodnoty přítomné ve zdroji dat definují teoreticky možné výskyty, zatímco případy definují výskyty používané pro trénování. Tyto dotazy by ale vrátily velmi malé pravděpodobnosti, protože trénovací data neobsahují žádné případy s cílovými hodnotami.

Pokud potřebujete hodnoty atributů v modelu zcela skrýt nebo anonymizovat, existují různé možnosti:

  • Vyfiltrujte příchozí data jako součást definice zobrazení zdroje dat nebo v relačním zdroji dat.

  • Maskujte nebo kódujte hodnotu atributu.

  • Zahrnout vyloučené hodnoty do kategorie jako součást definice struktury dolování.

Další informace o syntaxi filtru a příklady výrazů filtru naleznete v tématu Syntaxe filtru modelů a příklady (Analysis Services – Dolování dat).

Informace o použití filtrů modelu při testování modelu dolování naleznete v tématu Volba typu grafu přesnosti a nastavení možností grafu.

Viz také

Syntaxe a příklady filtru modelů (Analysis Services – Dolování dat)
Testování a ověřování (dolování dat)