načítání informací z tabulkové databáze je snadné – stačí se zeptat na některé základní funkce DAX! V tomto článku se naučíme, jak dotazovat tabulkový model s některými výrazy MDX, zkoumat výsledky dotazování DAX a analyzovat data z tabulek.
požadavky
předpoklady pro dotazování s MDX jsou SQL Server Management Studio 2014 nebo vyšší s nainstalovanou tabulkovou instancí SSAS a nasazenou databází tabulkových modelů SSAS.
Příprava prostředí
dotazování na databázi SSAS tabulkového modelu pomocí MDX probíhá v SQL Server Management Studio, v okně dotazu MDX.
přehled vícerozměrných výrazů (MDX)
MDX je výrazový jazyk, který může dotazovat a analyzovat vícerozměrná data v kostkách OLAP (například databáze vícerozměrných modelů SSAS). Ačkoli je primárně určen pro dotazování databáze vícerozměrných modelů, může dotazovat I databázi tabulkových modelů. Na druhé straně funkce DAX nemohou dotazovat vícerozměrné databáze modelů, protože výrazy dotazů DAX jsou specifické pro databáze tabulkových modelů.
strukturálně MDX obsahuje XMLA zadanou syntaxi. Vzhledem k tomu, že je podobný T-SQL, jsou přítomny některé příkazy DDL, které mohou spravovat a organizovat vícerozměrné datové konstrukce. To platí pouze pro databáze vícerozměrných modelů SSAS.
pokud jde o složitost, hlavní typy výrazů MDX jsou: konstantní (číselné, řetězcové atd.), skalární a objektově orientované. Tyto typy se kombinují do složitých výrazů odpovídajících příkazům a funkcím MDX.
když mluvíme o dotazování na databázi tabulkových modelů SSAS, výrazy v tomto článku jsou kombinovány skalární / konstantní Typ, jako jednoduché výrazy krychle. Tyto výrazy pouze načítají data z tabulkové krychle, zobrazují výsledky ve sloupcích,objednávají data a připravují je pro další analýzu.
dotazování SSAS databáze tabulkových modelů s MDX
na začátku většiny dotazů MDX je příkaz SELECT, následovaný příkazem FROM. Je velmi podobný T-SQL (na rozdíl od příkazu Evaluate v DAX):
1
2
3
|
vyberte z
|
tento dotaz je nejjednodušší a vrací hodnotu 1 („true“). To znamená, že je přítomna tabulková databáze AW.
výběrem tabulky Název produktu z tabulky produktu vyberte příkaz v T-SQL vypadá takto:
1
2
3
|
vyberte dbo.Název produktu z produktu
|
odpovídající prohlášení napsané v MDX by bylo logicky:
1
2
3
4
5
|
vyberte
{..}
od
|
Všimněte si závorek {}, které jsou operátory jako závorky v DAX. Uzavírají příkazy a umožňují přidat složitost při psaní dotazů. MDX dotazy jsou malá a velká písmena jako Dax dotazy.
tento dotaz načte sloupec Názvu produktu a tabulku produktu z tabulkové krychle AW, ale místo zobrazení jediného sloupce vyvolá chybu spuštění:
hlavním důvodem je typ databázového modelu a syntaxe: Multidimenzionální a tabulkové modelové databáze mají rozměry, jako zásadní koncept, ale MDX ve své syntaxi rozpoznává sloupce, řádky a další prvky (specifické pro vícerozměrné databáze)jako osy v dotazu-představte si je jako osy x, y, z na 3D modelu krychle.
při dotazování na databázi tabulkových modelů SSAS musí MDX rozpoznat alespoň dvě osy v nich: sloupce a řádky, aby správně zobrazovaly data:
1
2
3
4
5
6
|
vyberte
{..} na sloupcích,
{..} na řádcích
od
|
nyní nastavíme osy v dotazu a jeho výsledek ukazuje:
jak je vidět, všechny hodnoty sloupce Název produktu se zobrazují na sloupcích ve výsledku a řádky zobrazují odpovídající roky (ve sloupci fiskální rok) a počet položek(v tomto případě části jízdních kol). Proto místo tří os v dotazu MDX při dotazování na databázi tabulkových modelů SSAS stačí k načtení dat pouze dvě osy.
tento příklad dotazuje stejnou tabulku v obou osách:
1
2
3
4
5
6
|
vyberte
{..} na sloupcích,
{..} na řádcích
od
|
výsledek dotazu ukazuje:
hodnota “ 1 „v tomto případě znamená“ true “ a hodnota „(null)“ znamená, že ve sloupci standardní náklady nejsou žádná související data.
-
zobrazení konkrétní hodnoty (položky) ze zadaného sloupce a neprázdné funkce
pomocí MDX je možné vidět jednu hodnotu ze sloupce v databázi tabulkových modelů:
12345vyberte{{..}.Položka (53)} na 0odv tomto příkladu výsledek ukazuje 53. položku (náhodně vybranou) ze sloupce Název modelu. Všimněte si definované osy“ na 0 „– namísto definování „sloupců“ (uvidíme v dalších příkladech) nebo „řádků“ je tato jedna hodnota umístěna na počáteční začátek tabulkového zobrazení výsledku dotazu.
se zahrnutím neprázdné funkce se zobrazí jediná vypočtená hodnota z konkrétního opatření (celkový prodej internetu) :
123456vyberteneprázdné{.} ve sloupcíchod -
funkce n-tice
n-tice je zadána sada dat, kombinace dvou nebo více členů dimenze (v tomto případě dvě hodnoty ze sloupce rok).
12345vyberte {.. : ..} na řádcích{.} ve sloupcíchodVšimněte si zadaných hodnot ze sloupce rok, který činí rozsah let, a odpovídající hodnoty z celkové marže internetu ve výsledku dotazu.
-
výraz dětí a členů
tento výraz zobrazuje soubor dat, který se vztahuje ke specifikovaným sloupcům nebo takt. Obvykle se tato sada hodnot prezentuje jako děti nebo členové a souvisí s hierarchií. Jsou uspořádány hierarchicky ve výsledku dotazu.
12345vyberte . NA SLOUPCÍCH..Děti na řádcíchodv tomto případě je míra celkové přepravy na internetu založena na výpočtu s nákladním sloupcem, a proto se mohou kombinovat.
Všimněte si, že závorky nejsou v dotazu přítomny, ale dotaz je stále platný bez nich.
pro zobrazení pouze hodnot z požadovaného sloupce s výrazem děti, v souladu s nesouvisejícím sloupcem, použijte tento dotaz:
123456vyberte{..} na 0,{..děti} na 1odpoznámka: v tomto výrazu na 0 znamená na sloupcích a na 1 znamená na ose řádků.
zde je ještě jeden příklad použití výrazu člena
12345vyberte . na sloupcích..členové na řádcíchz -
kde klauzule
přidání klauzule WHERE je jedním ze způsobů filtrování konkrétních dat z tabulky a je podobná klauzuli WHERE v T-SQL:
1234567vyberte{..} na sloupcích,{..} na řádcíchodkde {..}hodnota ze sloupce Název regionu země, „Francie“ souvisí se sloupcem Město v geografické tabulce a dotaz zahrnutý ve výsledku pouze města z Francie.
příkaz WHERE je vlastně osa kráječe, která přidává další rozměr jak v multidimenzionálních, tak v tabulkových databázích modelů.
-
výraz případu
tento výraz je srovnání založené na logickém pořadí prvků, které vrací výsledek dotazu.
v tomto příkladu vytvořte nové opatření s názvem přehled částky prodeje odpovídající zadanému rozsahu hodnot od míry celkového prodeje na internetu:
123456789101112131415s členem . jakopřípad .když 69712.49 pak ‚Great‘když 1045.6 pak ‚ Bad ‚else ‚(normal) ‚konecvyberte{., .} ve sloupcích, {..členové} na řádcíchod
doufám, že se vám tento článek líbil, a šťastný dotaz na databázi tabulkových modelů SSAS s MDX!
- použití výrazů Cube a Subcube
- MDX Language Reference (MDX)
- MDX Query Fundamentals (Analysis Services)
- Autor
- poslední příspěvky
Daniel v současné době pracuje pro ApexSQL LLC jako software sales engineer, kde se specializuje na BI prostředí.
- jak monitorovat databázi SQL Server tempdb-červenec 6, 2017
- jak sledovat celkovou velikost indexů serveru SQL – červen 12, 2017
- jak nastavit a používat šifrovaná připojení serveru SQL – Květen 8, 2017