Wprowadzenie do drążenia skrośnego w Essbase

Gdy użytkownicy narzędzia Smart View potrzebują więcej informacji niż jest dostępnych w kostce, raporty drążenia skrośnego mogą zapewnić dostosowany dostęp do danych z zewnętrznego źródła.

Zazwyczaj, ze względu na szczegółowość danych przechowywanych w hurtowniach danych i innych systemach danych źródłowych, wolumen danych zewnętrznych może być zbyt duży, aby były one przydatne do analizy. W celu wypełnienia kostki Essbase optymalną ilością danych do analizy typową praktyką jest agregowanie danych źródłowych (na przykład agregowanie dziennych wartości transakcyjnych do podsumowań tygodniowych lub miesięcznych) i ładowanie tych zagregowanych danych do kostki Essbase.

Podczas kolejnych analiz danych w Essbase, jeśli użytkownicy narzędzia Smart View wykryją anomalie warte zbadania, funkcja drążenia skrośnego umożliwia szybkie wyświetlenie danych z używanego źródła w celu ustalenia przyczyny. Na przykład, jeśli dane z sierpnia różnią się nieoczekiwanie od danych z lipca, użytkownicy mogą drążyć skrośnie do systemu źródłowego, aby odszukać rekordy, które mogą być za tę sytuację odpowiedzialne.

Aby udostępnić analitycznym użytkownikom narzędzia Smart View dodatkowe informacje o tym, co się składa na jedną lub więcej wartości danych w kostce, menedżerowie bazy danych mogą zaimplementować raporty drążenia skrośnego, zapewniające głębszy wgląd w dane źródłowe przed ich skumulowaniem i załadowaniem do Essbase.

Raporty drążenia skrośnego stanowią jeden ze sposobów skonstruowania interfejsu wymiany danych między Essbase a zewnętrznymi systemami źródłowymi.

Rozważmy tabelę relacyjną SB_DT z wybranymi wszystkimi rekordami. Zapytanie SQL ma następującą postać:

SELECT * FROM SB_DT

Wynik zapytania (widziany w aplikacji SQL Developer) jest na tym rysunku przycięty, ponieważ w tabeli znajdują się tysiące rekordów:


Widok danych tabelarycznych w aplikacji SQL Developer. Istnieją tysiące wierszy z kolumną DIMENSION_PRODUCT zawierającą wartości SKU produktów, kolumną DIMENSION_MARKET zawierającą stany Stanów Zjednoczonych, kolumną DIMENSION_YEAR zawierającą miesiące, kolumną DIMENSION_SCENARIO zawierającą wartość "Actual" lub "Budget" oraz kolumny SALES, COGS, MARKETING i PAYROLL zawierające wartości liczbowe.

Przyjrzyjmy się tej samej tabeli z wybraną mniejszą liczbą rekordów. Na przykład, jeśli instrukcja SQL SELECT zostanie ograniczona do nazwanych kolumn, miary są agregowane i jest stosowany filtr (klauzula WHERE),

select DIMENSION_PRODUCT, DIMENSION_MARKET, YEAR_PARENT, DIMENSION_SCENARIO, sum(SALES) as SALES, sum(COGS) as COGS
         from SB_DT where DIMENSION_SCENARIO ='Actual' AND DIMENSION_MARKET ='California' AND YEAR_PARENT ='Qtr4' group by DIMENSION_PRODUCT, DIMENSION_MARKET,
        YEAR_PARENT, DIMENSION_SCENARIO

to wynik zapytania będzie agregowany i filtrowany:


Widok (w aplikacji SQL Developer) danych tabelarycznych. 12 wierszy z kolumną DIMENSION_PRODUCT zawierającą wartości SKU produktów, kolumną DIMENSION_MARKET zawierającą wartość "California", kolumną YEAR_PARENT zawierającą wartość "Qtr4", kolumną DIMENSION_SCENARIO zawierającą wartość "Actual" oraz kolumny SALES i COGS zawierające wartości liczbowe.

W Essbase można wykorzystywać możliwości zapytań RDBMS, używając raportów dotyczących źródeł danych, raportów ładowania danych i raportów drążenia skrośnego. Raporty drążenia skrośnego zapewniają filtrowany dostęp do zewnętrznego źródła danych bezpośrednio z zapytania Essbase wprowadzonego w arkuszu Smart View.

Drążenie skrośne — terminologia

Wyjaśniono tu znaczenie terminów związanych z drążeniem skrośnym w Essbase.

Drążyć skrośnie

Drążyć skrośnie oznacza uzyskiwać dostęp z arkusza Smart View do zewnętrznych danych z jednej lub większej liczby części wspólnych komórek w Essbase. Za pomocą drążenia skrośnego uzyskuje się dodatkowe informacje, niezawarte w kostce Essbase. Potrzeba drążenia pojawia się, gdy Essbase zawiera zagregowane (skumulowane) wartości, a w zewnętrznym systemie źródłowym znajduje się więcej szczegółowych danych, które mogą zostać udostępnione.

  • Jeśli przy drążeniu skrośnym zostanie wykonane zapytanie, to jego wyniki pojawią się w nowym otwartym arkuszu — jest to raport drążenia skrośnego. Raport ten zawiera informacje uzyskane z zewnętrznych danych źródłowych.

  • Jeśli przy drążeniu skrośnym zostanie uaktywniony adres URL, to otworzy się on w przeglądarce internetowej. Do adresu URL można przekazywać parametry w celu przeprowadzenia dostosowanego wyszukiwania w serwisie internetowym.

