Sådan forespørges en SSAS Tabular model database med MDH-udtryk

det er nemt at hente oplysninger fra en tabeldatabase – bare Forespørg det med nogle grundlæggende funktioner! I denne artikel lærer vi, hvordan du forespørger en Tabelmodel med nogle af udtrykkene, undersøger resultaterne fra forespørgelse og analyserer data fra tabellerne.

krav

forudsætningerne for at forespørge er standard Server Management Studio 2014 eller nyere med en installeret SSAS tabelinstans og implementeret SSAS tabelmodel database.

miljøforberedelse

forespørgsel på en SSAS-tabelmodeldatabase med MDC finder sted i MDC Server Management Studio, i vinduet MDC-forespørgsel.

multidimensionelle udtryk (MDK) oversigt

MDK er ekspressionssprog, der kan forespørge og analysere multidimensionelle data i OLAP-terninger (som f.eks. Selvom den primært er designet til at forespørge en flerdimensionel modeldatabase, kan den også forespørge en tabelmodel database. På den anden side kan funktioner ikke forespørge multidimensionelle modeldatabaser, fordi søgeudtryk er specifikke for tabelmodeldatabaser.

strukturelt inkorporerer MDL specificeret syntaks. Da det ligner T-SL, er der nogle DDL-udsagn, som kan styre og organisere multidimensionelle datakonstruktioner. Dette gælder kun for SSAS multidimensionelle modeldatabaser.

med hensyn til kompleksitet er hovedtyperne af MDK-udtryk: konstant (numerisk, streng osv.), skalar og objektorienteret. Disse typer kombineres i komplekse udtryk, der svarer til udsagn og MDK-funktioner.

når vi taler om at forespørge en SSAS Tabelmodel database, er udtryk i denne artikel kombineret skalar / konstant type, som enkle Terningudtryk. Disse udtryk henter kun data fra en tabelformet terning, viser resultaterne i kolonne(er), bestiller data og forbereder dem til yderligere analyse.

forespørger SSAS Tabular model database med MDK

i begyndelsen af de mest MDK forespørgsler er Vælg sætning, efterfulgt med en fra-sætning. Det svarer meget til T-S (i modsætning til Evalueringserklæringen i):

1
2
3

vælg fra

denne forespørgsel er den enkleste, og den returnerer værdi 1 (“Sand”). Det betyder, at en Tabeldatabase er til stede.

valg af tabelproduktnavn fra Produkttabellen, vælg sætning i T-SEKL ser sådan ud:

1
2
3

vælg dbo.Produktnavn fra produkt

den tilsvarende erklæring skrevet i MDC ville være logisk:

1
2
3
4
5

vælg
{..}
fra

Bemærk bøjlerne {}, som er operatørerne som parentesen. De vedlægger udsagnene og gør det muligt at tilføje kompleksitet i forespørgselsskrivning. Forespørgsler er store og små bogstaver som f.eks.

denne forespørgsel henter produktnavnskolonne og Produkttabel fra en tabelformet terning, men i stedet for at vise den enkelte kolonne rejser den en eksekveringsfejl:

den væsentligste årsag er i typen af databasen model og syntaks: I sin syntaks genkender kolonner, rækker og andre elementer (specifikke for multidimensionelle databaser) som akser i forespørgslen – forestil dem som akserne på en 3D-terningmodel.

når du forespørger en SSAS Tabular model database, skal MDK genkende mindst to akser i dem: kolonner og rækker, for at vise data korrekt:

1
2
3
4
5
6

vælg
{..} på kolonner,
{..} på rækker
fra

nu sætter vi akserne i forespørgslen, og resultatet viser:

som det kan ses, vises alle værdier i kolonnen Produktnavn på kolonner i resultat, og rækker viser de tilsvarende år (i kolonnen regnskabsår) og antal varer (i dette tilfælde cykeldele). Derfor, i stedet for tre akser i MDK-forespørgsel, når du forespørger en SSAS Tabular model database kun to akser er nok til at hente data.

dette eksempel forespørger den samme tabel inden for begge akser:

1
2
3
4
5
6

vælg
{..} på kolonner,
{..} på rækker
fra

resultatet af forespørgslen viser:

værdien ” 1 “betyder” sand “i dette tilfælde, og værdi” (null) ” betyder, at der ikke er nogen relaterede data i kolonnen standardomkostninger.

  1. visning af bestemt værdi (element) fra specificeret kolonne og ikke tom funktion

    med MDH er det muligt at se den enkelte værdi fra kolonne i Tabelmodel database:

    1
    2
    3
    4
    5

    vælg
    {{..}.Vare (53)} Den 0
    fra

    i dette eksempel viser resultatet det 53.element (tilfældigt valgt) fra kolonnen Modelnavn. Bemærk den definerede akse “på 0″ – i stedet for at definere” kolonner “(vi vil se i yderligere eksempler) eller” rækker”, placeres den enkelte værdi i begyndelsen af tabelvisningen af forespørgselsresultatet.

    med inddragelse af ikke tom funktion, Enkelt beregnet værdi fra den særlige foranstaltning (Internet samlede salg) viser:

    1
    2
    3
    4
    5
    6

    vælg
    ikke tom
    {.} på kolonner
    fra

  2. tuple-funktion

    Tuple er angivet datasæt, en kombination af to eller flere dimensionsmedlemmer (i dette tilfælde to værdier fra kolonnen år).

    1
    2
    3
    4
    5

    vælg {.. : ..} på rækker,
    {.} på kolonner
    fra

    Bemærk de angivne værdier fra kolonnen år, der angiver årintervallet, og tilsvarende værdier fra Internet Total margen i forespørgselsresultatet.

  3. børn og Medlemsudtryk

    dette udtryk viser det datasæt, der er relateret til bestemte kolonner eller mål. Normalt præsenterer disse sæt værdier som børn eller medlemmer, og det er relateret til hierarki. De ordnes hierarkisk i forespørgselsresultatet.

    1
    2
    3
    4
    5

    vælg . PÅ KOLONNER,
    ..Børn på rækker
    fra

    i dette tilfælde er Internet samlede fragt foranstaltning baseret på beregning med fragt kolonne, og dermed kan de kombinere.

    Bemærk, at seler ikke er til stede i forespørgslen, men forespørgslen er stadig gyldig uden dem.

    brug denne forespørgsel til kun at vise værdierne fra en ønsket kolonne med BØRNEUDTRYKKET i overensstemmelse med en ikke-relateret kolonne:

    1
    2
    3
    4
    5
    6

    vælg
    {..} på 0,
    {..børn} på 1
    fra

    Bemærk: i dette udtryk står på 0 for på kolonner, og på 1 står for på rækker akse.

    her er endnu et eksempel ved hjælp af MEDLEMSUDTRYKKET

    1
    2
    3
    4
    5

    Vælg . på kolonner,
    ..medlemmer på rækker
    fra

  4. hvor klausul

    tilføjelse af hvor klausul er den ene måde at filtrere specifikke data fra en tabel, og det svarer til hvor klausul i T:

    1
    2
    3
    4
    5
    6
    7

    vælg
    {..} på kolonner,
    {..} på rækker
    fra
    hvor {..}

    værdien fra kolonnen Land Region navn, “Frankrig” er relateret til kolonnen by i geografi tabel, og forespørgslen inkluderet i resultat kun Byer fra Frankrig.

    hvor-sætningen er faktisk skæreaksen, som tilføjer en ekstra dimension både i multidimensionelle og tabulære modeldatabaser.

  5. CASE udtryk

    dette udtryk er en sammenligning baseret på den logiske rækkefølge af elementer, som returnerer et forespørgselsresultat.

    i dette eksempel skal du oprette en ny måling kaldet Sales Beløbsoversigt svarende til et specificeret værdiinterval fra Internet Total Sales measure:

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

    med medlem . as
    sag .
    når 69712.49 derefter ‘Stor’
    når 1045.6 derefter ‘dårlig’
    ellers ‘(normal)’
    ende
    vælg
    {.
    , .
    } på kolonner
    ,{..medlemmer} på rækker
    fra

jeg håber du nød denne artikel, og glad for at spørge en SSAS Tabular model database med MDC!

  • brug af Cube-og Subcube-udtryk
  • MDK-Sprogreference (MDK)
  • MDK-Forespørgselsgrundlag (analysetjenester)

  • forfatter
  • Seneste indlæg
Daniel Tikvicki
Daniel er en bibliotekar, der løb ind i en hvirvel af IT-verden, hvor han leviterer og lærer konstant. Han kan godt lide bøger, kun alle former for kunstnerisk udtryk (som musiker/digter selv), og han er underjordisk udgiver (fansiner og eksperimentel musik). Også de punkter af interesse omfatter teologi, mytologi og pseudovidenskab.
Daniel arbejder i øjeblikket for som salgsingeniør, hvor han har specialiseret sig i BI-miljøet.

Daniel Tikvicki
Seneste indlæg af Daniel Tikvicki (se alle)
  • sådan overvåges tempdb-databasen-6. juli 2017
  • sådan overvåges den samlede SERVERINDEKSSTØRRELSE-12. juni 2017
  • Sådan indstilles og bruges krypterede serverforbindelser-Maj 8, 2017

Write a Comment

Din e-mailadresse vil ikke blive publiceret.