[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

Aplikacje analityczne - jaka architektura

poziomek

7/3/2007 8:46:00 PM

Jest sobie produkt, aplikacja analityczna z alg. data mining.
Aplikacja posiada cechy hurtowni danych. Cala logika liczenia
poszczegolnych modulow znajduje sie w SQLu w procedurach skladowanych,
po przeliczeniu agregatow dane sa zasysyane przez serwer OLAP (MS
Analysis Services) . Warstwa prezentacji to MS Reporting Services ew.
Excel & Pivot table. I teraz mam pytania:
1. Logika siedzie w procedurach skladowanych ze wzgledu na wydajnosc,
algorytmy opieraja sie na operacjach bazodanowych stad wiadomo
najszybciej zrobi to serwer bazy danych. Obliczenia niektorych modulow
moga trwac nawet kilkanascie/kiladziesiat godzin.
Zastanawiamy sie JAK sie uwolnic od balastu trzymania logiki w SQLu?

Co jest powodem zmian architektury w stos. do biezacego rozwiazania:
1. srodowisko programowania w SQL i charakterystyka aplikacji stwarza
problemy z testowaniem algorytmow
2. czasami ograniczenia SQL staje sie denerujace, vide modul
zarzadzania obliczen poszczegolnych procesow az sie prosi wyniesc do
warstwy wyzej z jakim jezykiem obiektowym an pokladzie.

Pytania: znacie jakeis rozwiazania aplikacji analitycznych, ktore nei
trzymaja logiki w bazie i maja zadawalajaca wydajnosc?
Mozecie cos polecic?

SPecyfika wiekszosci algorytmow jest opracaowana aktualnie stricte pod
katem operacji na tabelach, nie bardzo widze jak to w Javie
zaprogramowac bez sciagania milionow rekordow do warstwy aplikacji(to
odpada wydajnosc siadzie).

Zastanawialem sie wstepnei nad Gigaspaces ale na dzien dobry wydaje mi
sie ze to zla droga, Gigaspaces zaklada ze masz problem , ktory da sie
zatomizowac i podzielic na male kawalki i ze kazda taka paczka posiada
swoj zestaw danych. No wlasnie to dzielenie danych na male paczki
wydaje mi sie bezsensowne jak w aplikacji mam milion klientow i ich
tarnsakcje to sie robi koszmar jak mam policzyc jakies statystyki
(statystyki per client). Tzn obawiam sie ze skonczy sie to znowu
przewalanim setek Gigabajtow danych z bazy do serwerow liczacych.

Any idea?

4 Answers

poziomek

7/3/2007 8:51:00 PM

0

On 3 Lip, 22:46, poziomek <pozio...@gmail.com> wrote:
> Jest sobie produkt, aplikacja analityczna z alg. data mining.
> Aplikacja posiada cechy hurtowni danych. Cala logika liczenia
> poszczegolnych modulow znajduje sie w SQLu w procedurach skladowanych,
> po przeliczeniu agregatow dane sa zasysyane przez serwer OLAP (MS
> Analysis Services) . Warstwa prezentacji to MS Reporting Services ew.
> Excel & Pivot table. I teraz mam pytania:
> 1. Logika siedzie w procedurach skladowanych ze wzgledu na wydajnosc,
> algorytmy opieraja sie na operacjach bazodanowych stad wiadomo
> najszybciej zrobi to serwer bazy danych. Obliczenia niektorych modulow
> moga trwac nawet kilkanascie/kiladziesiat godzin.
> Zastanawiamy sie JAK sie uwolnic od balastu trzymania logiki w SQLu?
>
> Co jest powodem zmian architektury w stos. do biezacego rozwiazania:
> 1. srodowisko programowania w SQL i charakterystyka aplikacji stwarza
> problemy z testowaniem algorytmow
> 2. czasami ograniczenia SQL staje sie denerujace, vide modul
> zarzadzania obliczen poszczegolnych procesow az sie prosi wyniesc do
> warstwy wyzej z jakim jezykiem obiektowym an pokladzie.
>
> Pytania: znacie jakeis rozwiazania aplikacji analitycznych, ktore nei
> trzymaja logiki w bazie i maja zadawalajaca wydajnosc?
> Mozecie cos polecic?
>
> SPecyfika wiekszosci algorytmow jest opracaowana aktualnie stricte pod
> katem operacji na tabelach, nie bardzo widze jak to w Javie
> zaprogramowac bez sciagania milionow rekordow do warstwy aplikacji(to
> odpada wydajnosc siadzie).
>
> Zastanawialem sie wstepnei nad Gigaspaces ale na dzien dobry wydaje mi
> sie ze to zla droga, Gigaspaces zaklada ze masz problem , ktory da sie
> zatomizowac i podzielic na male kawalki i ze kazda taka paczka posiada
> swoj zestaw danych. No wlasnie to dzielenie danych na male paczki
> wydaje mi sie bezsensowne jak w aplikacji mam milion klientow i ich
> tarnsakcje to sie robi koszmar jak mam policzyc jakies statystyki
> (statystyki per client). Tzn obawiam sie ze skonczy sie to znowu
> przewalanim setek Gigabajtow danych z bazy do serwerow liczacych.
>
> Any idea?

Aha oczywiscie statystyki i agregaty per klient to tylko jeden z
przykladow grupowania, oczywiscie sa dziesiatki wyliczonych tabel
faktow dla roznych kombinacji wymiarow. I tak dal przykladu z 4 tabel
zrodlowych mozemy miec 10 tabel z agregatami w zaleznosci od
kombinacji samych miar dla ktorych chcemy pogrupowac wyniki..

edx

7/4/2007 5:38:00 AM

0

poziomek napisa3(a):
>
> Any idea?
>
Np. w PostgreSQL mo?esz napisac logike w procedurach sk3adowych w wielu
jezykach w3?czaj?c w to obiektowy python, mo?esz wo3ac równie?
zewnetrzn? logike przez mechanizm SPI w C/C++.
Je?eli dane s? tekstowe i ich jest du?o i zamierzasz robia korelacje
s3ów to polecam projekt glimpse.

Edward

poziomek

7/4/2007 6:13:00 AM

0

On 4 Lip, 05:37, edx <e...@aster.pl> wrote:
> poziomek napisal(a):
>
> > Any idea?
>
> Np. w PostgreSQL mozesz napisac logike w procedurach skladowych w wielu
> jezykach wlaczajac w to obiektowy python, mozesz wolac równiez
> zewnetrzna logike przez mechanizm SPI w C/C++.
> Jezeli dane sa tekstowe i ich jest duzo i zamierzasz robic korelacje
> slów to polecam projekt glimpse.
>
> Edward

Dziekuje za pomoc, jednak raczej nei w tym keirunku chcemy isc, kiedys
w przyszlosci chcemy sie uzniezaleznic od danego dostawcy bazodanowego
ale zalózmy ze w tej chwili to nie jest najwyzszy priorytet.

Myslalem osobiscie o Javie (J2se) i jakims podejsciu do aplikacji
analitycznych ale nei chce uprzedzac kogos jakas moja wizja co do
której an dzien dzisiejszy sam sie odnosze krytycznie i szukam
informacji o tym jak to robia inni. Ci duzi wyjadacze rynku OLAP
etc...

Wracajac do moijej 1szej wizji, chcialem napisac powiedzmy aplikacje
standalione w Javie która komunikuje sie z serwerem bazodanowym i
wysyla mu porcje kodu SQL do wykonania, ale tak naprawde oprócz
skomplikowania calej dzisiejszej architektury to niewiele bym zyskal.
Tak czy siak logika by siedziala w SQLu mialbym tylko warstwe Dao &
Factory do latwego dopisywania wersji kodu na kolejne serwery
bazodanowe (dialekty SQL). Hmmm wiecej pracy niz korzysci a z
debugowaniem kodów SQLowych (to nas dzisiaj boli dosc mocno) nei
zrobilibysmy jakiegos postepu. No nic moze ktos cos ciekawego podpowie
nakierunkuje itp... Albo powie gdzie szukac informacji o implementacji
architekturze systemow OLAP pisanych przez takich gigantów jak
Microstrategy itd... itp....



cut

7/4/2007 8:39:00 PM

0


"poziomek" <poziomek@gmail.com> wrote in message
news:1183529595.911994.132840@k79g2000hse.googlegroups.com...
On 4 Lip, 05:37, edx <e...@aster.pl> wrote:
> poziomek napisa³(a):
>
> > Any idea?
>
> Np. w PostgreSQL mo¿esz napisac logikê w procedurach sk³adowych w wielu
> jezykach w³±czaj±c w to obiektowy python, mo¿esz wo³ac równie¿
> zewnêtrzn± logikê przez mechanizm SPI w C/C++.
> Je¿eli dane s± tekstowe i ich jest du¿o i zamierzasz robiæ korelacjê
> s³ów to polecam projekt glimpse.
>
> Edward

|Dziêkuje za pomoc, jednak raczej nei w tym keirunku chcemy i¶æ, kiedy¶
|w przysz³o¶ci chcemy sie uzniezale¿niæ od danego dostawcy bazodanowego
|ale za³ó¿my ze w tej chwili to nie jest najwy¿szy priorytet.

------------------------

Po pierwsze, "uniezale¿niæ" i optymalizacja rzadko id± w parze.

Je¿eli macie SQL Server 2005 to mo¿ecie napisaæ procedury sk³adowane w
osobnej dll w C# (.net). W takim jêzyku ³atwiej manipuluje siê danymi ni¿ w
SQL.

Z drugiej strony co¶ mi siê wydaje, ¿e to co implementujecie w procedurach
sk³adowanych powinno byæ wykonywane wewn±trz mechanizmów SQL Servera
(Integration Services+Analysis Services). Ale moge sie myliæ.

andrew