Analiza - zrób sobie sam

Microsoft oferuje wiele różnych narzędzi przeznaczonych do tworzenia rozwiązań analitycznych. Nie ma co prawda gotowego pakietu analitycznego - jednak dostarcza wiele modułów, które mogą posłużyć niezależnym wytwórcom oprogramowania do tworzenia rozwiązań realizujących różnorodne analizy.

Microsoft oferuje wiele różnych narzędzi przeznaczonych do tworzenia rozwiązań analitycznych. Nie ma co prawda gotowego pakietu analitycznego - jednak dostarcza wiele modułów, które mogą posłużyć niezależnym wytwórcom oprogramowania do tworzenia rozwiązań realizujących różnorodne analizy.

Patrząc na współczesny standard komputerów biurowych nie można pozbyć się wrażenia, że w zasadzie dorównują one mocą wielu małym i średnim serwerom sprzed kilku czy kilknastu lat. Tak więc przeciętny pracownik biurowy ma do dyspozycji całkiem rozbudowaną maszynę, zdolną do wykonywania złożonych operacji - także rozbudowanych analiz. Warto podkreślić, że liczba przetwarzanych danych przez zwykłe firmy wcale nie rosła w takim tempie, w jakim wzrastała moc komputerów. To oznacza, że typowy użytkownik komputera jest w stanie z danymi zrobić wielokrotnie więcej niż dawniej. Także za pomocą podstawowego pakietu biurowego, jakim jest MS Excel.

Excel od zawsze był wygodnym narzędziem do przeprowadzania analiz. Z wersji na wersję rosła liczba dostępnych funkcji, rozbudowywane były mechanizmy tworzenia - najpierw makr, a potem rozbudowanych funkcji w Visual Basic For Application. Najnowsza wersja, będąca częścią Office System 2003, zawiera bardzo ciekawą możliwość - pisania tzw. code behind w .Net - podobnie jak ma to miejsce w ASP .Net. Wtedy Excel staje się wyrafinowanym narzędziem do prezentacji i wprowadzania danych - zaś sama analiza może być wykonywana przy użyciu dowolnego kodu .Net.

Specjalny pakiet Visual Studio for Office (dodatek do VS .Net) zawiera specjalne wzorce i szablony pozwalające na tworzenie tego typu rozwiązań, a także wyczerpującą dokumentację.

Oprócz tego na stronach Microsoft dostępnych jest wiele rozmaitych szablonów czy arkuszy dodatkowych zawierających kolejne funkcje analityczne. W ten sposób użytkownik otrzymuje gotowe rozwiązania, które mogą ułatwić mu stworzenie własnego "arkusza analitycznego".

Również dla Excela dostępne jest jeszcze jedno dosyć ciekawe rozwiązanie - KDCalc. Jest to pakiet, który na podstawie zwykłego arkusza (tj. - bez kodu .Net) pozwala wygenerować plik wykonywalny. Innymi słowy - ktoś przygotowuje arkusz, który wykonuje założone analizy, a następnie taki arkusz przekształcany jest w pełnoprawny "plik wykonywalny" (dla .Net i Javy), czyli samodzielną aplikację niewymagającą później obecności Excela. Równocześnie można wygenerować odpowiednie biblioteki i traktować arkusz Excela jako sposób wyrażenia logiki biznesowej. Jest to dosyć ciekawy pomysł - dlatego że na pewno wygodniej jest przetestować pewne niuanse procesów przy użyciu wygodnego arkusza, by potem "automatycznie" przenieść to do pisanej aplikacji. Jedyna zmiana, jaka pojawi się w środowisku Excela, to specjalny projektant, który pozwala na łatwe generowanie plików KDC (zawierających logikę), a także specjalny mechanizm, który pozwala stworzyć stronę ASP .Net czy JSP (jest ona potrzebna do wprowadzenia niezbędnych parametrów, tak aby arkusz mógł zacząć obliczenia).

