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.
-
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:
12345selectați{{..}.Postul(53)} pe 0dinî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ă:
123456selectaținon gol{.} pe coloaneledin -
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).
12345selectați {.. : ..} pe rânduri,{.} pe coloaneledinobservați valorile specificate din coloana an care face intervalul de ani și valorile corespunzătoare din marja totală Internet din rezultatul interogării.
-
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.
12345selectați . PE COLOANE,..Copii pe rânduridinî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:
123456selectați{..} pe 0,{..copii} la 1dinNotă: Î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
12345selectați . pe coloane,..membrii pe rânduriledin -
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:
1234567selectați{..} pe coloane,{..} pe rândurilede launde {..}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.
-
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:
123456789101112131415cu Membru . cacaz .când 69712.49 apoi ‘Mare’când 1045.6 apoi ‘rău’else ‘(normal)’endselectați{., .} pe coloanele, {..membri} pe rânduriledin
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 lucrează în prezent pentru ApexSQL LLC ca inginer de vânzări de Software, unde este specializat pentru mediul BI.
- 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