Raport drążenia skrośnego

Raport drążenia skrośnego jest to wynik operacji drążenia skrośnego, wykonanej z tabeli Smart View, do dodatkowych danych zawartych w systemie źródłowym, zewnętrznym względem Essbase.

Definicja raportu drążenia skrośnego

Definicja raportu drążenia skrośnego stanowi środek umożliwiający użytkownikowi będącemu co najmniej menedżerem bazy danych określenie dostępu, jaki użytkownicy powinni mieć do zewnętrznych informacji. Definicje raportów drążenia skrośnego można tworzyć za pomocą internetowego interfejsu Essbase lub REST API. Definicje te są powiązane z kostką. W ramach definicji należy określić:

  • Mapowanie kolumn. Określa, które zewnętrzne kolumny mają być wyświetlane w raportach oraz jaka jest zapewniana hierarchiczna (generacyjna) głębia dostępu (na przykład, czy z zewnętrznego źródła mają być ujawniane informacje dzienne, miesięczne czy kwartalne).

  • Obszar możliwy do drążenia. Określa, które części wspólne komórek oferują dostęp do raportów drążenia skrośnego (lub do adresu URL) zawierających dodatkowe zewnętrzne dane. W zamieszczonych dalej przykładach obszary możliwe do drążenia, występujące w punkcie widzenia (POV) arkusza Smart View, są wyróżniane za pomocą stylów komórek kolorem niebieskim. Obszary możliwe do drążenia można określić za pomocą dowolnych, dostępnych w Essbase funkcji zestawów elementów. W zamieszczonych dalej przykładach obszarem możliwym do drążenia jest @DESCENDANTS("Measures") z kostki Sample Basic.

  • Mapowanie dla parametrów wykonawczych, jeśli w używanym zapytaniu do źródła danych jest zaimplementowane zapytanie parametryzowane (opcjonalne).

Definicje drążenia skrośnego zazwyczaj opierają się na połączeniach i źródłach danych, predefiniowanych w Essbase (o ile nie jest definiowany dostęp do pliku wysłanego do Essbase). W połączeniu są przechowywane szczegóły identyfikacji w zewnętrznym źródle. Źródła danych (jedno lub większa ich liczba), zdefiniowane dla połączenia, umożliwiają określenie początkowego zapytania pobierania z zewnętrznego źródła (na przykład wybranie wszystkiego z konkretnej tabeli). Zapytanie określane dla źródła danych może pobierać duży lub mały podzbiór danych, z którymi można zacząć pracę. Później, tworząc lub edytując definicję raportu drążenia skrośnego, można zawęzić dostęp do danych.

Proces Workflow projektowania raportu drążenia skrośnego

Będąc menedżerem bazy danych, należy w celu zaprojektowania i przetestowania drążenia skrośnego dla kostki użyć poniższego procesu Workflow.

  1. Przygotować dostęp do danych

    1. Wysłać plik danych LUB
    2. Uzyskać informacje autoryzacyjne, niezbędne do uzyskania dostępu do zewnętrznego systemu źródłowego
    3. Zdefiniować połączenie i co najmniej jedno źródło danych wskazujące plik danych lub źródło zewnętrzne. Zob. Tworzenie globalnego połączenia i źródła danych lub Tworzenie połączenia i źródła danych na poziomie aplikacji.
  2. Utworzyć definicje raportów drążenia skrośnego dla kostki

    1. zdefiniować mapowanie kolumn
    2. zdefiniować obszar możliwy do drążenia
    3. zmapować parametry wykonawcze (jeśli są używane)
  3. Przetestować raporty drążenia skrośnego

    1. Przygotować Smart View

      • zainstalować najnowszą wersję
      • połączyć Smart View z kostką
      • włączyć style komórek, tak aby były pokazywane obszary możliwe do drążenia
    2. Drążyć skrośnie z różnych części wspólnych komórek w Smart View

      • drążyć skrośnie z jednej części wspólnej
      • drążyć skrośnie z więcej niż jednej części wspólnej
      • drążyć skrośnie z komórek z różnych generacji
    3. Sprawdzić wyniki raportu drążenia skrośnego i dziennik platformy

W tym procesie Workflow i w pozostałej części tego wprowadzenia jest podkreślane to, co trzeba wiedzieć, aby móc projektować dostęp z drążeniem skrośnym do zewnętrznych danych źródłowych w systemie RDBMS. Osoby bardziej zainteresowane drążeniem skrośnym do adresu URL znajdą odpowiednie informacje pod hasłem Drążenie skrośne do adresu URL.

