att hämta information från en Tabelldatabas är enkelt – fråga bara med några grundläggande DAX-funktioner! I den här artikeln kommer vi att lära oss att fråga en Tabellmodell med några av MDX-uttrycken, undersöka resultaten från Dax-frågor och analysera data från tabellerna.
krav
förutsättningarna för att fråga med MDX är SQL Server Management Studio 2014 eller senare med en installerad SSAS-Tabellinstans och distribuerad SSAS-Tabellmodelldatabas.
miljöförberedelse
att fråga en SSAS-Tabellmodelldatabas med MDX sker i SQL Server Management Studio, i MDX-frågefönstret.
flerdimensionella uttryck (MDX) översikt
MDX är uttrycksspråk som kan fråga och analysera flerdimensionella data i OLAP-kuber (som SSAS flerdimensionella modelldatabaser, t.ex.). Även om den främst är utformad för att fråga en flerdimensionell modelldatabas, kan den också fråga en Tabellmodelldatabas. Å andra sidan kan DAX-funktioner inte fråga flerdimensionella modelldatabaser, eftersom DAX-frågeuttryck är specifika för Tabellmodelldatabaser.
strukturellt innehåller MDX XMLA specificerad syntax. Eftersom det liknar T-SQL finns vissa DDL-uttalanden som kan hantera och organisera flerdimensionella datakonstruktioner. Detta gäller endast SSAS multidimensionella modelldatabaser.
när det gäller komplexitet är huvudtyperna av MDX-uttryck: konstant (numerisk, sträng etc.), skalär och objektorienterad. Dessa typer kombineras i komplexa uttryck som motsvarar uttalanden och MDX-funktioner.
när man talar om att fråga en SSAS-Tabellmodelldatabas kombineras uttryck i den här artikeln skalär/konstant typ, som enkla Kubuttryck. Dessa uttryck hämtar bara data från en Tabellkub, visar resultaten i kolumner, beställer data och förbereder dem för vidare analys.
fråga SSAS Tabellmodell databas med MDX
i början av de flesta MDX frågor är SELECT uttalande, följt med en från uttalande. Det liknar mycket T-SQL (i motsats till Evaluate-uttalandet i DAX):
1
2
3
|
välj från
|
den här frågan är den enklaste, och den returnerar värde 1 (”sant”). Det betyder att Aw-Tabelldatabasen är närvarande.
välja tabellen Produktnamn från Produktabell, välj uttalande i T-SQL ser ut så här:
1
2
3
|
välj dbo.Produktnamn från produkt
|
motsvarande uttalande skrivet i MDX, skulle vara logiskt:
1
2
3
4
5
|
välj
{..}
från
|
Lägg märke till hängslen {}, som är operatörerna som parentesen i DAX. De bifogar uttalandena och gör det möjligt att lägga till komplexitet i frågeskrivning. MDX-frågor är skiftlägeskänsliga som DAX-frågor.
den här frågan skulle hämta produktnamnskolumn och Produktabell från Aw-Tabellkuben, men istället för att visa den enda kolumnen väcker det ett exekveringsfel:
den främsta orsaken är i typ av databasmodell och syntax: Flerdimensionella och Tabellmodelldatabaser har båda dimensioner, som avgörande begrepp, men MDX i sin syntax känner igen kolumner, rader och andra element (specifika för flerdimensionella databaser) som axlar i fråga – föreställ dig dem som X -, y -, z-axlarna på en 3D-kubmodell.
när du frågar en SSAS-Tabellmodelldatabas måste MDX känna igen minst två axlar i dem: kolumner och rader, för att visa data korrekt:
1
2
3
4
5
6
|
välj
{..} på kolumner,
{..} på rader
från
|
nu ställer vi in axlarna i frågan, och resultatet visar:
som framgår visar alla värden i kolumnen Produktnamn på kolumner i resultat och rader visar motsvarande år (i kolumnen räkenskapsår) och antal objekt (i detta fall cykeldelar). Därför, i stället för tre axlar i MDX-fråga, när man frågar en SSAS-Tabellmodelldatabas är det bara två axlar som räcker för att hämta data.
detta exempel frågar samma tabell inom båda axlarna:
1
2
3
4
5
6
|
välj
{..} på kolumner,
{..} på rader
från
|
resultatet av frågan visar:
värdet ” 1 ”betyder” sant ”i det här fallet, och värdet” (null) ” betyder att det inte finns några relaterade data inom standardkostnadskolumnen.
-
Visa särskilt värde (objekt) från angiven kolumn och icke tom funktion
med MDX är det möjligt att se det enskilda värdet från kolumnen i Tabellmodelldatabasen:
12345välj{{..}.Punkt (53)} på 0fråni det här exemplet visar resultatet det 53: e objektet (slumpmässigt valt) från kolumnen Modellnamn. Lägg märke till den definierade axeln ”på 0″ – istället för att definiera” kolumner ”(vi kommer att se i ytterligare exempel) eller” rader”, placeras det enskilda värdet i början av tabellvyn för frågeresultatet.
med inkludering av icke-tom funktion, enstaka beräknade värdet från den särskilda åtgärden (Internet Total försäljning) visar:
123456väljej Tom{.} på kolumnerfrån -
Tuple funktion
Tuple är specificerad uppsättning data, en kombination av två eller flera dimensionsmedlemmar (i detta fall två värden från Årskolumn).
12345välj {.. : ..} på rader,{.} på kolumnerfrånLägg märke till de angivna värdena från kolumnen år som anger årsintervallet och motsvarande värden från Internet – Totalmarginalen i frågeresultatet.
-
barn och MEDLEMSUTTRYCK
detta uttryck visar den uppsättning data som är relaterad till angivna kolumner eller mått. Vanligtvis presenteras dessa värden som barn eller medlemmar, och det är relaterat till hierarki. De ordnas hierarkiskt i frågeresultatet.
12345välj . PÅ KOLUMNER,..Barn på raderfråni detta fall är Internet Total Frakt åtgärd baserad på beräkning med Godskolonnen, och därmed kan de kombinera.
Lägg märke till att hängslen inte finns i frågan, men frågan är fortfarande giltig utan dem.
för att bara visa värdena från en önskad kolumn med BARNUTTRYCKET, i överensstämmelse med en icke-relaterad kolumn, använd den här frågan:
123456välj{..} på 0,{..barn} på 1fråni detta uttryck står på 0 för på Kolumner och på 1 står för på rader axel.
här är ytterligare ett exempel med MEDLEMSUTTRYCKET
12345Välj . på kolumner,..medlemmar på raderfrån -
WHERE-klausul
tillägg av where-klausulen är det enda sättet att filtrera specifika data från en tabell, och det liknar WHERE-klausulen i T-SQL:
1234567välj{..} på kolumner,{..} på raderfråndär {..}värdet från kolumnen Landsregionnamn, ”Frankrike” är relaterat till kolumnstaden i Geografitabellen, och frågan som ingår i resultatet endast städer från Frankrike.
WHERE-satsen är faktiskt skivaxeln, vilket ger en extra dimension både i flerdimensionella och Tabellmodelldatabaser.
-
CASE expression
detta uttryck är en jämförelse baserad på den logiska ordningen av element, som returnerar ett frågeresultat.
i det här exemplet skapar du ett nytt mått som heter sales Amount Overview som motsvarar ett angivet värdeområde från Internet Total Sales measure:
123456789101112131415med medlem . somfall .när 69712.49 då ’bra’när 1045.6 då ’dåligt’annars ’(normal)’slutvälj{., .} på kolumner,{..medlemmar} på raderfrån
jag hoppas att du gillade den här artikeln, och glad att fråga en SSAS Tabellmodell databas med MDX!
- använda kub-och Subkubuttryck
- MDX – språkreferens (MDX)
- MDX-Frågegrunder (analystjänster)
- författare
- Senaste inlägg
Daniel arbetar för närvarande för ApexSQL LLC Som Mjukvaruförsäljningsingenjör där han är specialiserad på BI-miljön.
- så här övervakar du SQL Server tempdb – databasen-juli 6, 2017
- så här övervakar du den totala SQL Server-indexstorleken-Juni 12, 2017
- så här ställer du in och använder krypterade SQL Server-anslutningar-Maj 8, 2017