Archive

Archive for the ‘Direct Database Request’ Category

Bezpośrednie zapytanie do bazy danych

December 8th, 2009 8 comments

Kilka uwag odnośnie bezpośredniego zapytania. Pisałem już o tym tutaj.

Plusy dodatnie:

1. Daje możliwość połączenia kostek z istniejących już w OBI obszarów zainteresowań z tabelami/widokami/materializowanymi widokami, których nie przewidywaliśmy w ogóle do objęcia BI’jem, oraz co nawet ciekawsze – z obiektami innej bazy danych (poprzez Database Links). Czyli możemy sobie zrobić w jednym zapytaniu klauzulę from tabela, tabela@inna_baza_danych. Bez grzebania w repozytorium.

Przydaje się to w sytuacjach, gdy potrzebujemy zrobić coś na szybko, lub raport jest potrzebny tylko np. jednej osobie do ściśle określonego celu.

2. Można sumować, ale na tabeli przestawnej, na tabeli zwykłej nie można (chodzi mi o podsumowanie całkowite)

3. Można pokolorować kolumny, można zrobić wykres, czyli nasze bezpośrednie zapytanie wygląda całkiem jak poważny raport :)

Oto tabela przestawna z prostego zapytania:

SELECT CALENDAR_YM_NAME,
CALENDAR_YM_DESC,
1 AS ilosc_dni
FROM times
WHERE year = 2009

times to standardowa tabela wymiaru czasu wygenerowana ze skryptu.

bezp

Plusy ujemne:

1. Problem z komentarzami:

SELECT CALENDAR_YM_NAME,
CALENDAR_YM_DESC,
1 AS ilosc_dni
–comment
FROM times
WHERE year = 2009

nie pójdzie …

2. Brak możliwości filtrowania w kryteriach zapytania – w pivocie można w ograniczonym zakresie. Najlepiej posortować sobie wcześniej SQL-em

3. Dla użytkownika, który ma mieć dostęp do wykonywania bezpośrednich zapytań należy dać uprawnienia:

- Wykonywanie bezpośrednich zapytań do bazy danych (w Administrowanie uprawnieniami/Aplikacja Answers)

- Edycja bezpośrednich zapytań do bazy danych (w Administrowanie uprawnieniami/Aplikacja Answers) – jeśli chcemy, żeby użytkownik mógł sam sobie to zapytanie edytować (z tym oczywiście ostrożnie)

- Direct Database Access w Administracji repozytorium: Manage/Security po wybraniu użytkownika(grupy) Permissions ustalamy Allow do odpowiedniej bazy:

bezp1

4. Bywa, że raport się nie uruchamia i niespecjalnie daje się wejść na kryteria żeby zobaczyć SQL-a. Raporty standardowo znajdują się w lokalizacji OracleBIData\web\catalog\XXX\root\shared… w postaci plików w formacie xml. Po skopiowaniu, trzeba zamienić ' na ‘ przy stringach, >= na > itp.

5. Kostki nie powinny mieć typu integer, tylko double oraz nie char tylko varchar – inaczej jest problem z prawidłowym wyświetlaniem wyników. Użycie funkcji cast załatwia sprawę (CAST(expr AS number) da nam double w Answers .

6. Zapytanie bezpośrednie “podpada” pod defaultowe ograniczenie zbyt wielu wyświetlanych wierszy.  Rozwiązanie tu: http://obiee101.blogspot.com/2008/02/obiee-controling-pivot-view-behavior.html (osobiście nie testowałem).

7. Lepiej używać do bezpośrednich zapytań IE, – u mnie w Firefoxie dłuższe SQL-e na zakładce kryteriów czasem ulegają dziwnemu obcięciu – choć samo zapytanie działa – ciekawe.

8. Nie możemy używać tego sposobu pisania zapytań w przypadku baz xml-owych takich jak Sample Sales (dostarczana z systemem). Przynajmniej mi się nie udało …