Wyjaśnienie różnych wymagań dostępu przy projektowaniu i używaniu drążenia skrośnego jest omówione pod hasłem Dostęp do raportów drążenia skrośnego.

Jak działa drążenie skrośne

W tym przykładzie zakładamy, że kostka Sample Basic w Essbase ma jako najniższe poziomy wymiaru "Czas" kwartały od 1 do 4 (Qtr1-Qtr4).


Hierarchia "Year". "Year" jest nazwą wymiaru z elementami podrzędnymi Qtr1, Qtr2, Qtr3 i Qtr4 poziomu 0.

W hierarchii struktury nie ma miesięcy, lecz dane miesięczne są dostępne w zewnętrznym systemie źródłowym, w kolumnie DIMENSION_YEAR tabeli:


Kolumna DIMENSION_YEAR z wartościami określającymi miesiące: Aug, Sep, Oct itd.

Gdy użytkownik narzędzia Smart View drąży z części wspólnej komórek, zawierającej wartość sprzedaży (Sales) dla 1. kwartału (Qtr1):


Tabela Smart View z wybraną przez użytkownika wartością "1998" komórki dla części wspólnej (Qtr1, Sales, New York, Actual, Cola)

Essbase generuje następujący raport drążenia skrośnego


Raport z drążenia skrośnego z systemu źródłowego, zwracający tylko rekordy, dla których YEAR_PARENT=Qtr1, oraz ujawniający łączną wartość sprzedaży równą 1998

Raport drążenia skrośnego pokazuje dodatkowe informacje ze źródłowej bazy danych, dotyczące sprzedaży w 1. kwartale. Można zauważyć, że na wartość za 1. kwartał składają się wartości ze stycznia, lutego i marca: 678+645+675=1998.

Zapytanie, które jest wewnętrznie używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT
        "DIMENSION_PRODUCT", "DIMENSION_MARKET", "DIMENSION_YEAR", "DIMENSION_SCENARIO",
        "SALES", "COGS", "YEAR_PARENT"  FROM <Query defined in Datasource> WHERE
        "YEAR_PARENT" = 'Qtr1' AND "DIMENSION_PRODUCT" = '100-10' AND "DIMENSION_MARKET" =
        'New York' AND "DIMENSION_SCENARIO" = 'Actual'

Administratorzy mogą, korzystając z dziennika platformy, uzyskiwać dostęp do zapytań używanych w poszczególnych raportach drążenia skrośnego.

Definicja raportu drążenia skrośnego

Definicja raportu drążenia skrośnego stanowi środek umożliwiający użytkownikowi będącemu co najmniej menedżerem bazy danych określenie dostępu, jaki użytkownicy powinni mieć do zewnętrznych informacji.

Uwaga:

Nie należy zmieniać nazw definicji raportów drążenia skrośnego. Definicje raportów drążenia skośnego, których nazwy zostaną zmienione, mogą stać się nieedytowalne i mogą nie działać zgodnie z oczekiwaniami.

Aby można było włączyć raport drążenia skrośnego (wygenerowany w Jak działa drążenie skrośne), menedżer bazy danych utworzył definicję raportu drążenia skrośnego, powiązaną z kostką Sample Basic. Raport drążenia skrośnego odwołuje się do predefiniowanego źródła danych, dla którego jest używane zapytanie mające na celu ściągnięcie zewnętrznych danych z tabeli (tabela z hipotetycznego systemu źródłowego, wspomniana w rozdziale Wprowadzenie do drążenia skrośnego w Essbase).

W definicji raportu drążenia skrośnego menedżer bazy danych określił następujące mapowanie kolumn:

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
DIMENSION_PRODUCT Y Product Product SKU [Generation]
DIMENSION_MARKET Y Market State [Generation]
DIMENSION_YEAR Y Year Brak
DIMENSION_SCENARIO Y Scenario Level0 [Level]
SALES Y Brak --
COGS Y Brak --
YEAR_PARENT Y Year Quarter [Generation]

Mapowanie kolumn określa, które kolumny z zewnętrznego źródła powinny zostać uwzględnione w raporcie, na które wymiary Essbase te kolumny mają zostać zmapowane oraz (opcjonalnie) warunek filtra generacji/poziomu określający głębię udzielanego dostępu.

W pokazanym powyżej szablonie mapowania menedżer bazy danych:

  • Zmapował zewnętrzną kolumnę DIMENSION_PRODUCT na generację o nazwie "Product SKU" w wymiarze "Product" w Essbase. Ten typ mapowania kolumn jest nazywany mapowaniem na generację.

  • Zmapował zewnętrzną kolumnę DIMENSION_MARKET na generację o nazwie "State" w wymiarze "Market" w Essbase (jest to kolejny przykład mapowania na generację).

  • Zmapował zewnętrzną kolumnę DIMENSION_YEAR na wymiar "Year" bez dalszego filtrowania. Ten typ mapowania kolumn jest nazywany mapowaniem na wymiar.

  • Zmapował zewnętrzną kolumnę DIMENSION_SCENARIO na najniższy poziom (poziom 0) wymiaru "Scenario" w Essbase. Ten typ mapowania kolumn jest nazywanym mapowaniem na poziom 0.

  • Nie zmapował kolumn SALES i COGS, ale wybrał uwzględnianie ich w raporcie. Zazwyczaj nie trzeba mapować kolumn na wymiar "Accounts" w Essbase.

  • Zmapował zewnętrzną kolumnę YEAR_PARENT na generację o nazwie "Quarter" w wymiarze "Year".