KDCalc nie jest w 100% zgodny z Excelem - obsługuje ponad 250 funkcji. Jednak nie ma ograniczeń na wielkość arkusza kalkulacyjnego, jak ma to miejsce w samym Excelu. Co ciekawsze - dostępna jest metoda ProcessXML, która pozwala przekazać do takiego skompilowanego arkusza żądanie za pośrednictwem usługi Web Services. Producent oferuje także kontrolki siatki pozwalające zbudować GUI przypominające Excela.

Gdy mowa o Excelu, należałoby jeszcze wspomnieć o komponencie (a w zasadzie motorze DOLAP - Desktop OLAP) PivotTable, realizującym funkcję tzw. tabeli przestawnej. Jest to część Excela, Accessa czy Office Web Komponent. Z jednej strony jest to pełny motor, który potrafi wygenerować lokalnie kostkę OLAP (tak się dzieje, jeżeli jest analizowany np. lokalny arkusz Excela). Jednak równocześnie komponent PivotTable może dołączać się do serwera analitycznego Server (lub innego, który ma dostępne sterowniki OLE DB) i tam kierować zapytania, zajmując się tylko prezentacją.

Główne narzędzie

Głównym narzędziem służącym do tworzenia rozwiązań analitycznych jest SQL Server. Wersja 2000 zawiera wszystkie podstawowe komponenty służące do tworzenia tego typu rozwiązań - w tym motor relacyjny z opcjami dostosowanymi do tworzenia hurtowni danych, usługi DTS (Data Transformation Services), a także usługi pozwalające transformować informacje oraz mechanizm kostek OLAP do wielowymiarowej analizy.

W SQL Server Analysis Enterprise Edition dostępny jest bardzo przydatny mechanizm writeback. Dzięki temu można przeprowadzić analizę OLAP, a następnie zbadać, "co by było, gdyby", poprzez zmienianie pewnych wartości przetwarzanych przez motor analityczny. Można także tworzyć wymiary, w których pozwala się użytkownikowi na zmienianie wartości wymiaru i analizowanie tego, jak taka zmiana wpływa na wyliczaną kostkę. Przykładowo, można zmieniać wartości określające przynależność do określonych grup regionalnych i np. analizować współczynniki sprzedaży. Podobnie można zmieniać wartości w kostce (np. konkretną wartość, która oryginalnie jest agregatem wyliczonym na podstawie danych bazowych). W ten sposób można bez zmiany samych danych bazowych zasymulować inną sytuację, w jakiej mogłoby znajdować się przedsiębiorstwo (to potencjalne scenariusze typu - co by było, gdyby koszty operacyjne spadły o połowę, a kredyt podrożał o 10%?).

Od strony technologicznej patrząc, SQL Server Enterprise przechowuje w oddzielnej tabeli historię wartości zmian (wraz z informacją o tym, kto zmodyfikował daną pozycję) - tak więc można bez problemu przeprowadzić kilka oddzielnych analiz kostek. Niestety, ta opcja nie jest jednak dostępna w wersji Standard SQL Server.

Bardzo ciekawym przykładem zastosowania kostek OLAP jest Commerce Server. Ten serwer Microsoftu (służący do szybkiego tworzenia rozbudowanych witryn handlu elektronicznego) wszystkie raporty tworzy na podstawie kostek OLAP. Gdy chce się śledzić generowanie raportów aktywności użytkowników, to tak naprawdę sięga się do połączenia odpowiednich kostek. Analogicznie jest w przypadku raportów sprzedaży itd.

Duże zmiany przyniesie następna wersja SQL Server - 2005 (Yukon). O ile motor relacyjny zostanie wzbogacony o wiele nowych możliwości (rozbudowana składnia SQL, możliwość pisania procedur w .Net itp.), o tyle część analityczna będzie tak naprawdę zupełnie nowym produktem - przynajmniej w porównaniu z tym, co było dostępne w wersji 2000.