het ophalen van informatie uit een database in tabelvorm is eenvoudig – vraag het gewoon op met een aantal fundamentele DAX-functies! In dit artikel leren we hoe we een Tabelmodel kunnen bevragen met enkele van de MDX-uitdrukkingen, de resultaten van DAX-bevragen onderzoeken en gegevens uit de tabellen analyseren.
Requirements
de vereisten voor het opvragen met MDX zijn SQL Server Management Studio 2014 of hoger met een geïnstalleerde SSAS tabular instance en geà mplementeerde SSAS Tabular model database.
Omgevingsvoorbereiding
het opvragen van een SAS-modeldatabase met MDX vindt plaats in SQL Server Management Studio, in het MDX-query-venster.
multidimensionale uitdrukkingen (MDX) overzicht
MDX is expressietaal die multidimensionale gegevens in OLAP-kubussen kan opvragen en analyseren (zoals SSA ‘ s multidimensionale modeldatabases, bijvoorbeeld). Hoewel het voornamelijk is ontworpen voor het opvragen van een multidimensionale modeldatabase, kan het ook een tabulaire modeldatabase opvragen. Aan de andere kant kunnen DAX-functies Geen multidimensionale modeldatabases opvragen, omdat DAX-query-expressies specifiek zijn voor Modeldatabases in tabelvorm.
structureel bevat MDX XMLA-gespecificeerde syntaxis. Omdat het vergelijkbaar is met T-SQL, zijn er enkele DDL statements aanwezig, die multidimensionale dataconstructies kunnen beheren en organiseren. Dit geldt alleen voor SSA ‘ s multidimensionale model databases.
wat de complexiteit betreft, zijn de belangrijkste typen MDX-expressies: constant (numeriek, string enz.), scalair en objectgeoriënteerd. Deze types combineren in complexe uitdrukkingen die corresponderen met statements en MDX functies.
wanneer het gaat om het opvragen van een SSA-modeldatabase in tabelvorm, worden expressies in dit artikel gecombineerd met scalair/constant type, als eenvoudige Kubusuitdrukkingen. Deze expressies halen alleen gegevens op uit een kubus in tabelvorm, tonen de resultaten in kolom( s), bestellen gegevens en bereiden deze voor op verdere analyse.
Querying SSAS Tabular model database met MDX
aan het begin van de meeste MDX queries is SELECT statement, gevolgd door een FROM statement. Het is zeer vergelijkbaar met T-SQL ‘ s (in tegenstelling tot de evaluatie statement in DAX):
1
2
3
|
selecteer uit
|
deze query is de eenvoudigste, en het retourneert waarde 1 (“true”). Het betekent dat Aw Tabular database aanwezig is.
het selecteren van de tabel Productnaam uit de producttabel, SELECT statement in T-SQL ziet er als volgt uit:
1
2
3
|
selecteer dbo.Productnaam van Product
|
de bijbehorende verklaring geschreven in MDX, zou zijn, logischerwijs:
1
2
3
4
5
|
selecteer
{..}
vanaf
|
let op de accolades {}, die de operators zijn zoals de haakjes in DAX. Ze bevatten de verklaringen en maken het mogelijk om complexiteit toe te voegen in query schrijven. MDX-queries zijn hoofdletterongevoelig, zoals DAX-queries.
deze query zou de kolom Productnaam en producttabel uit de AW-tabelkubus ophalen, maar in plaats van de enkele kolom te tonen, roept het een uitvoerfout op:
de belangrijkste reden is in het type van de database model en syntaxis: Multidimensionale en tabulaire model databases hebben beide dimensies, als cruciaal concept, maar MDX in zijn syntaxis herkent kolommen, rijen en andere elementen (specifiek voor multidimensionale databases) als Assen in query – stel ze voor als de X, y, z assen op een 3D kubusmodel.
bij het opvragen van een SSAS-modeldatabase in tabelvorm moet MDX ten minste twee assen herkennen: kolommen en Rijen, om gegevens correct weer te geven:
1
2
3
4
5
6
|
selecteer
{..} op kolommen,
{..} op rijen
vanaf
|
nu stellen we de assen in de query in en het resultaat toont:
zoals te zien is, worden alle waarden van de kolom productnaam weergegeven op kolommen in resultaat, en Rijen tonen de overeenkomstige jaren (in kolom fiscaal jaar) en het aantal items (in dit geval rijwielonderdelen). Daarom, in plaats van drie assen in MDX query, bij het bevragen van een SaaS tabel model database slechts twee assen zijn genoeg om gegevens op te halen.
dit voorbeeld vraagt dezelfde tabel binnen beide assen:
1
2
3
4
5
6
|
selecteer
{..} op kolommen,
{..} op rijen
vanaf
|
het resultaat van de query toont:
de waarde ” 1 “betekent” waar “in dit geval, en waarde” (null) ” betekent dat er geen gerelateerde gegevens binnen standaardkostenkolom.
-
het bekijken van bepaalde waarde (item) uit opgegeven kolom en niet lege functie
met MDX is het mogelijk om de enkele waarde uit kolom in Tabelmodel database te zien:
12345selecteer{{..}.Item (53)} op 0vanafIn dit voorbeeld toont het resultaat het 53ste item (willekeurig gekozen) uit de kolom modelnaam. Let op de gedefinieerde as “op 0” – in plaats van het definiëren van “kolommen” (we zullen zien in verdere voorbeelden) of “rijen”, wordt die enkele waarde geplaatst op het begin van de tabelweergave van het queryresultaat.
met inbegrip van niet-lege functie, één berekende waarde van de specifieke maatstaf (totale verkoop via Internet) – displays:
123456selecteerniet leeg{.} op de kolommenvan -
Tuple-functie
Tuple is een gegeven set, een combinatie van twee of meer dimensiedelen (in dit geval twee waarden uit de kolom jaar).
12345selecteer {.. : ..} op rijen,{.} op de kolommenvanmerk op dat de opgegeven waarden uit de kolom jaar het bereik van jaren maken en de bijbehorende waarden van Internet totale marge in het queryresultaat.
-
CHILDREN and MEMBER Expression
deze expressie toont de verzameling gegevens die gerelateerd is aan gespecificeerde kolommen of maten. Meestal, deze set van waarden worden gepresenteerd als kinderen of leden, en het is gerelateerd aan hiërarchie. Ze worden hiërarchisch geordend in het zoekresultaat.
12345selecteer . VOOR KOLOMMEN..Kinderen op rijenvanafin dit geval, Internet totale vracht maatregel is gebaseerd op berekening met vracht kolom, en dus, ze kunnen combineren.
merk op dat accolades niet aanwezig zijn in de query, maar de query is nog steeds geldig zonder hen.
voor het tonen van alleen de waarden uit een gewenste kolom met de CHILDREN-expressie, in overeenstemming met een niet-gerelateerde kolom, gebruik deze query:
123456selecteer{..} op 0,{..kinderen} op 1vanafopmerking: in deze uitdrukking staat op 0 voor op kolommen, en op 1 staat voor op rijen as.
hier is nog een voorbeeld met de LEDENUITDRUKKING
12345Selecteer . voor kolommen..leden op rijenvanaf -
waar clausule
toevoeging van de WHERE-clausule is de enige manier om specifieke gegevens uit een tabel te filteren, en het is vergelijkbaar met WHERE-clausule in T-SQL:
1234567selecteer{..} op kolommen,{..} op rijenvanwaar {..}de waarde uit de kolom Land Regio Naam, “Frankrijk” is gerelateerd aan de kolom stad in aardrijkskunde tabel, en de query opgenomen in resultaat alleen steden uit Frankrijk.
het where statement is eigenlijk de snijas, die een extra dimensie toevoegt in zowel multidimensionale als tabulaire modeldatabases.
-
CASE expression
deze expressie is een vergelijking gebaseerd op de logische volgorde van elementen, die een queryresultaat oplevert.
maak in dit voorbeeld een nieuwe maat, genaamd Sales Amount Overview, die overeenkomt met een opgegeven waardenbereik van Internet Total Sales measure:
123456789101112131415met lid . alsgeval .wanneer 69712.49 dan ‘groot’wanneer 1045.6 dan ‘slecht’else ‘(normaal) ‘endselect{., .} op de kolommen, {..leden} op rijenvanaf
ik hoop dat je genoten van dit artikel, en gelukkig querying een SSAS Tabular model database met MDX!
- met Behulp van de Kubus en Subcube Uitdrukkingen
- MDX-Language Reference (MDX)
- MDX-Query Fundamentals (Analysis Services)
- Auteur
- Recente Berichten
- het monitoren van de SQL Server-database tempdb – 6 juli 2017
- het monitoren van de totale SQL Server indexen grootte – 12 juni 2017
- het instellen en het gebruik van gecodeerde SQL Server-verbindingen – Mei 8, 2017