Opcje mapowania kolumn

Ponieważ zapytanie, generowane przez Essbase w celu ściągnięcia danych ze źródła danych, jest w bardzo dużym stopniu zależne od zdefiniowanego mapowania kolumn, dobrze jest rozumieć różne sposoby mapowania kolumn i wiedzieć, w jakich przypadkach poszczególne sposoby są przydatne. Można wyróżnić następujące typy mapowania kolumn:

  • Mapowanie na wymiar

  • Mapowanie na generację

  • Mapowanie na poziom 0

Mapowanie na wymiar

W przypadku mapowania na wymiar użytkownik mapuje kolumnę danych źródłowych na nazwę wymiaru w kostce Essbase. Ten typ mapowania jest najbardziej przydatny, gdy kolumna danych źródłowych zawiera wszystkie dane reprezentowane w odpowiadającym wymiarze w używanej kostce.

Na przykład, jeśli kolumna MONTH danych źródłowych zawiera mieszaninę wszystkich tych samych generacji/poziomów, które występują, jak pokazano poniżej


Widok przyciętej kolumny relacyjnej MONTH przedstawionej obok przyciętej hierarchii "Year" z kostki Sample Basic. Kolumna MONTH zawiera następujące rekordy: Jan, Qtr3, Feb, Qtr1, Year, Aug itd. Hierarchia "Year" zawiera element Qtr1 z elementami podrzędnymi Jan, Feb, Mar, element Qtr2 z elementami podrzędnymi Apr, May, Jun itd.

to celowe jest mapowanie kolumny MONTH na wymiar "Year" w Essbase bez dalszego filtrowania:

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
MONTH Y Year Brak

Jeśli dla kolumny MONTH jest używane mapowanie na wymiar, jak pokazano powyżej, to warunek filtrowania (klauzula WHERE w zapytaniu SQL) nie jest predefiniowany dla kolumny MONTH:

SELECT "MONTH"
FROM <Query defined in Datasource>
WHERE "MONTH" = '<Grid context>'

a wynik drążenia skrośnego dla kolumny MONTH zwróci obecną część wspólną komórek Smart View.

Więcej informacji, jak działa mapowanie na wymiar, jest dostępnych pod hasłem Przykład przypadku użycia drążenia skrośnego.

Mapowanie na generację

W przypadku mapowania na generację użytkownik mapuje kolumnę danych źródłowych na nazwaną generację w wymiarze Essbase. Ten typ mapowania jest przydatny, gdy kolumna danych źródłowych zawiera tylko warstwę danych reprezentowaną w określonej generacji wymiaru w kostce. Na przykład, jeśli kolumna MONTH danych źródłowych zawiera tylko miesiące, a wymiar "Year" zawiera miesiące jako generację 3


Widok przyciętej kolumny relacyjnej MONTH przedstawionej obok przyciętej hierarchii "Year" z kostki Sample Basic. Kolumna MONTH zawiera jako rekordy tylko miesiące: Jan, Feb, Feb, Mar, Mar, Apr, May itd. Hierarchia "Year" zawiera element Qtr1 z elementami podrzędnymi Jan, Feb, Mar, element Qtr2 z elementami podrzędnymi Apr, May, Jun itd.

to najlepszym wyborem jest mapowanie kolumny źródłowej na generację 3 (Months) wymiaru "Year":

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
MONTH Y Year Months [Generation]

Jeśli dla kolumny MONTH jest używane mapowanie na generację, jak pokazano powyżej, to warunek filtrowania jest predefiniowany dla kolumny MONTH:

SELECT "MONTH"
FROM <Query defined in Datasource>
WHERE "MONTH" = '<Generation filter>'

a wynik drążenia skrośnego dla kolumny MONTH zwróci wartości z wymiaru "Year" aż do generacji "Months". Nie zostaną zwrócone żadne dane (jeśli istnieją) dla wszystkich poziomów poniżej "Months".

Mapowanie na generację nie najlepiej się nadaje dla hierarchii asymetrycznych (niewyrównanych).. Mapowanie na generację nie ma żadnego wpływu na zapytanie drążenia skrośnego w wymiarze z hierarchią asymetryczną, chyba że drążenie skrośne jest wykonywane na elemencie znajdującym się na poziomie bezpośrednio pod generacją, w której zostało zdefiniowane mapowanie kolumny. Aby uniknąć nieoczekiwanych wyników, Oracle — w przypadku drążenia skrośnego w hierarchiach asymetrycznych — zaleca używanie, zamiast mapowania na generację, mapowania na poziom 0.

