Archive for the ‘Adatkocka’ Category

  • CUBE

A csoportosító sorokon kívül még minden megadott csoport és alcsoport szerinti összegző sort ad az eredményhez. A csoportosító tulajdonság NULL értékként szerepel az eredménysorban. Az így kapott ún. kocka dimenziója attól függ, hogy hány csoportosító operandust használunk.

SELECT EmployeeID AS Alkalmazott, ShipVia AS Szállító, SUM(Freight) [Szállítmány Összes]
FROM Orders
WHERE EmployeeID < 3
GROUP BY EmployeeID, ShipVia WITH CUBE

  • ROLLUP

Hasonló összesítésre használható, mint a CUBE, azzal a különbséggel, hogy nem készül el az összes lehetséges összegző sor, hanem csak a hierarchia szerint alacsony szinttől növekedve a csúcsig a csoportosító feltételek megadott sorrendje szerint.

SELECT EmployeeID AS Alkalmazott, ShipVia AS Szállító, SUM(Freight) [Szállítmány Összes]
FROM Orders
WHERE EmployeeID < 3
GROUP BY EmployeeID, ShipVia WITH ROLLUP

Fontos tudnivaló! DISTINCT kulcsszó nem használható együtt a CUBE és ROLLUP paraméterekkel. Együttes használatuk esetén hibaüzenetet kapunk.
Zavaró lehet, ha a lekérdezett adatok között NULL érték található, hiszen a csoportosító sorokat is NULL-ként kapjuk vissza. A megkülönböztetésre használjuk a GROUPING függvényt, amelynek paramétere az adott oszlop, és visszaadott értéke 1, ha az adott sort a CUBE vagy ROLLUP funkció adta az eredményhez, és 0, ha NULL érték van az eredményben.

SELECT CASE WHEN (GROUPING(TitleOfCourtesy) = 1) THEN ‘ALL’ ELSE ISNULL(TitleOfCourtesy, ‘UNKNOWN’)
END AS TitleOfCourtesy,
CASE WHEN (GROUPING(City) = 1) THEN ‘ALL’
ELSE ISNULL(City, ‘UNKNOWN’) END AS City,
COUNT(*)
FROM Employees
GROUP BY TitleOfCourtesy, City WITH CUBE

Forrás: http://www.softwareonline.hu/Article/View.aspx?id=3705

“Egyre jellemzőbb trend, hogy a már meglévő relációs adatbázisok funkcionalitását kibővítik multidimenzionális tárolási lehetőségekkel. Ez lehetőséget ad olyan hibrid architektúrák felépítésére, melyeket alapvetően relációs módszerekkel építünk annak jól skálázható és robosztus tulajdonságai miatt, de kiegészítésként a gyakran használt nézetekre, adatokra építünk multidimenzionális kockákat is, a jóval gyorsabb lekérdezési sebesség miatt.
Az Oracle bár még néhány évig támogatja az Express termékcsaládját, hosszú távon ő is a relációs adatbáziskezelőjébe való beolvasztással tervez. Ugyancsak megjelent a Microsoft SQL Server-ében a multidimenzionális tárolást használó Analysis Services, és a DB2 relációs adatkezelőjébe a 8.1-es változattól ugyancsak beolvasztottak egy MOLAP szervert.
Az architektúra térnyerését jelzi például az eddig kizárólag relációs technikára és relációs adatbáziskezelőkre építkező SAP Business Information Warehouse adattárház terméke, ahol is a 3.0-ás változattól (2002), amennyiben az alatta lévő adatbáziskezelő MSSQL Server Analysis Services, már szintén képes a multidimenzionális tárolási technika alkalmazására.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

A többdimenziós tömb tárolás: A kocka indexeléséhez szokás olyan indexstruktúrát használni, ahol a kocka celláit valamilyen adott algoritmussal sorbarendezzük, majd az indexek sora ennek a sorbarendezésnek felel meg. Ennek legegyszerűbb módja, ha a kocka adott (x1, x2, .. xn) koordinátájú pontjához a kordinátákból alkotott x1 + (x2-1)*|{1.dimenzió elemszáma}|+…+(xn-1)*|{(n-1)..dimenzió elemszáma}| sorszámú indexet rendeljük.
Az indexeket és magát a fizikai tárolóhelyet a háttértárakon előre elkészítjük, így az adatok anélkül írhatóak, hogy az indexstruktúrát módosítani kellene. Ugyanakkor mivel a rendezés egyértelműen azonosítja az adott cellát, nem kell az adatokkal együtt a kulcsokat is eltárolni.

Háromdimenziós kocka celláinak egy rendezése

Háromdimenziós kocka celláinak egy rendezése

