Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Dotaz na obsah je způsob, jak extrahovat informace o interní statistiky a struktuře modelu dolování. Dotaz na obsah někdy může poskytnout podrobnosti, které nejsou v prohlížeči snadno dostupné. Výsledky dotazu na obsah můžete také použít k programovému extrahování informací pro jiné použití.
Tato část obsahuje obecné informace o typech informací, které můžete načíst pomocí dotazu na obsah, a obecné syntaxe DMX pro dotazy na obsah.
Základní dotazy na obsah
Dotazy na obsah můžete vytvářet pomocí Tvůrce dotazů predikce, použít šablony dotazů obsahu DMX, které jsou k dispozici v aplikaci SQL Server Management Studio, nebo psát dotazy přímo v DMX. Na rozdíl od prediktivních dotazů nemusíte připojovat externí data, takže dotazy na obsah se dají snadno zapisovat.
Tato část obsahuje přehled typů dotazů na obsah, které můžete vytvořit.
Dotazy na strukturu dolování nebo data případu umožňují zobrazit podrobná data použitá pro trénování.
Dotazy na model můžou vracet vzory, seznamy atributů, vzorce atd.
Dotazy na data struktury a případu
DMX podporuje dotazy na data uložená v mezipaměti, která se používají k vytváření dolování struktur a modelů. Ve výchozím nastavení se tato mezipaměť vytvoří při definování struktury dolování a naplní se při zpracování struktury nebo modelu.
Výstraha
Pokud potřebujete oddělit data do trénovacích a testovacích sad, nelze tuto mezipaměť vymazat ani odstranit. Pokud je mezipaměť vymazána, nemůžete se dotazovat na data případu.
Následující příklady ukazují běžné vzory pro vytváření dotazů na data případu nebo dotazy na data v dolování struktury:
Získání všech případů modelu
SELECT FROM <model>.CASES
Tento příkaz použijte k načtení zadaných sloupců z dat případu použitých k sestavení modelu. Abyste mohli tento dotaz spustit, musíte mít pro model oprávnění podrobné analýzy.
Zobrazit všechna data, která jsou součástí struktury
SELECT FROM <structure>.CASES
Tento příkaz použijte k zobrazení všech dat, která jsou součástí struktury, včetně sloupců, které nejsou zahrnuty do konkrétního modelu dolování. Abyste mohli načítat data ze struktury dolování, musíte mít oprávnění podrobné analýzy k modelu i ke struktuře.
Získání rozsahu hodnot
SELECT DISTINCT RangeMin(<column>), RangeMax(<column>) FROM <model>
Tento příkaz použijte k vyhledání minimální hodnoty, maximální hodnoty a průměru souvislého sloupce nebo kbelíků sloupce DISCRETIZED.
Získání jedinečných hodnot
SELECT DISTINCT <column>FROM <model>
Tento příkaz použijte k načtení všech hodnot sloupce DISCRETE. Nepoužívejte tento příkaz pro sloupce DISCRETIZED; místo toho použijte funkce RangeMin a RangeMax .
Vyhledání případů použitých k trénování modelu nebo struktury
SELECT FROM <mining structure.CASES WHERE IsTrainingCase()
Pomocí tohoto příkazu získáte úplnou sadu dat, která byla použita při trénování modelu.
Vyhledání případů používaných k testování modelu nebo struktury
SELECT FROM <mining structure.CASES WHERE IsTestingCase()
Pomocí tohoto příkazu získáte data, která byla vyhrazena pro testování modelů dolování souvisejících s konkrétní strukturou.
Podrobná analýza z konkrétního modelu na podkladová data případu
SELECT FROM <model>.CASESWHERE IsTrainingCase() AND IsInNode(<node>)
Tento příkaz použijte k načtení podrobných dat případu z natrénovaného modelu. Musíte zadat konkrétní uzel: například musíte znát ID uzlu clusteru, konkrétní větev rozhodovacího stromu atd. Kromě toho musíte mít pro model oprávnění podrobné analýzy ke spuštění tohoto dotazu.
Dotazy na vzory modelu, statistiky a atributy
Obsah modelu dolování dat je užitečný pro mnoho účelů. Pomocí dotazu na obsah modelu můžete:
Extrahujte vzorce nebo pravděpodobnosti pro vytváření vlastních výpočtů.
Pro model přidružení načtěte pravidla, která se používají k vygenerování předpovědi.
Načtěte popisy konkrétních pravidel, abyste je mohli použít ve vlastní aplikaci.
Zobrazení klouzavých průměrů zjištěných modelem časových řad
Získejte regresní vzorec pro určitý segment spojnice trendu.
Načíst užitečné informace o zákaznících identifikovaných jako součást konkrétního clusteru
Následující příklady ukazují některé běžné vzory pro vytváření dotazů na obsah modelu:
Získání vzorů z modelu
SELECT FROM <model>.CONTENT
Tento příkaz použijte k načtení podrobných informací o konkrétních uzlech v modelu. V závislosti na typu algoritmu může uzel obsahovat pravidla a vzorce, statistiky podpory a odchylky atd.
Načtení atributů použitých v natrénovaném modelu
CALL System.GetModelAttributes(<model>)
Pomocí této uložené procedury můžete načíst seznam atributů, které model používal. Tyto informace jsou užitečné pro určení atributů, které byly eliminovány jako výsledek výběru funkce, například.
Načtení obsahu uloženého v dimenzi dolování dat
SELECT FROM <model>.DIMENSIONCONTENT
Tento příkaz použijte k načtení dat z dimenze dolování dat.
Tento typ dotazu se v zásadě používá pro interní použití. Tyto funkce však nepodporují všechny algoritmy. Podpora je označena příznakem v sadě řádků schématu MINING_SERVICES.
Pokud vyvíjíte vlastní algoritmus plug-in, můžete tento příkaz použít k ověření obsahu modelu pro testování.
Získání reprezentace PMML modelu
SELECT * FROM <model>.PMML
Získá XML dokument, který představuje model ve formátu PMML. Nepodporují se všechny typy modelů.
Examples
I když je obsah modelu standardní napříč algoritmy, některé části obsahu se výrazně liší v závislosti na algoritmu, který jste použili k sestavení modelu. Proto při vytváření dotazu na obsah musíte pochopit, jaké informace v modelu jsou pro váš konkrétní model nejužitečnější.
V této části je uvedeno několik příkladů, které ilustrují, jak volba algoritmu ovlivňuje druh informací uložených v modelu. Další informace o obsahu modelu dolování a obsahu, který je specifický pro každý typ modelu, naleznete v tématu Obsah modelu dolování (Analysis Services – Dolování dat).
Příklad 1: Dotaz na obsah modelu přidružení
Příkaz , SELECT FROM <model>.CONTENTvrátí různé druhy informací v závislosti na typu modelu, který dotazujete. Pro model přidružení je klíčovou informací typ uzlu. Uzly jsou jako kontejnery pro informace v obsahu modelu. V modelu přidružení mají uzly, které představují pravidla, NODE_TYPE hodnotu 8, zatímco uzly představující sady položek mají NODE_TYPE hodnotu 7.
Následující dotaz proto vrátí prvních 10 sad položek seřazených podle podpory (výchozí řazení).
SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT
FROM <model>.CONTENT WHERE NODE_TYPE = 7
Následující dotaz vychází z těchto informací. Dotaz vrátí tři sloupce: ID uzlu, úplné pravidlo a produkt na pravé straně sady položek, tj. produkt, který je předpovězen jako součást sady položek.
SELECT FLATTENED NODE_UNIQUE_NAME, NODE_DESCRIPTION,
(SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
)
AS RightSideProduct
FROM [<Association model name>].CONTENT
WHERE NODE_TYPE = 8
ORDER BY NODE_SUPPORT DESC
Klíčové slovo FLATTENED označuje, že vnořená sada řádků by měla být převedena na zploštěnou tabulku. Atribut, který představuje produkt na pravé straně pravidla, je obsažen v NODE_DISTRIBUTION tabulce; proto načteme pouze řádek, který obsahuje název atributu, přidáním požadavku, aby délka byla větší než 2.
Jednoduchá řetězcová funkce slouží k odebrání názvu modelu ze třetího sloupce. (Název modelu je obvykle předponou hodnot vnořených sloupců.)
Klauzule WHERE určuje, že hodnota NODE_TYPE by měla být 8, aby se načetla pouze pravidla.
Další příklady najdete v tématu Příklady dotazů modelu přidružení.
Příklad 2: Dotaz na obsah na model rozhodovacích stromů
Model rozhodovacího stromu lze použít pro predikci i pro klasifikaci. Tento příklad předpokládá, že k predikci výsledku používáte model, ale chcete také zjistit, které faktory nebo pravidla je možné použít ke klasifikaci výsledku.
V modelu rozhodovacího stromu se uzly používají k reprezentaci stromů i uzlů typu list. Titulek pro každý uzel obsahuje popis cesty k výsledku. Proto pokud chcete trasovat cestu pro jakýkoli konkrétní výsledek, musíte identifikovat uzel, který ho obsahuje, a získat podrobnosti pro daný uzel.
Do prediktivního dotazu přidáte funkci prediction PredictNodeId (DMX) a získáte ID souvisejícího uzlu, jak je znázorněno v následujícím příkladu:
SELECT Predict([Bike Buyer]), PredictNodeID([Bike Buyer])
FROM [<decision tree model name>]
PREDICTION JOIN
<input rowset>
Jakmile budete mít ID uzlu, který obsahuje výsledek, můžete načíst pravidlo nebo cestu vysvětlující predikci vytvořením dotazu na obsah, který obsahuje NODE_CAPTION, následujícím způsobem:
SELECT NODE_CAPTION
FROM [<decision tree model name>]
WHERE NODE_UNIQUE_NAME= '<node id>'
Další příklady najdete v tématu Příklady dotazů modelu rozhodovacích stromů.
Práce s výsledky dotazu
Jak ukazují příklady, dotazy na obsah většinou vrací tabulkové řádky, ale můžou také obsahovat informace z vnořených sloupců. Vrácenou sadu řádků můžete zploštět, ale práce s výsledky bude složitější. Obsah NODE_DISTRIBUTION uzlu je zejména vnořený, ale obsahuje mnoho zajímavých informací o modelu.
Další informace o tom, jak pracovat s hierarchickými sadami řádků, naleznete ve specifikaci OLEDB na WEBU MSDN.