Więcej informacji, jak działa mapowanie na generację, jest dostępnych pod hasłem Przykład przypadku użycia drążenia skrośnego.

Mapowanie na poziom 0

Gdy jest używane mapowanie na poziom 0, Essbase dodaje do warunku filtrowania wszystkie elementy poziomu zerowego (poziom liścia) z hierarchii poniżej części wspólnej komórek (bez względu na to, który element jest wybrany w bieżącym kontekście tabeli Smart View w trybie wykonawczym).

Mapowanie na poziom 0 jest przydatne podczas pracy z hierarchii asymetrycznych (niewyrównanych). W przypadku hierarchii niewyrównanej elementy tego samego poziomu (L) mają w strukturze różną głębię (G) generacyjną.


Rysunek przedstawiający drzewo elementów z hierarchią niewyrównaną. Znajdujący się na samj górze element "Measures" jest generacją 1 i jednocześnie jest elementem poziomów 2 i 3. Dzieci elementu "Measures", tj. "Profit", "Inventory" i "Ratios" są generacją 2 i elementami poziomów 1 i 2. Elementy "a" do "h" są dziećmi elementów "Profit", "Inventory" oraz "Ratios" i są generacją 3 oraz elementami poziomów 0 i 1. Elementy "aa", "ab", "ba", "bb" i "bc" są dziećmi elementów "a" oraz "b" i są generacją 4 oraz elementami poziomu 0.

Typowym przykładem hierarchii niewyrównanej jest struktura organizacyjna pracowników.

Wymiar "Product" ze struktury kostki Essbase Sample Basic stałby się hierarchią niewyrównaną, gdyby bezpośrednio poniżej elementu "100-10 (Cola)" zostało dodanych kilka produktów:


Widok przyciętej hierarchii "Product" ze zmodyfikowanej kostki Sample Basic. Zawiera produkt 100 z elementami-dziećmi 100-10, 100-20, 100-30 itd. Element 100-10 jest rozwinięty, aby były pokazane dodane elementy-dzieci 100-10-10, 100-10-20, 100-10-30 i 100-10-40.

Jeśli menedżer bazy danych zmapuje kolumnę źródłową PRODUCT na poziom 0 wymiaru "Product", jak pokazano:

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
PRODUCT Y Product Level0 [Level]

to użyty w zapytaniu warunek filtrowania będzie predefiniowany dla kolumny PRODUCT:

SELECT "PRODUCT"
FROM <Query defined in Datasource>
WHERE  "PRODUCT" = <Level0> below <Grid context>

a wynik drążenia skrośnego dla kolumny PRODUCT zwróci wszystkie elementy poziomu 0 poniżej elementu "Product" wybranego w obecnej części wspólnej komórek Smart View.

Więcej informacji, jak działa mapowanie na wymiar 0, jest dostępnych pod hasłem Przykład przypadku użycia drążenia skrośnego.

Przykład przypadku użycia drążenia skrośnego

W tym przykładzie przypadku użycia zbadamy następujące czynniki, które należy wziąć pod uwagę podczas projektowania dostępu do raportów szczegółowych dla użytkowników narzędzia Smart View:

  • Kostka Essbase do analizy

  • Zewnętrzny system źródłowy do drążenia skrośnego

  • Definicja raportu drążenia skrośnego z mapowaniem kolumn zdefiniowanym przez menedżera bazy danych

  • Wyniki raportu drążenia skrośnego ze Smart View

Kostka Essbase

W tym przykładzie podstawą jest kostka podobna do demonstracyjnej kostki Essbase Sample Basic, ale zawierająca jedynie dane poziomu kwartalnego dla wymiaru "Czas" (miesiące zostały usunięte). Załóżmy, że w wymiarze "Year" elementami najniższego poziomu są kwartały od 1 do 4 (Qtr1-Qtr4):


Hierarchia Year. Year jest nazwą wymiaru z elementami podrzędnymi Qtr1, Qtr2, Qtr3 i Qtr4 poziomu 0.

Mimo że w tej hierarchii struktury nie ma miesięcy, to jednak dane miesięczne są dostępne z zewnątrz przez drążenie skrośne do systemu źródłowego (załóżmy, że jest to baza danych Oracle) i uzyskiwanie dostępu do informacji z tabeli DIMENSION_YEAR:


Kolumna DIMENSION_YEAR z wartościami określającymi miesiące: Aug, Sep, Oct itd.

Dla pozostałych wymiarów zakładamy, że są takie same, jak w demonstracyjnej kostce Essbase Sample Basic, dostępnej w sekcji "Galeria" Katalogu "Pliki". Poniżej jest zamieszczone krótkie ich omówienie:

W wymiarze "Measures" są śledzone kluczowe wskaźniki z wykorzystaniem obliczeń dynamicznych z użyciem formuł obliczeniowych Essbase.