Ritka mátrix kezelés: Amennyiben az adatmátrixunk ritka, tehát az adatok a kockán belül szétszórtan helyezkednek el, a kocka a hasznos adat mennyiségéhez képest nagy területet foglalhat el. Ennek oka, hogy az előre felépített indexstruktúra miatt a háttértáron előre helyet kell foglalni a kocka egészének. Sok dimenzió és nagy kiterjedésű dimenziók esetén ez akár oda is vezethet, hogy az adatbázis használhatatlanul naggyá válik. (A konkrét adatok egy becsléséhez ld. 6.ábra.) A ritka mátrix probléma kezelésére egyes multidimenzionális adatbáziskezelők tartalmaznak ún. ritka mátrix algoritmust, amely a kocka szerkezetéből megpróbálja a nem használt részeket kiszűrni, és a nekik fenntartott helyet felszabadítani, így elkerülve a mátrix kezelhetetlen naggyá válását.

A multidimenzionális tárolás korlátai: A már említett ritka mátrix probléma mellett meg kell említenünk még, hogy a strukturális változtatások ebben a modellben rendkívül költségesek. Emellett ezek a rendszerek általában nehezen skálázhatók, nincs általánosan elfogadott szabványuk, minden gyártó saját utakon jár.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

Szeletelés (slicing and dicing):  Slicing alatt a szelekcióhoz hasonlóan azt értjük, mikor adott dimenziót fix értékkel lekötünk, és így nézzük a kocka nézetét, szeletét. Dicing alatt a kocka egy részkockájának kivágását értjük.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

Szelekció (selection, filtering): Ebben az esetben egy adott dimenzió egy adott elemét kiválasztjuk, és a hozzá tartozó adatokat nézzük, a többi adatot pedig figyelmen kívül hagyjuk. Ilyen pl., ha kíváncsiak vagyunk egy konkrét fióküzlet bevételeinek alakulására.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

Pivoting az adatkockában

Posted: december 22, 2010 in Adatkocka, Pivoting

Pivoting: Az adatkocka elforgatását értjük alatta. A kocka felbontása marad, csak a dimenziókat cseréljük fel, ezáltal más nézetét kapva az adatoknak.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

Lefúrás (drill down, roll down): Ennek ellentéte, mikor egyre részletezettebben nézzük az adatokat. Pl. felbontjuk az összesített eladási adatokat termékekre, vagy a havi összesített adatokat lebontjuk napi adatokra.”

Forrás:  Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

Attribútumok: Ebben az esetben attribútum alatt a dimenzió jellemzőit értjük. Például, tekintve a “Vevő” dimenziót, ennek attribútumai lehetnek a vevő címe, számlaszáma, kategóriája, szöveges leírása, és így tovább.”

Forrás: Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

“Aggregáció (roll up): Egy adott dimenziót kihagyunk a felbontásból, azaz a dimenzió elemein végighaladva az adatokat felösszegezzük. Előfordulhat az is, hogy a dimenzió felbontását nem teljesen hagyjuk ki, hanem áttérünk egy kisebb elemszámú hierarchia alkalmazására az adott dimenzióra. (Pl. városok helyett országok szerint nézzük adatainkat)

Aggregált adatok: Aggregált, felösszegzett adatok kezelése MOLAP architektúra esetén akkor sem jár elfogadhatatlan válaszidővel, ha külön nem foglalkozunk összegek tárolásával, mégpedig a gyors adatelérés miatt. Ezen túlmenően előre is definiálhatunk a kockákban aggregációs szinteket, hasonlóképp mint a hierarchiák esetében, ekkor az összegek beépülnek a kockába. Fontos megjegyezni a rendszerek azon hiányosságát, hogy nem lehet aggregált adatokat tárolni dimenziók nem teljes értékkészletével. Például nem megoldható, hogy aggregált adatokat tároljunk csak Gödöllő és Eger adataival. Igaz ugyanakkor az is, hogy a felhasználói lekérdezések ritkán ilyen jellegűek. A dimenzió hierarchiák és az aggregált adatok esetén nyújtott megoldások tulajdonképp az adatok rendundás tárolásához vezetnek. A teljesítmény növelésére használt redundáns tárolás nem csak a MOLAP megoldásokra, hanem általánosan jellemző az adattárházakra, a tárhely-takarékosságról áthelyeződött a hangsúly a kiértékelés gyorsaságára.”

Hierarchia MOLAP megoldása három dimenzió esetén

Hierarchia MOLAP megoldása három dimenzió esetén

Forrás: Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)

“Dimenziók: véges, rendezett lista a dimenziók elemeiről. Fontos, hogy a dimenzióelemek listája jól rendezett legyen.”

“Dimenzió hierarchiák: A dimenziók hierarchikus felépítését úgy kezeljük, hogy a hierarchia csomópontjait elhelyezzük a dimenzióelemek között és összesített adatokat rendelünk hozzá.”

Hierarchia MOLAP megoldása három dimenzió esetén

Hierarchia MOLAP megoldása három dimenzió esetén

Forrás: Sidló Csaba István (http://scs.web.elte.hu/Work/DW/adattarhazak.htm)