AnalysisServices_HideDimension_00

Ukrywanie współdzielonego wymiaru dla jednej z kostek

W wielu przypadkach deweloperzy muszą współdzielić wymiary pomiędzy kostkami w ramach tego samego projektu SQL Server Analysis Services. Osiągnięcie pożądanego efektu jest bardzo proste i nie wymaga specjalnych działań. Co natomiast w przypadku gdy chcemy współdzielić wymiar ale nie udostępniać wszystkich hierarchii dla jednej z kostek? Realnych przykładów jest bardzo wiele np. jedna kostka porusza się po datach fiskalnych natomiast druga po kalendarzowych i chcemy aby widoczne były tylko odpowiadające hierarchie. Jednym ze sposobów jest stworzenie dwóch oddzielnych wymiarów – jednak pozbawiamy się wtedy możliwości współdzielenia.

Niewiele osób wie ale osiągnięcie pożądanego efektu jest bardzo proste. Dla przykładu spójrzmy na projekt kostki Adventure Works (możecie go pobrać tutaj). Mamy dwie kostki:

  • AdventureWorks
  • MinedCustomers

Obie kostki używają wymiaru czasu – chcemy aby kostka AdventureWorks widziała hierarchię Calendar, a kostka MinedCustomers widziała tylko hierarchię Fiscal – do dzieła!

Pierwszym krokiem jest otwarcie kostki AdventureWorks na zakładce Cube Structure.
W dolnej części ekranu możemy znaleźć wymiary, rozwińmy interesujący nas wymiar Date i hierarchię Fiscal – zaznaczmy ją:

Cube structure dimensionsPo zaznaczeniu interesującej hierarchii we właściwościach szukamy pola Visible zaznaczamy False. Analogicznie ustawiamy właściwości dla kostki MinedCustomers.

dimension properties

To wszystko! Jak widać osiągnięcie zamierzonego efektu jest bardzo proste, wystarczy znać tą bardzo prostą technikę.

Leave a Reply