Wymiar "Measures" z elementami generacji 2: Profit, Inventory i Ratios. Element "Profit" został rozwinięty, aby były pokazywane elementy-dzieci "Margin" i "Total Expenses". Element "Margin" został rozwinięty, aby były pokazywane elementy-dzieci "Sales" i "COGS". Elementy "Inventory" i "Ratios" nie zostały rozwinięte, ale każdy z nich ma dodatkowe elementy-dzieci.

W wymiarze "Product" jest śledzony aktywny magazyn, z uwzględnieniem dwóch generacji w dół, do generacji 2 o nazwie "Category" (wypełnionej wartościami 100 [alias Colas], 200, 300, 400 i Diet) i generacji 3 (poziom 0) o nazwie "Product SKU" (wypełnionej wartościami 100-10 [alias Cola], 100-20 itd.).


Wymiar "Product" z elementami generacji 2: 100, 200, 300, 400 i Diet. Element 100 z kategorii "Product" został rozwinięty, aby były pokazywane elementy-dzieci elementu "Product SKU": 100-10, 100-20 i 100-30. Inne elementy kategorii "Product", tj. 200, 300, 400 i Diet, nie zostały rozwinięte, ale każdy z nich ma dodatkowe elementy-dzieci.

Wymiar "Market" zapewnia podział geograficzny z dwiema dodatkowymi generacjami pod nazwą wymiaru. Generacja 2 to Region (East, West itd.) a generacja 3 to State.


Wymiar "Market" z elementami generacji 2: East, West, South i Central. Element East z regionu "Product" został rozwinięty, aby były pokazywane elementy-dzieci niektórych wschodnich stanów: New York, Massachusetts, Florida, Connecticut i New Hampshire. Inne elementy kategorii "Market", tj. West, South i Central, nie zostały rozwinięte, ale każdy z nich ma dodatkowe elementy-dzieci.

Wymiar "Scenario" dodaje do kostki analizę dla raportów finansowych, używając dwóch składowanych i dwóch obliczanych dynamicznie elementów:


Wymiar "Scenario" z elementami generacji 2: Actual, Budget, Variance i Variance %. Dwa ostatnie elementy są obliczane dynamicznie, podczas gdy "Actual" i "Budget" są składowane.

Zewnętrzny system źródłowy

W tym przykładzie zakładamy, że systemem źródłowym jest baza danych Oracle. Predefiniowane w Essbase źródło danych zawiera zapytanie SQL, które ściąga informacje z tabeli z bazy danych Oracle.

Naszym zadaniem jako menedżera bazy danych jest zaprojektowanie definicji raportu drążenia skrośnego, opartej na tym źródle danych i zapewniającej użytkownikom narzędzia Smart View właściwy dostęp do danych z systemu źródłowego, ściąganych za pomocą źródła danych.

Zapytanie w źródle danych może być proste, jak

SELECT * FROM TABLENAME

albo może być uszczegółowione tak, aby była ściągana określona agregacja lub asortyment zewnętrznych danych, które mają być używane jako podstawa.

Wybór z hipotetycznej bazy danych Oracle zawiera zewnętrzne kolumny, takie jak przedstawione w naszym wprowadzeniu. Podczas projektowania definicji raportu skrośnego mapujemy niektóre z tych kolumn na wymiary Essbase.

Definicja mapowania kolumn

W tym przykładzie w mapowaniu kolumn dla wymiaru "Product" jest używane mapowanie na wymiar, dla wymiarów "Year" i "Scenario" — mapowanie na generację, a dla wymiaru "Market" — mapowanie na poziom 0.

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
DIMENSION_PRODUCT Y Product Brak
DIMENSION_MARKET Y Market Level0 [Level]
YEAR_PARENT Y Year Quarter [Generation]
DIMENSION_SCENARIO Y Scenario Scen [Generation]
SALES Y Brak --
COGS Y Brak --
MARKETING Y Brak --
PAYROLL Y Brak --
MISC Y Brak --

Przykłady raportów drążenia skrośnego z różnymi typami mapowania kolumn

W poniższych przykładach raportów drążenia skrośnego są pokazane wyniki zapytań dla poszczególnych typów mapowania kolumn, które to typy zostały określone przez menedżera bazy danych w ramach definicji raportu drążenia skrośnego.

Mapowanie na wymiar — przykład 1

W przypadku użycia dla wymiaru "Product" mapowania na wymiar bez filtra hierarchicznego

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
DIMENSION_PRODUCT Y Product Brak

drążenie skrośne, wykonywane z części wspólnej komórek, nie będzie związane ani z konkretną generacją, ani konkretnym poziomem.

Dlatego drążenie z (Year, Sales, West, Actual, Cola):


Tabela Smart View z wybraną przez użytkownika wartością "14862" komórki dla części wspólnej (Qtr1, Sales, New York, Actual, Cola)

zwraca raport drążenia skrośnego, przefiltrowany w bieżącym kontekście tabeli pod kątem produktu, którym w tym przypadku jest 100-10 (100-10 jest to wartość "Product SKU" powiązana z aliasem Cola). Wszystkie wartości ściągnięte z kolumny DIMENSION_PRODUCT z systemu źródłowego będą rekordami, dla których DIMENSION_PRODUCT = 100-10.


