Szerepjátszó dimenziók és a semi additive measure-ök

Ha több dátum dimenziónk is van (szerepjátszó dimenziók) és van legalább egy semmi additive measure-ünk (olyanok, amelyekre eltérő aggregációt kell készíteni időben és a többi dimenzióban) akkor az Analysis Services csak az első idődimenzió mentén tud semi additeive-en aggregálni. A második szerepjátszó dimenziót már SUM felösszegzési mód szerint aggregálja. Melyik az első idő dimenzió? Itt le van írva.

Egy nagy kocka vagy sok kicsi - Tervezés

Most, hogy újra elolvastam az „Egy nagy adatkocka vagy sok kicsi - felhasználói élmény” című cikket, eszembe jutott még valami. Írom, hogy az üzleti felhasználók szempontjai miatt érdemes egy nagy kockában gondolkodni, de nem írtam arról, hogy hogyan érdemes nekifogni egy ilyen nagy kocka megtervezésének.

Amit javasolhatok, - és ami nekem bejött az elmúlt tizenx év gyakorlatában - az az, hogy először gondolkodjon sok kis kockában. Tervezzen az adott üzleti problémára adatkockát. Koncentráljon magára az üzleti folyamatra és arra próbáljon meg olyan megoldást adni, amely minden, az adott problémával foglalkozó elemzőnek kielégítő megoldást ad. Később, ha már elég magabiztos üzleti tudással rendelkezik, akkor e kis kockákból össze fogja tudni építeni a nagy kockát is, de ha egyből a nagy kockának ugrana neki, akkor valószínűleg egy olyan ezercsápú szörnyet kapna, amelyet a hardcore üzleti felhasználók sem értenének és a lyukacsossága miatt a teljesítménye is siralmas lenne.

Az MDX Scope utasítás viselkedéséről

A SCOPE MDX utasítás NEM írja felül a kocka tartalmát!

Több mint 12 éve nem írtam egy sor ORACLE Express kódot, de az akkor tanultak olyan mélyen rögzültek, hogy alig tudok elvonatkoztatni tőlük. (Az Express volt az ORACLE OLAP adatbáziskezelője) Express-ben a LIMIT parancs (ami az MDX SCOPE utasítás ORACLE-ös megfelelője) után kiadott értékadás (pl.: Mennyiség = 4) hatására felülírtuk a kocka tartalmát. Ezzel szemben az Analysis Services csak képleteket generál, és kvázi a képlet eredményét jeleníti meg kliens oldalon. Ezzel nincs is probléma, csakhogy ebből következően nincs jelentősége az értékadás sorrendjének. Tehát:

SCOPE A;

THIS = B;

END SCOPE;

SCOPE B;

THIS = 0;

END SCOPE;

Utasítás sorozat eredményeképpen A-ra is és B-re is nullát fogunk visszakapni. Ha ezt meg akarjuk változtatni akkor a FREEZE () utasítással rögzíteni kell az először kiszámított értéket. Mutatom:

SCOPE A;

THIS = B;

FREEZE(THIS);

END SCOPE;

SCOPE B;

THIS = 0;

END SCOPE;

és ebben az esetben A B eredeti értékével lesz egyenlő, B pedig nulla lesz

"Az IT piac csökkenése közben az üzleti intelligencia iránt növekedett a kereslet"

Legalábbis ez derül ki az IDC tanulmányából, mely beszámol arról is, hogy az SAP 1,56 milliárd dolláros bevétellel, 19,5% piacrészesedéssel bír az üzleti intelligencia eszközök szegmensében, és ezzel piacvezető. A többiek bevételeiről, részesedéséről nem szól a cikk.

A teljes cikk „Üzleti intelligencia terén is piacvezető az SAP” címen a prim online-on olvasható