Implementowanie parametrów dla źródeł danych

Aby uczynić źródła danych bardziej elastycznymi, można zaimplementować w zapytaniu parametry wykonawcze, umożliwiające używanie zmiennych dla źródła danych.

Mogą to być zmienne substytucyjne zdefiniowane w Essbase, parametry wykonawcze zdefiniowane przez kontekst tabeli, gdy użytkownicy narzędzia Smart View drążą skrośnie do zewnętrznych danych, lub funkcje zdefiniowane przez użytkownika, zapisane w zewnętrznym systemie źródłowym.

Planując użycie zmiennych w źródłach danych Essbase, najpierw należy:

  1. Zawrzeć składnię zmiennych w zapytaniu źródła danych. Na przykład zapytanie źródła danych musi w swojej składni zawierać znak ? (znak ? jest elementem zastępczym dla zmiennej, która będzie definiowana w trybie wykonawczym).

  2. Wykonać jedną z następujących czynności:

    • Ustawić w źródle danych dla Essbase stałą wartość parametru domyślnego, która będzie używana jako rezerwowa, gdy zmienna będzie mieć niepoprawny kontekst w trybie wykonawczym, LUB

    • Ustawić zmienną substytucyjną, która będzie używana przez źródło danych
    • Przekazać jako parametr zewnętrzną funkcję zdefiniowaną przez użytkownika (lub procedurę składowaną)

Użytkownik, aby móc definiować źródła danych i implementować dla nich parametry, musi być co najmniej menedżerem aplikacji.

Włączając użycie zmiennych w źródłach danych Essbase, usprawnia się operacje, gdyż jest wówczas wymagane utrzymywanie mniejszej liczby źródeł danych. Implementacja zmiennych w źródłach danych pozwala określać w trybie wykonawczym kontekst zapytania, który będzie stosowany zawsze, gdy użytkownik będzie uzyskiwać dostęp do źródła danych powiązanego z kostką Essbase.

Na przykład rozważmy poniższe przypadki użycia.

  • Menedżer bazy danych nadzoruje cykliczne zlecenie ładowania danych, które co miesiąc ładuje dane do kostki. Teraz, zamiast utrzymywać osobne reguły ładowania dla poszczególnych miesięcy, może w celu załadowania danych w bieżącym miesiącu użyć zmiennej substytucyjnej.

  • Menedżer aplikacji utrzymuje definicje raportów drążenia skrośnego dla różnych przypadków użycia biznesowego. Implementuje zmienne w używanym źródle danych, z którego użytkownicy narzędzia Smart View ściągają dane, wykonując operacje drążenia skrośnego. Dzięki temu menedżer aplikacji musi utrzymywać mniej definicji raportów drążenia skrośnego i z mniejszej ich liczby musi eliminować błędy.

Ustawianie parametru domyślnego w źródle danych

Parametr domyślny należy ustawić w źródle danych, jeśli ma zostać włączone używanie zmiennych w zapytaniach, które Essbase generuje podczas pracy z danymi przechowywanymi na zewnątrz kostki.