Raport z drążenia skrośnego z rekordami "Product SKU" o wartości 100-10, ujawniający łączną wartość sprzedaży równą 14862

W celu zweryfikowania raportów drążenia skrośnego należy podczas ich testowania sprawdzić, czy suma wartości miary w raporcie jest identyczna z wartością z części wspólnej komórek, z której zostało wykonane drążenie skrośne. W powyższym przykładzie raport drążenia skrośnego został pomyślnie zweryfikowany, ponieważ wartość w komórce, z której wykonano drążenie, jest równa wartości (14862) stanowiącej podsumowanie mapowanej kolumny w raporcie drążenia skrośnego.

Zapytanie, które jest używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2') 
AND 
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Nevada')
AND 
"DIMENSION_SCENARIO" = 'Actual'

Mapowanie na wymiar — przykład 2

Kontynuując poprzedni przykład, zobaczmy, co się dzieje, gdy wymiar "Product" jest drążony z użyciem wyższego poziomu.

Drążenie skrośne z (Year, Sales, West, Actual, Colas):


Tabela Smart View z wybraną przez użytkownika wartością "28306" komórki dla części wspólnej (Qtr1, Sales, New York, Actual, Colas)

zwraca raport drążenia skrośnego, przefiltrowany w kontekście bieżącej tabeli pod kątem produktu, którym w tym przypadku jest 100 (100 jest to kategoria "Product" powiązana z aliasem Colas). Wszystkie wartości ściągnięte z kolumny DIMENSION_PRODUCT z systemu źródłowego będą rekordami, dla których DIMENSION_PRODUCT = 100.


Raport z drążenia skrośnego z rekordami z kategorii produktu 100, ujawniający łączną wartość sprzedaży równą 23806

Raport drążenia skrośnego został pomyślnie zweryfikowany, ponieważ wartość w komórce, z której wykonano drążenie, jest równa wartości (23806) stanowiącej podsumowanie mapowanej kolumny w raporcie drążenia skrośnego.

Zapytanie, które jest używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2') 
AND 
"DIMENSION_PRODUCT" = '100'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Nevada')
AND 
"DIMENSION_SCENARIO" = 'Actual'

Mapowanie na generację — przykład 1

W przypadku użycia dla wymiaru "Year" mapowania na generację z filtrem ustawionym na generację o nazwie "Quarter"

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
YEAR_PARENT Y Year Quarter [Generation]

drążenie skrośne, wykonywane z części wspólnej komórek, będzie związane z konkretną generacją z wymiaru "Year".

Drążenie skrośne z (Qtr2, Sales, Market, Actual, Cola):


Tabela Smart View z wybraną przez użytkownika wartością "16048" komórki dla części wspólnej (Qtr2, Sales, Market, Actual, Cola)

zwraca raport drążenia skrośnego, przefiltrowany w kontekście mapowania pod kątem roku na generację, którą w tym przypadku jest Quarters. Ponieważ Qtr2 znajduje się w wybranym kontekście tabeli, wszystkie wartości ściągnięte z kolumny YEAR_PARENT z systemu źródłowego będą rekordami, dla których YEAR_PARENT = Qtr2.


Raport z drążenia skrośnego z rekordami dla Qtr2, ujawniający łączną wartość sprzedaży równą 16048

Raport drążenia skrośnego został pomyślnie zweryfikowany, ponieważ wartość w komórce, z której wykonano drążenie, jest równa wartości (16048) stanowiącej podsumowanie mapowanej kolumny w raporcie drążenia skrośnego.

Zapytanie, które jest używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE 
"YEAR_PARENT" = 'Qtr2'
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR 
"DIMENSION_MARKET" = 'New York' OR 
"DIMENSION_MARKET" = 'Oklahoma' OR 
"DIMENSION_MARKET" = 'California' OR 
"DIMENSION_MARKET" = 'Florida' OR 
"DIMENSION_MARKET" = 'Washington' OR 
"DIMENSION_MARKET" = 'Utah' OR 
"DIMENSION_MARKET" = 'Iowa' OR 
"DIMENSION_MARKET" = 'New Mexico' OR 
"DIMENSION_MARKET" = 'Massachusetts' OR 
"DIMENSION_MARKET" = 'Texas' OR 
"DIMENSION_MARKET" = 'Illinois' OR 
"DIMENSION_MARKET" = 'Colorado' OR 
"DIMENSION_MARKET" = 'Connecticut' OR 
"DIMENSION_MARKET" = 'New Hampshire' OR 
"DIMENSION_MARKET" = 'Missouri' OR 
"DIMENSION_MARKET" = 'Louisiana' OR 
"DIMENSION_MARKET" = 'Ohio' OR 
"DIMENSION_MARKET" = 'Wisconsin' OR 
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'

Mapowanie na generację — przykład 2

Kontynuując poprzedni przykład, zobaczmy, co się dzieje, gdy wymiar "Year" jest drążony z użyciem wyższego poziomu.

Drążenie skrośne z (Year, Sales, Market, Actual, Cola):


