Vnořené tabulky (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.

V SQL Server SQL Server Analysis Services musí být data předána algoritmům dolování dat jako řada záznamů, které jsou obsaženy v tabulce případů. Ne všechny případy ale můžou být popsány jedním řádkem dat. Například případ může být odvozen ze dvou tabulek: jedna tabulka, která obsahuje informace o zákazníci, a jinou tabulku, která obsahuje nákupy zákazníků. Jeden zákazník v tabulce informací o zákazníci může mít v tabulce nákupů zákazníků více položek, což znesnadňuje popis dat pomocí jednoho řádku. SQL Server Analysis Services poskytuje jedinečnou metodu pro zpracování těchto případů pomocí vnořených tabulek. Koncept vnořené tabulky je znázorněn na následujícím obrázku.

Dvě tabulky kombinované pomocí vnořené tabulky

V tomto diagramu první tabulka, která je nadřazenou tabulkou, obsahuje informace o zákaznících a přidruží jedinečný identifikátor každého zákazníka. Druhá tabulka, tedy podřízená, obsahuje záznamy nákupů každého zákazníka. Nákupy v podřízené tabulce souvisejí s nadřazenou tabulkou pomocí jedinečného identifikátoru sloupce CustomerKey . Třetí tabulka v diagramu zobrazuje dvě sloučené tabulky.

Vnořená tabulka je v tabulce případů reprezentována jako speciální sloupec s datovým typem TABLE. Pro každý konkrétní řádek tento typ sloupce obsahuje vybrané řádky z podřízené tabulky, které se vztahují k rodičovské tabulce.

Data v vnořené tabulce se dají použít pro predikci nebo vstup, nebo pro obojí. Můžete mít například dva vnořené sloupce tabulky v modelu: jeden vnořený sloupec může obsahovat seznam produktů, které zákazník zakoupil, zatímco druhý vnořený sloupec obsahuje informace o zálibách a zájmech zákazníka, které se můžou získat z průzkumu. V tomto scénáři byste mohli jako vstup pro analýzu nákupního chování použít koníčky a zájmy zákazníka a předpovědět pravděpodobné nákupy.

Spojování tabulek případů a vnořených tabulek

Aby bylo možné vytvořit vnořenou tabulku, musí dvě zdrojové tabulky obsahovat definovanou relaci, aby položky v jedné tabulce mohly souviset s druhou tabulkou. V nástrojích SQL Server Data Tools můžete tuto relaci definovat v zobrazení zdroje dat.

Poznámka:

Pole CustomerKey je relační klíč, který slouží k propojení tabulky případu a vnořené tabulky v definici zobrazení zdroje dat a k vytvoření relace sloupců v rámci struktury dolování. Tento relační klíč byste ale obvykle neměli používat v modelech dolování založených na této struktuře. Obvykle je nejlepší vynechat relační klíčový sloupec z modelu dolování, pokud slouží pouze ke spojení tabulek a neposkytuje informace, které jsou zajímavé pro analýzu.

Vnořené tabulky můžete vytvářet programově buď pomocí rozšíření dolování dat (DMX) nebo objektů AMO (Analysis Management Objects), nebo můžete použít Průvodce dolování dat a Návrhář dolování dat v SQL Server Data Tools.

Použití vnořených sloupců tabulky v modelu dolování

V tabulce případů je klíč často ID zákazníka, název produktu nebo datum v řadě: data, která jednoznačně identifikují řádek v tabulce. . V vnořených tabulkách ale klíč obvykle není relační klíč (nebo cizí klíč), ale sloupec, který představuje atribut, který modelujete.

Pokud například tabulka případů obsahuje objednávky a vnořená tabulka obsahuje položky v pořadí, měli byste zájem modelovat relaci mezi položkami uloženými v vnořené tabulce napříč několika objednávkami, které jsou uložené v tabulce případu. I když je vnořená tabulka Items připojená k tabulce Orders pomocí relačního klíče OrderID, neměli byste jako vnořený klíč tabulky použít OrderID. Místo toho byste jako klíč vnořené tabulky vybrali sloupec Položky , protože tento sloupec obsahuje data, která chcete modelovat. Ve většině případů můžete OrderID v těžebním modelu bezpečně ignorovat, protože relace mezi tabulkou případů a vnořenou tabulkou již byla vytvořena definicí zobrazení zdroje dat.

Když zvolíte sloupec, který se má použít jako klíč vnořené tabulky, musíte zajistit, aby hodnoty v tomto sloupci byly pro každý případ jedinečné. Pokud například tabulka případů představuje zákazníky a vnořená tabulka představuje položky zakoupené zákazníkem, musíte zajistit, aby nebyla položka uvedena více než jednou za zákazníka. Pokud zákazník zakoupil stejnou položku vícekrát, můžete vytvořit jiné zobrazení, které obsahuje sloupec, který agreguje počet nákupů pro každý jedinečný produkt.

Způsob, jakým se rozhodnete zpracovat duplicitní hodnoty v vnořené tabulce, závisí na modelu dolování, který vytváříte, a obchodním problému, který řešíte. V některých scénářích vás nemusí zajímat, kolikrát zákazník zakoupil konkrétní produkt, ale chcete zkontrolovat existenci alespoň jednoho nákupu. V jiných scénářích může být množství a posloupnost nákupů velmi důležité.

Pokud je pořadí položek důležité, možná budete potřebovat další sloupec, který označuje sekvenci. Pokud k vytvoření modelu použijete algoritmus sekvenčního clusteringu, musíte zvolit další sloupec sekvence klíčů, který bude představovat pořadí položek. Sloupec posloupnosti klíčů je speciální druh vnořeného klíče, který se používá pouze v sekvenčních clusteringových modelech a vyžaduje jedinečný číselný datový typ. Například celá čísla a kalendářní data lze použít jako sloupec pořadí klíčů, ale všechny hodnoty sekvence musí být jedinečné. Kromě sloupce pořadí klíčů má model sekvenčního clusteringu také vnořený klíč tabulky, který představuje atribut, který se modeluje, například produkty zakoupené.

Použití neklíčových vnořených sloupců z vnořené tabulky

Po definování spojení mezi tabulkou případu a vnořenou tabulkou jste vybrali sloupec, který obsahuje zajímavé a jedinečné atributy, které se mají použít jako klíč vnořené tabulky, můžete zahrnout další sloupce z vnořené tabulky, které se mají použít jako vstup do modelu. Všechny sloupce z vnořené tabulky lze použít buď pro vstup, pro predikci a vstup, nebo pouze pro predikci.

Pokud například vnořená tabulka obsahuje sloupce Produkt, MnožstvíProduktů a CenaProduktů, můžete jako klíč vnořené tabulky zvolit Produkt, ale přidat MnožstvíProduktů do struktury dolování, která se použije jako vstup.

Filtrování vnořených dat tabulky

V SQL Serveru 2017 můžete vytvořit filtry dat, která se používají k trénování nebo testování modelu dolování dat. Filtr lze použít k ovlivnění složení modelu nebo k otestování modelu na podmnožině případů. Filtry lze použít také u vnořených tabulek. Existují však omezení syntaxe, kterou je možné použít s vnořenými tabulkami.

Při použití filtru na vnořenou tabulku často testujete existenci nebo neexistující atribut. Můžete například použít filtr, který omezuje případy použité v modelu pouze na případy, které mají zadanou hodnotu v vnořené tabulce. Nebo můžete případy použité v modelu omezit na zákazníky, kteří si konkrétní položku nekoupili.

Při vytváření filtrů v vnořené tabulce můžete také použít operátory, jako je větší nebo menší než. Můžete například omezit případy použité v modelu na zákazníky, kteří zakoupili alespoň n jednotek cílového produktu. Možnost filtrování atributů vnořených tabulek poskytuje skvělou flexibilitu pro přizpůsobení modelů.

Další informace o vytváření a používání filtrů modelů naleznete v tématu Filtry pro modely dolování (Analysis Services - Data Mining).

Viz také

Algoritmy dolování dat (Analysis Services – Dolování dat)
Struktury dolování dat (Analysis Services - Dolování dat)