Utilizarea relațiilor Multe-Multe în SQL Server Analysis Services (SSAS) 2016

Opțiunea Multidimensional Cube a Analysis Services a gestionat cu ușurință multe-la-multe relații cu ușurință pentru multe versiuni înainte de 2016. Tabularul a lucrat cu ajutorul formulelor DAX până la lansarea SQL Server 2016. Există încă unele limitări pentru mulți-pentru mulți în Tabular, dar, desigur, există câteva „trucuri” pentru a depăși limitele. Dar, relația mulți-mulți va fi în datele de afaceri pentru mulți ani de acum încolo. O soluție trebuie furnizată atunci când vine vorba de bazele de date ale serviciului de analiză.

multe-multe

Înainte de a merge la dezvoltarea și asistența multor la mulți în Analysis Services, ETL-ul unei aplicații de raportare trebuie să formateze datele în tabele care să susțină această opțiune. Aceasta ar putea fi denumită o masă bridge. Datele din tabelul tranzacțiilor sunt „conectate” la numeroasele categorii de suport posibile. Datele Adventure Works DW oferă un exemplu excelent cu multe motive de vânzare legate de multe elemente rând de vânzări pe internet.

Figura 1 prezintă un exemplu de proiectare a acestor tabele.

Figura 1: Relația Mulți-Mulți în Cub

Relația de editare din Figura 1 arată într-un cub relația dintre 2 tabele cu mai multe coloane - SalesOrderNumber (Număr comandă) și SaleOrderLineNumber (Număr linie comandă). Această tabelă de legătură, FactInternetSalesReason, leagă motivele de vânzare de la tabelul de dimensiuni DimSalesReason la tabelul de fapt FactinternetSales prin aceste 2 coloane. Tabelul FactInternetSalesReason poate avea mai multe intrări pentru același număr de comandă plus numărul de linie de comandă. Exemplul din tabelul de mai jos prezintă 2 numere de comandă de vânzare diferite cu 3 motive de vânzare diferite.

SalesOrderNumber SalesReasonName
SO51214 În promoție
SO51214 Alte
SO51214 Preț
SO51298 În promoție
SO51298 Alte
SO51298 Preț

Tabelul 1: motive multiple de vânzare

Figura 2 prezintă Analiza în Excel atunci când nu există nicio relație între motivul vânzărilor și vânzările pe internet pentru cub. Aceasta este aceeași ieșire primită inițial și cu Tabular. Relațiile multe-la-multe nu sunt atribuite automat la construirea unui cub sau a unui model tabelar prin vrăjitori. Există mai multe lucruri de făcut după finalizarea vrăjitorului. Măsurile Numărului de vânzări și Valoarea vânzării sunt însumate pe toate rândurile, mai degrabă decât în ​​felia de vânzare Motiv de vânzare utilizat în Figura 2.

Figura 2: Analizați în cubul inițial Excel

Relația nu este o relație regulată pentru relația de dimensiune în cub. Dar, înainte de a stabili relația, trebuie să fie create dimensiunile Motivul vânzărilor (tabelul DimSalesReason) și Vânzările prin Internet (tabelul FactInternetSales) plus un grup de măsuri pentru tabelul FactInternetSalesReason. Măsura poate fi un număr de rânduri și ascunsă prin proprietatea Vizibilă a măsurii. Odată ce acestea sunt create, relația mulți-la-mulți poate fi creată în relația dimensiunii cubului dintre dimensiunea motivului de vânzare și grupul de măsurare a vânzărilor pe internet, ca în figura 3.