Aby ustawić parametr domyślny, należy:

  1. Uzyskać lub utworzyć połączenie z zewnętrznym źródłem danych (na przykład połączenie z bazą danych Oracle).

    Można użyć połączenia globalnego, jeśli takie już istnieje na stronie "Źródła" w interfejsie internetowym Essbase, albo utworzyć połączenie na poziomie aplikacji.

  2. Utworzyć źródło danych związane z połączeniem, które będzie używane w celu uzyskania dostępu do bazy danych Oracle.

    Można zdefiniować źródło danych globalnie, jeśli ma być dostępne dla wszystkich aplikacji, albo można je zdefiniować na poziomie aplikacji.

    1. Aby móc utworzyć globalne źródło danych, trzeba mieć przypisaną rolę administrator usługi. Kliknąć Źródła, kliknąć kartę Źródła danych pod swoją nazwą użytkownika, a następnie kliknąć Utwórz źródło danych.

      Lub, aby móc utworzyć źródło danych na poziomie aplikacji, trzeba mieć przypisaną rolę menedżer aplikacji bądź użytkownik uprzywilejowany wraz z uprawnieniem do zarządzania określoną aplikacją. Na karcie Aplikacje kliknąć nazwę aplikacji. Następnie kliknąć Źródła, kliknąć kartę Źródła danych pod swoją nazwą użytkownika, po czym kliknąć Utwórz źródło danych.

    2. Na etapie Ogólne wybrać w polu Połączenie utworzone połączenie z bazą danych Oracle.

    3. W polu Nazwa wprowadzić nazwę źródła danych.

    4. W polu Zapytanie wprowadzić zapytanie (w tym przykładzie jest używane zapytanie SQL). Aby uczynić je zapytaniem parametryzowanym, trzeba w nim zawrzeć warunek filtrowania (klauzulę WHERE), który mapuje kolumnę relacyjną ze źródła na element zastępczy. Pozycję zmiennej sygnalizuje się w składni zapytania za pomocą elementu zastępczego ?. Jest on używany dla parametru, który zostanie przekazany później.

      select * from SB_DT where DIMENSION_YEAR=?

      Na przykład załóżmy, że w relacyjnej bazie danych występuje pokazana poniżej tabela o nazwie SB_DT. Tabela zawiera kolumnę DIMENSION_YEAR z wartościami reprezentującymi miesiące:
      Tabela relacyjnej bazy danych z wybraną kolumną DIMENSION_YEAR. Wszystkie wartości w tej kolumnie reprezentują miesiące: Jul, Aug, Aug, Sep, Sep, Oct itd.

      Aby do wyboru wartości miesięcy z kolumny DIMENSION_YEAR była używana zmienna, należy w zapytaniu zastosować następującą składnię filtra: where DIMENSION_YEAR=?
      Karta "Ogólne" w kreatorze tworzenia źródła danych. Połączenie: SAMPLE.oracledb_conn, Nazwa: oracledb_ds, Opis: Datasource for Oracle DB, Zapytanie: select * from SB_DT where dimension_year=?

    5. Kliknąć Dalej.

    6. Na etapie Kolumny zastosować odpowiednie typy danych, które to typy Essbase ma wiązać z poszczególnymi kolumnami z relacyjnego źródła danych.

      Na przykład ustawić kolumny liczbowe na typ Liczba zmiennoprzecinkowa (Double) i pozostawić dla kolumn alfanumerycznych typ Napis.


      Karta "Kolumny" w kreatorze tworzenia źródła danych z wybranymi typami danych: "Liczba zmiennoprzecinkowa (Double)" i "Napis".

    7. Kliknąć Dalej.

    8. Na etapie "Parametry" jest tworzony Param1 — parametr ten istnieje, ponieważ na etapie "Ogólne" w zapytaniu został użyty znak ?.

      Należy pozostawić niezaznaczone pole Używanie zmiennych, kliknąć dwukrotnie pole tekstowe pod nagłówkiem Wartość, po czym wpisać wartość domyślną parametru wykonawczego. Podana wartość domyślna będzie używana przez Essbase jako rezerwowa, gdy parametr będzie mieć niepoprawny kontekst w trybie wykonawczym. Ten etap jest ważny, jeśli w definicjach raportów drążenia skrośnego mają być używane parametry wykonawcze.

      Można także zmienić nazwę Param1 na bardziej zrozumiałą w danym przypadku użycia. Na przykład można ją zmienić na param_G_month, aby zasygnalizować, że parametr używa zmiennej globalnej dla bieżącego miesiąca, albo zmienić na param_<nazwaAplikacji>_month, aby zasygnalizować, że parametr używa dla bieżącego miesiąca zmiennej poziomu aplikacji. Dostosowanie nazw parametrów może się okazać pomocne, gdy błędy parametrów są eliminowane za pomocą plików dziennika serwera Essbase.


      Karta "Parametry" w kreatorze tworzenia źródła danych. Pole "Używanie zmiennych" jest niezaznaczone, a w polu "Wartość" wprowadzono Jan.

      Dostosowując parametr, tak aby się odwoływał do zmiennej substytucyjnej, nie trzeba podawać wartości domyślnej. Zob. Używanie zmiennych substytucyjnych w źródle danych.

    9. Kliknąć Dalej.

    10. Na etapie Podgląd widać, że do zapytania został zastosowany parametr domyślny. Wskutek tego podgląd jest wypełniany tylko tymi rekordami z zewnętrznego źródła, w których wartością w kolumnie DIMENSION_YEAR jest Jan.


      Karta "Podgląd" w kreatorze tworzenia źródła danych, na której są wyświetlane tylko rekordy, dla których DIMENSION_YEAR = Jan.

      Mimo że w podglądzie zostały wyświetlone wartości z zastosowanym parametrem domyślnym, to później — gdy w definicji raportu drążenia skrośnego zostaną zaimplementowane parametry wykonawcze — będzie można uzyskać dostęp do większej ilości zewnętrznych danych niż pokazane w podglądzie.

    11. Kliknąć Utwórz, aby utworzyć źródło danych oparte na tym zapytaniu dotyczącym danych z zewnętrznego źródła. Można teraz implementować parametry wykonawcze dla źródła danych.

Używanie zmiennych substytucyjnych w źródle danych

Poniżej opisano, jak utworzyć źródło danych Essbase z zapytania do danych z zewnętrznego źródła, używając zmiennej substytucyjnej, zdefiniowanej w Essbase. Zmienna substytucyjna zapewnia większą elastyczność przy projektowaniu zapytania ściągającego dane ze źródła.

