SQLShack

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.

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

    1
    2
    3
    4
    5

    selecteer
    {{..}.Item (53)} op 0
    vanaf

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

    1
    2
    3
    4
    5
    6

    selecteer
    niet leeg
    {.} op de kolommen
    van

  2. Tuple-functie

    Tuple is een gegeven set, een combinatie van twee of meer dimensiedelen (in dit geval twee waarden uit de kolom jaar).

    1
    2
    3
    4
    5

    selecteer {.. : ..} op rijen,
    {.} op de kolommen
    van

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

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

    1
    2
    3
    4
    5

    selecteer . VOOR KOLOMMEN
    ..Kinderen op rijen
    vanaf

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

    1
    2
    3
    4
    5
    6

    selecteer
    {..} op 0,
    {..kinderen} op 1
    vanaf

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

    1
    2
    3
    4
    5

    Selecteer . voor kolommen
    ..leden op rijen
    vanaf

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

    1
    2
    3
    4
    5
    6
    7

    selecteer
    {..} op kolommen,
    {..} op rijen
    van
    waar {..}

    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.

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

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

    met lid . als
    geval .
    wanneer 69712.49 dan ‘groot’
    wanneer 1045.6 dan ‘slecht’
    else ‘(normaal) ‘
    end
    select
    {.
    , .
    } op de kolommen
    , {..leden} op rijen
    vanaf

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
Daniel Tikvicki
Daniel is een bibliothecaris die liep in een draaikolk van de IT-wereld, waar hij is zwevend en leren voortdurend. Hij houdt van boeken, slechts van alle vormen van artistieke expressie (zelf muzikant / dichter), en hij is underground uitgever (fanzines en experimentele muziek). Ook de punten van belang zijn theologie, mythologie en pseudowetenschap. Daniel werkt momenteel voor ApexSQL LLC Als Software sales engineer, waar hij gespecialiseerd is in de BI-omgeving.

Daniel Tikvicki
Laatste bericht door Daniel Tikvicki (zie alle)
  • 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

Write a Comment

Het e-mailadres wordt niet gepubliceerd.