SQLShack

preluarea informațiilor dintr – o bază de date tabelară este ușoară-doar interogați-o cu câteva funcții Dax de bază! În acest articol, vom învăța cum să interogăm un model Tabular cu unele dintre expresiile MDX, să examinăm rezultatele interogării DAX și să analizăm datele din tabele.

cerințe

premisele pentru interogarea cu MDX sunt SQL Server Management Studio 2014 sau mai mare cu o instanță tabelară SSAS instalată și baza de date model tabelar SSAS implementată.

pregătirea mediului

interogarea unei baze de date tabulare SSAS cu MDX are loc în SQL Server Management Studio, în fereastra de interogare MDX.

Prezentare generală a expresiilor multidimensionale (MDX)

MDX este un limbaj de Expresie care poate interoga și analiza date multidimensionale în cuburi OLAP (cum ar fi bazele de date multidimensionale ale modelului SSAS, de exemplu). Deși este conceput în primul rând pentru interogarea unei baze de date de modele multidimensionale, poate interoga și o bază de date de modele tabulare. Pe de altă parte, funcțiile DAX nu pot interoga baze de date model multidimensionale, deoarece expresiile de interogare DAX sunt specifice bazelor de date model tabelar.

structural, MDX încorporează sintaxa specificată XMLA. Deoarece este similar cu T-SQL, sunt prezente unele declarații DDL, care pot gestiona și organiza construcții de date multidimensionale. Acest lucru se aplică numai bazelor de date cu modele multidimensionale SSAS.

în ceea ce privește complexitatea, principalele tipuri de expresii MDX sunt: constante (numerice, string etc.), scalar și orientat pe obiecte. Aceste tipuri se combină în expresii complexe corespunzătoare cu declarații și funcții MDX.

când vorbim despre interogarea unei baze de date a modelului tabelar SSAS, expresiile din acest articol sunt combinate tip scalar/constant, ca expresii simple de cub. Aceste expresii recuperează numai date dintr-un cub Tabular, arată rezultatele în coloane, comandă date și pregătește-le pentru analize suplimentare.

interogarea bazei de date a modelului tabelar SSAS cu MDX

la începutul celor mai multe interogări MDX este instrucțiunea SELECT, urmată de o instrucțiune FROM. Este foarte similar cu T-SQL (spre deosebire de Declarația de evaluare în DAX):

1
2
3

selectați din

această interogare este cea mai simplă și returnează valoarea 1 („true”). Aceasta înseamnă că baza de date tabelară AW este prezent.

selectarea numelui produsului tabel din tabelul de produse, selectați instrucțiunea în T-SQL arată astfel:

1
2
3

selectați dbo.Numele produsului din produs

declarația corespunzătoare scrisă în MDX, ar fi, logic:

1
2
3
4
5

selectați
{..}
din

observați acolade {}, care sunt operatorii, cum ar fi paranteza în DAX. Acestea includ declarațiile și fac posibilă adăugarea complexității în scrierea interogărilor. Interogările MDX sunt insensibile la majuscule ca interogările DAX.

această interogare ar prelua coloana de nume de produs și tabelul de produse din cubul tabelar AW, dar în loc să afișeze coloana unică, aceasta ridică o eroare de execuție:

motivul principal este tipul modelului bazei de date și sintaxa: Bazele de date multidimensionale și tabulare au ambele dimensiuni, ca concept crucial, dar MDX în sintaxa sa recunoaște coloanele, rândurile și alte elemente (specifice bazelor de date multidimensionale) ca axe în interogare – imaginați-le ca axele x, y, z pe un model cub 3D.

atunci când interogarea unei baze de date model tabelar SSAS, MDX trebuie să recunoască cel puțin două axe în ele: coloane și rânduri, pentru a afișa datele în mod corespunzător:

1
2
3
4
5
6

selectați
{..} pe coloane,
{..} pe rândurile
din

acum, am stabilit axele în interogare, iar rezultatul său arată:

după cum se poate observa, toate valorile coloanei cu numele produsului se afișează pe coloanele din rezultat, iar rândurile arată anii corespunzători (în coloana anului Fiscal) și numărul de articole (în acest caz, piese pentru biciclete). Prin urmare, în loc de trei axe în interogare MDX, atunci când interogarea unei baze de date model tabelar SSAS doar două axe sunt suficiente pentru a prelua date.

acest exemplu interoghează același tabel în ambele axe:

1
2
3
4
5
6

selectați
{..} pe coloane,
{..} pe rândurile
din

rezultatul interogării arată:

valoarea ” 1 „înseamnă” adevărat „în acest caz, iar valoarea” (null) ” înseamnă că nu există date conexe în coloana Cost Standard.

  1. vizualizarea anumită valoare (element) din coloana specificată și funcția non gol

    cu MDX, este posibil pentru a vedea valoarea unică din coloana din Baza de date model tabelar:

    1
    2
    3
    4
    5

    selectați
    {{..}.Postul(53)} pe 0
    din

    în acest exemplu, rezultatul arată al 53-lea element (ales aleatoriu) din coloana Nume Model. Observați axa definită „pe 0″ – în loc să definiți” coloane „(vom vedea în exemple suplimentare) sau” rânduri”, acea singură valoare este plasată pe începutul inițial al vizualizării tabulare a rezultatului interogării.

    cu includerea funcției non-goale, valoarea calculată unică din măsura particulară (vânzările totale pe Internet) afișează:

    1
    2
    3
    4
    5
    6

    selectați
    non gol
    {.} pe coloanele
    din

  2. funcția tuplu

    tuplu este specificat set de date, o combinație de doi sau mai mulți membri dimensiune (în acest caz, două valori din coloana an).

    1
    2
    3
    4
    5

    selectați {.. : ..} pe rânduri,
    {.} pe coloanele
    din

    observați valorile specificate din coloana an care face intervalul de ani și valorile corespunzătoare din marja totală Internet din rezultatul interogării.

  3. copii și expresia membru

    această expresie arată setul de date care este legat de coloane sau măsuri specificate. De obicei, aceste set de valori se prezintă ca copii sau membri și este legat de ierarhie. Acestea sunt ordonate ierarhic în rezultatul interogării.

    1
    2
    3
    4
    5

    selectați . PE COLOANE,
    ..Copii pe rânduri
    din

    în acest caz, Internet Total marfă măsură se bazează pe calcul cu coloana de marfă, și, astfel, ele pot combina.

    observați că bretelele nu sunt prezente în interogare, dar interogarea este încă valabilă fără ele.

    pentru a afișa numai valorile dintr-o coloană dorită cu expresia copii, în corespondență cu o coloană fără legătură, utilizați această interogare:

    1
    2
    3
    4
    5
    6

    selectați
    {..} pe 0,
    {..copii} la 1
    din

    Notă: În această expresie, pe 0 standuri pentru pe coloane, și pe 1 standuri pentru pe axa rânduri.

    iată încă un exemplu folosind expresia membru

    1
    2
    3
    4
    5

    selectați . pe coloane,
    ..membrii pe rândurile
    din

  4. unde clauza

    adăugarea clauzei WHERE este singura modalitate de a filtra date specifice dintr – un tabel și este similară cu clauza WHERE din T-SQL:

    1
    2
    3
    4
    5
    6
    7

    selectați
    {..} pe coloane,
    {..} pe rândurile
    de la
    unde {..}

    valoarea din coloana Nume regiune țară,” Franța ” este legată de coloana oraș în tabelul de Geografie, și interogarea incluse în rezultat numai orașe din Franța.

    instrucțiunea WHERE este de fapt axa slicer, care adaugă o dimensiune suplimentară atât în bazele de date multidimensionale, cât și în cele tabulare.

  5. expresie de caz

    această expresie este o comparație bazată pe ordinea logică a elementelor, care returnează un rezultat al interogării.

    în acest exemplu, creați o nouă măsură numită Prezentare generală a valorii vânzărilor care corespunde unui interval de valori specificat de la măsura vânzărilor totale pe Internet:

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

    cu Membru . ca
    caz .
    când 69712.49 apoi ‘Mare’
    când 1045.6 apoi ‘rău’
    else ‘(normal)’
    end
    selectați
    {.
    , .
    } pe coloanele
    , {..membri} pe rândurile
    din

sper că ți-a plăcut acest articol, și fericit interogarea unei baze de date SSAS model tabelar cu MDX!

  • utilizarea expresiilor Cube și Subcube
  • MDX Language Reference (MDX)
  • MDX Query Fundamentals (servicii de analiză)

  • autor
  • Postări recente
Daniel Tikvicki
Daniel este un bibliotecar care a intrat într-un vârtej al lumii IT, unde levitează și învață constant. Îi plac cărțile, doar toate formele de exprimare artistică (fiind muzician/poet însuși) și este editor underground (fanzine și muzică experimentală). De asemenea, punctele de interes includ teologia, mitologia și pseudoștiința.
Daniel lucrează în prezent pentru ApexSQL LLC ca inginer de vânzări de Software, unde este specializat pentru mediul BI.

Daniel Tikvicki
ultimele postări de Daniel Tikvicki (vezi toate)
  • cum se monitorizează baza de date SQL Server tempdb-6 iulie 2017
  • cum se monitorizează dimensiunea totală a indexurilor SQL Server-12 iunie 2017
  • cum se setează și se utilizează conexiuni SQL Server criptate – Mai 8, 2017

Write a Comment

Adresa ta de email nu va fi publicată.