W tym przykładzie użyjemy w Essbase zmiennej substytucyjnej w celu zadeklarowania bieżącego miesiąca. Zamiast aktualizować co miesiąc źródła danych, tak aby były ściągane dane dla bieżącego miesiąca, można pozostawić źródła danych niezmienione, a jedynie aktualizować zdefiniowaną zmienną substytucyjną.

  1. Utworzyć zmienną substytucyjną globalną lub poziomu aplikacji.


    Zmienna substytucyjna tworzona na poziomie aplikacji. Nazwa to "CurrMonth", a wartość to "Aug"

  2. Uzyskać lub utworzyć połączenie z zewnętrznym źródłem danych (na przykład połączenie z bazą danych Oracle).

    Można użyć połączenia globalnego, jeśli takie już istnieje na stronie "Źródła" w interfejsie internetowym Essbase, albo utworzyć połączenie na poziomie aplikacji.

  3. Utworzyć źródło danych związane z połączeniem, które będzie używane w celu uzyskania dostępu do bazy danych Oracle.

    Można zdefiniować źródło danych globalnie, jeśli ma być dostępne dla wszystkich aplikacji, albo można je zdefiniować na poziomie aplikacji.

    1. Na etapie Ogólne wybrać w polu Połączenie utworzone połączenie z bazą danych Oracle.

    2. W polu Nazwa wprowadzić nazwę źródła danych.

    3. W polu Zapytanie wprowadzić zapytanie (w tym przykładzie jest używane zapytanie SQL). Aby uczynić je zapytaniem parametryzowanym, trzeba w nim zawrzeć warunek filtrowania (klauzulę WHERE), który mapuje kolumnę relacyjną ze źródła na element zastępczy. Pozycję zmiennej sygnalizuje się w składni zapytania za pomocą elementu zastępczego ?. Jest on używany dla parametru, który zostanie przekazany później.

      select * from SB_DT where DIMENSION_YEAR=?

      Na przykład załóżmy, że w relacyjnej bazie danych występuje pokazana poniżej tabela o nazwie SB_DT. Tabela zawiera kolumnę DIMENSION_YEAR z wartościami reprezentującymi miesiące:
      Tabela relacyjnej bazy danych z wybraną kolumną DIMENSION_YEAR. Wszystkie wartości w tej kolumnie reprezentują miesiące: Jul, Aug, Aug, Sep, Sep, Oct itd.

      Aby do wyboru wartości miesięcy z kolumny DIMENSION_YEAR była używana zmienna, należy w zapytaniu zastosować następującą składnię filtra: where DIMENSION_YEAR=?
      Karta "Ogólne" w kreatorze tworzenia źródła danych. Połączenie: SAMPLE.oracledb_conn, Nazwa: oracledb_ds, Opis: Datasource for Oracle DB, Zapytanie: select * from SB_DT where dimension_year=?

    4. Kliknąć Dalej.

    5. Na etapie Kolumny zastosować odpowiednie typy danych, które to typy Essbase ma wiązać z poszczególnymi kolumnami z relacyjnego źródła danych.

      Na przykład ustawić kolumny liczbowe na typ Liczba zmiennoprzecinkowa (Double) i pozostawić dla kolumn alfanumerycznych typ Napis.


      Karta "Kolumny" w kreatorze tworzenia źródła danych z wybranymi typami danych: "Liczba zmiennoprzecinkowa (Double)" i "Napis".

    6. Kliknąć Dalej.

    7. Na etapie "Parametry" jest tworzony Param1 — parametr ten istnieje, ponieważ na etapie "Ogólne" w zapytaniu został użyty znak ?. Aby dostosować Param1, tak aby się odwoływał do zmiennej substytucyjnej, kliknąć Używanie zmiennych, po czym wybrać z rozwijanej listy Wartość zmienną substytucyjną.

      Jeśli źródło danych jest tworzone w aplikacji, to do wybrania są dostępne zmienne substytucyjne zarówno globalne, jak i poziomu aplikacji. Nazwy zmiennych poziomu aplikacji zaczynają się prefiksem będącym nazwą aplikacji. Jeśli jest tworzone globalne źródło danych, to do wybrania są dostępne tylko globalne zmienne substytucyjne.

      Można zmienić nazwę Param1 na bardziej zrozumiałą w danym przypadku użycia. Na przykład można ją zmienić na param_G_month, aby zasygnalizować, że parametr używa zmiennej globalnej dla bieżącego miesiąca, albo zmienić na param_<nazwaAplikacji>_month, aby zasygnalizować, że parametr używa dla bieżącego miesiąca zmiennej poziomu aplikacji. Dostosowanie nazw parametrów może się okazać pomocne, gdy błędy parametrów są eliminowane za pomocą plików dziennika serwera Essbase.


      Karta "Parametry" w kreatorze tworzenia źródła danych. Opcja "Używanie zmiennych" jest zaznaczona, a wartość to "Sample.CurrMonth".

    8. Kliknąć Dalej.

    9. Na etapie Podgląd widać, że do zapytania została zastosowana zmienna substytucyjna. Wskutek tego podgląd jest wypełniany tylko tymi rekordami z zewnętrznego źródła, w których wartością w kolumnie DIMENSION_YEAR jest Aug.


      Karta "Podgląd" w kreatorze tworzenia źródła danych, na której są wyświetlane tylko rekordy, dla których DIMENSION_YEAR = Aug.

    10. Kliknąć Utwórz, aby utworzyć źródło danych oparte na tym zapytaniu dotyczącym danych z zewnętrznego źródła.