Tabela Smart View z wybraną przez użytkownika wartością "62824" komórki dla części wspólnej (Year, Sales, Market, Actual, Cola)

zwraca raport drążenia skrośnego, przefiltrowany wg mapowanej generacji "Quarters" wymiaru "Year". Wartościami, ściągniętymi z kolumny YEAR_PARENT z systemu źródłowego, będą Qtr1, Qtr2, Qtr3 i Qtr4.


Raport z drążenia skrośnego z rekordami dla wszystkich kwartałów roku, ujawniający łączną wartość sprzedaży równą 62824

Raport drążenia skrośnego został pomyślnie zweryfikowany, ponieważ wartość w komórce, z której wykonano drążenie, jest równa wartości (62824) stanowiącej podsumowanie mapowanej kolumny w raporcie drążenia skrośnego.

Zapytanie, które jest używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR 
"YEAR_PARENT" = 'Qtr4' OR 
"YEAR_PARENT" = 'Qtr1' OR 
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR 
"DIMENSION_MARKET" = 'New York' OR 
"DIMENSION_MARKET" = 'Oklahoma' OR 
"DIMENSION_MARKET" = 'California' OR 
"DIMENSION_MARKET" = 'Florida' OR 
"DIMENSION_MARKET" = 'Washington' OR 
"DIMENSION_MARKET" = 'Utah' OR 
"DIMENSION_MARKET" = 'Iowa' OR 
"DIMENSION_MARKET" = 'New Mexico' OR 
"DIMENSION_MARKET" = 'Massachusetts' OR 
"DIMENSION_MARKET" = 'Texas' OR 
"DIMENSION_MARKET" = 'Illinois' OR 
"DIMENSION_MARKET" = 'Colorado' OR 
"DIMENSION_MARKET" = 'Connecticut' OR 
"DIMENSION_MARKET" = 'New Hampshire' OR 
"DIMENSION_MARKET" = 'Missouri' OR 
"DIMENSION_MARKET" = 'Louisiana' OR 
"DIMENSION_MARKET" = 'Ohio' OR 
"DIMENSION_MARKET" = 'Wisconsin' OR 
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'

Mapowanie na poziom 0 — przykład

W przypadku użycia dla wymiaru "Market" mapowania na poziom 0 z filtrem ustawionym na wszystkie elementy poziomu 0 (elementy-liście)

Kolumna zewnętrzna Uwzględnianie w raporcie Wymiar Essbase Filtr generacji/poziomu
DIMENSION_MARKET Y Market Level0 [Level]

drążenie skrośne, wykonywane z części wspólnej komórek, zwróci wszystkie elementy najniższego poziomu wymiaru "Market".

Drążenie skrośne z (Year, Sales, Market, Actual, Cola):


Tabela Smart View z wybraną przez użytkownika wartością "62824" komórki dla części wspólnej (Year, Sales, Market, Actual, Cola)

zwraca raport drążenia skrośnego, uwzględniający elementy najniższego poziomu wymiaru "Market", którymi w tym przypadku są stany. Wszystkie wartości ściągnięte z kolumny DIMENSION_MARKET z systemu źródłowego będą rekordami zawierającymi nazwy stanów.


Raport z drążenia skrośnego z rekordami dla wszystkich elementów najniższego poziomu (stany) wymiaru "Market", ujawniający łączną wartość sprzedaży równą 62824

Raport drążenia skrośnego został pomyślnie zweryfikowany, ponieważ wartość w komórce, z której wykonano drążenie, jest równa wartości (62824) stanowiącej podsumowanie mapowanej kolumny w raporcie drążenia skrośnego.

Zapytanie, które jest używane przez Essbase do skonstruowania powyższego raportu drążenia skrośnego, ma następującą postać:

SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR 
"YEAR_PARENT" = 'Qtr4' OR 
"YEAR_PARENT" = 'Qtr1' OR 
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR 
"DIMENSION_MARKET" = 'New York' OR 
"DIMENSION_MARKET" = 'Oklahoma' OR 
"DIMENSION_MARKET" = 'California' OR 
"DIMENSION_MARKET" = 'Florida' OR 
"DIMENSION_MARKET" = 'Washington' OR 
"DIMENSION_MARKET" = 'Utah' OR 
"DIMENSION_MARKET" = 'Iowa' OR 
"DIMENSION_MARKET" = 'New Mexico' OR 
"DIMENSION_MARKET" = 'Massachusetts' OR 
"DIMENSION_MARKET" = 'Texas' OR 
"DIMENSION_MARKET" = 'Illinois' OR 
"DIMENSION_MARKET" = 'Colorado' OR 
"DIMENSION_MARKET" = 'Connecticut' OR 
"DIMENSION_MARKET" = 'New Hampshire' OR 
"DIMENSION_MARKET" = 'Missouri' OR 
"DIMENSION_MARKET" = 'Louisiana' OR 
"DIMENSION_MARKET" = 'Ohio' OR 
"DIMENSION_MARKET" = 'Wisconsin' OR 
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'