Adattárolás - megjelenítés
2007. október 22., hétfő by Zoltan Tanczos
"Az Üzleti intelligencia megoldások magukban foglalják tehát az adattárolási, a valós idejű lekérdezési, analitikai, előrejelzési és adatbányászati eljárások modern formáit."Ebben a bejegyzésben az adattárolás, adatokhoz való hozzáférés, és a megjelenítés lehetőségeit szeretném bemutatni Oracle Business Intelligence Challenge 2 Go Enterprise Edition (BIC2G) környezetben.
A BIC2G egy előre telepített, konfigurált üzleti intelligencia csomag, számos kulcsra kész példával, amik közül a Sales History-n (SH) keresztül a legegyszerűbb az alapok bemutatása.
A Sales History adatbázis-séma - mint ahogy a neve is mutatja - értékesítési adatokat tartalmaz különféle termékekre vonatkozóan. A példában ezt egy Oracle 10g adatbázis-szerver tárolja, de tetszőleges ODBC vagy XML adatforrást is választhattunk volna. Az adatbázisban a termékeket a
PRODUCTS
tábla tartalmazza, fontosabb mezők: PROD_ID, PROD_NAME, PROD_CATEGORY, PROD_SUBCATEGORY, ...
, az eladási információkat pedig a SALES
tábla: PROD_ID, CUST_ID, TIME_ID, QUANTITY_SOLD, AMOUNT_SOLD
A fizikai adattárolás és a megjelenítés közötti kapcsolatot az Oracle BI Administration segédprogram segítségével teremthetjük meg:
Például érdekelhet minket az összes eladott termék darabszáma, vagy a különböző vásárlók száma. Ezeket a fogalmakat az Administration Tool segítségével képezhetjük le az adatbázis megfelelő relációira:
SUM(SALES.AMOUNT_SOLD)
és COUNT(DISTINCT SALES.CUST_ID)
.Vagy egy kicsit összetettebb példa lehet az eladott termékek számának százalékos változása az előző hónaphoz képest:
case when sum(SALES.AMOUNT_SOLD) <> 0
and (sum(SALES Mago.AMOUNT_SOLD) = 0
or sum(SALES Mago.AMOUNT_SOLD) is null)
and not sum(SALES.AMOUNT_SOLD) is null
then 100.0
when (sum(SALES.AMOUNT_SOLD) = 0
or sum(SALES.AMOUNT_SOLD) is null)
and (sum(SALES Mago.AMOUNT_SOLD) = 0
or sum(SALES Mago.AMOUNT_SOLD) is null)
then 0.0
when sum(SALES Mago.AMOUNT_SOLD) <> 0
and not sum(SALES Mago.AMOUNT_SOLD) is null
and sum(SALES.AMOUNT_SOLD) is null
then -100.0
else (sum(SALES.AMOUNT_SOLD) - sum(SALES Mago.AMOUNT_SOLD))
* 100.0 / nullif( sum(SALES Mago.AMOUNT_SOLD) , 0)
Az Oracle Answers segítségével reportokat készíthetünk, amiknek az eredményét az interaktív Dashboard felületen tekinthetjük meg: például lekérdezhetjük azon termékeket, amiknek a neve "Mini DV"-vel kezdődik:
Ennél egy fokkal hasznosabb példa lehet az egyes kategóriákban szereplő termékek eladási mennyiségeinek változását egy diagrammon megjeleníteni az elmúlt 12 hónapra vetítve. Ehhez szükségünk van az alábbi megjelenítési rétegbeli fogalmakra: termék kategória (Prod Category), hónap (Calendar Month Name a megjelenítéshez ill. Desc a rendezéshez), eladott mennyiség (Amount Sold), illetve egy szűrőre, ami azt mondja meg, hogy csak az utolsó 12 hónap adataira vagyunk kiváncsiak. Ezt úgy írhatjuk le SQL nyelven, hogy
Calendar."Calendar Month Id" between VALUEOF(maxMonthID)-11 and valueof(maxMonthID)
, ahol a maxMonthID egy ún. Repository Variable, ami az értékét egy függvénytől (Repository Variable Init Block) kapja: select TIME_ID, CALENDAR_YEAR, CALENDAR_MONTH_DESC, CALENDAR_MONTH_ID from TIMES WHERE TIME_ID = (select max(TIME_ID) from SALES)
, azaz azon legutolsó hónap azonosítója, amire van értékesítési adat (a SALES táblában).Ezeket az elemeket az Answers felület Criteria részén pillanatok alatt össze tudjuk kattintani:
Megjelenítésnek egy vonalas Chart-ot választva szemléltethetjük a legjobban az eladási statisztikák alakulását:
A különféle chart-ok (Vertical/horizontal bar, bubble, line, pareto, pie, radar, scatter, area) helyett választhatunk akár szöveges táblázatokat is.