SQLShack

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.

  1. 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ů:

    1
    2
    3
    4
    5

    vyberte
    {{..}.Položka (53)} na 0
    od

    v 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) :

    1
    2
    3
    4
    5
    6

    vyberte
    neprázdné
    {.} ve sloupcích
    od

  2. 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).

    1
    2
    3
    4
    5

    vyberte {.. : ..} na řádcích
    {.} ve sloupcích
    od

    Vš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.

  3. 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.

    1
    2
    3
    4
    5

    vyberte . NA SLOUPCÍCH
    ..Děti na řádcích
    od

    v 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:

    1
    2
    3
    4
    5
    6

    vyberte
    {..} na 0,
    {..děti} na 1
    od

    pozná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

    1
    2
    3
    4
    5

    vyberte . na sloupcích
    ..členové na řádcích
    z

  4. 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:

    1
    2
    3
    4
    5
    6
    7

    vyberte
    {..} na sloupcích,
    {..} na řádcích
    od
    kde {..}

    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ů.

  5. 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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    s členem . jako
    případ .
    když 69712.49 pak ‚Great‘
    když 1045.6 pak ‚ Bad ‚
    else ‚(normal) ‚
    konec
    vyberte
    {.
    , .
    } ve sloupcích
    , {..členové} na řádcích
    od

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 Tikvicki
Daniel je knihovník, který narazil do víru it světa, kde neustále levituje a učí se. Má rád knihy, pouze všechny formy uměleckého vyjádření (sám hudebník / básník) a je undergroundovým vydavatelem (fanziny a experimentální hudba). Mezi zajímavá místa patří také teologie, mytologie a pseudověda.
Daniel v současné době pracuje pro ApexSQL LLC jako software sales engineer, kde se specializuje na BI prostředí.

Daniel Tikvicki
poslední příspěvky od Daniel Tikvicki (Zobrazit vše)
  • 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

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.