SAS z ludzką twarzą

W wersji 9 środowisko analityczne zyskało nowe, wygodne narzędzia dla analityków i twórców raportów biznesowych - to duża zmiana. Jednocześnie pojawiły się udoskonalenia związane z wydajnością pracy z wielkimi wolumenami danych.

W wersji 9 środowisko analityczne zyskało nowe, wygodne narzędzia dla analityków i twórców raportów biznesowych - to duża zmiana. Jednocześnie pojawiły się udoskonalenia związane z wydajnością pracy z wielkimi wolumenami danych.

Głównym tematem SAS Forum (jeśli spojrzeć na liczbę i zawartość prezentacji) był przegląd rozwiązań biznesowych opartych na motorze SAS.

Ponad 50 prezentacji klientów pokazywało konkretne implementacje, a także różne problemy. Wśród pytań słuchaczy przewijały się kwestie praktycznego wykorzystania wdrożonych rozwiązań oraz doświadczeń wdrożeniowych. Firma wykorzystała SAS Forum, by zaprezentować funkcjonalność środowiska SAS 9. Projektanci położyli w nim nacisk na efektywne pobieranie i ładowanie danych do hurtowni oraz ich szybką wstępną selekcję.

Motor od zaplecza

Na przykład SPDS (wyspecjalizowany serwer do przechowywania hurtowni danych) podczas wykonywania zapytania korzysta ze specjalnego motoru I/O, który współpracuje z wielokanałowym kontrolerem I/O i np. uruchamia wiele wątków, równolegle wybierających dane z dużej tabeli, która w sensie fizycznym jest rozproszona na wiele odrębnych zestawów danych, wiele dysków, czy wręcz wiele oddzielnych macierzy dyskowych. To bardzo się przydaje, gdy motor wykonuje tzw. table scan, czyli gdy nie ma możliwości wyboru danych na podstawie indeksu.

SAS z ludzką twarzą

Nowa wersja SAS Enterprise Guide zawiera ponad 60 różnych predefiniowanych raportów i zadań analitycznych, z których można zbudować dopasowane do potrzeb firmy rozwiązanie SAS.

Motor, który tak naprawdę tylko "wybiera" dane, może inaczej optymalizować zapytania niż klasyczna baza transakcyjna - pomijane są np. blokady czy konieczność bieżącego uaktualniania statystyk. SAS obsługuje zrównoleglone niemal wszystkie "operacje" podsumowujące - typu SUM, FREQ czy NMISS. Od wersji 9 - SPDS jest też częścią tzw. SAS Base, czyli podstawowego zestawu narzędzi SAS Institute.

SAS opracował także tzw. hybrydowy indeks bitmapowy, który łączy najlepsze cechy indeksów opartych na B-tree i BitmapIndex. Aby uaktualnić indeks po zasileniu bazy, nie trzeba już wykonywać dodatkowych operacji - indeksy można aktualizować równolegle z zapisywaniem nowych danych do tabel.

SAS SQL Engine to tylko jeden ze sposobów wykorzystywania SPDS - równocześnie można z danych korzystać bez pośrednictwa języka SQL. SQL w SPDS jest znacznie rozszerzony w stosunku do tego np., co spotyka się w zwykłych bazach, m.in. Oracle czy SQL Server. Niektóre słowa kluczowe są ściśle związane z "podpowiedziami" optymalizacyjnymi, np. jaki zestaw danych przygotować do późniejszego sortowania informacji (połączenie frazy BY i KEEP).

W hurtowni danych dane są aktualizowane w procesie wsadowym.

Jeżeli informacje zawierają dane o czasie wystąpienia zdarzenia, SPDS tworzy wirtualną tablicę, w której dzieli dany okres, tworząc porcje (slots), które potem są usuwane w kolejności "od najstarszego" - w miarę napływania nowych danych.

SQL Planner (optymalizator SQL) potrafi dynamicznie stworzyć tabele tymczasowe potrzebne do wyliczenia zapytania. Warto dodać, że z natury rozwiązań opartych na hurtowniach takie tabele tymczasowe warto przechować dłużej, bo dane nie zmieniają się zbyt często. Konsultanci twierdzą, że SPDS można uruchamiać nawet na serwerze jednoprocesorowym, ale pytanie, czy nie jest to marnowanie jego możliwości, które ujawniają się dopiero przy większej skali. Gdy serwerów działających równolegle jest więcej, motor SAS pokazuje pazury, ale testów niezależnych brak - SAS Institute nigdy nie brał udziału w testach TPC-H.

SAS OLAP Server jest narzędziem przeznaczonym do gromadzenia danych w formie kostek ułatwiających późniejszą analizę. W pełni obsługuje standard OLE DB for OLAP opracowany przez Microsoft i jest szeroko stosowany jako mechanizm komunikacyjny między serwerem OLAP a narzędziami GUI do analizy "ad hoc". OLAP Server obsługuje większość znanych rozwiązań z serwera OLAP. Można tu wymienić np. kompresowanie nieużywanych danych w kostce oraz w buforze. To wsparcie dla koncepcji, w której zapytanie MDX jest optymalizowane w taki sposób, że pobiera więcej danych niż aktualnie potrzeba - wychodząc z założenia, że za chwilę analityk zażąda informacji znajdujących się w "sąsiednich" komórkach.

Uzupełnieniem "zaplecza" systemu SAS 9 jest serwer metadanych, Workspace Server, zarządzający m.in. sesjami i wykonujący kod napisany w języku SAS. Z kolei SAS Stored Process Server to swoisty serwer aplikacyjny kontrolujący predefiniowane procesy dostępne dla różnych aplikacji BI, oferujący narzędzia konfiguracyjne działające w przeglądarce. Co ciekawe, wszystkie serwery zaplecza SAS 9 można połączyć w architekturę przypominającą grid, co pozwala na dosyć elastyczne dobieranie "skalowalności" do potrzeb biznesowych.

Metadane na mapie

Jednym z najciekawszych zagadnień wokół SAS 9 jest zawarte w nim podejście do metadanych. W każdym rozwiązaniu BI pojawia się w pewnym momencie problem z nazwaniem "biznesowych obiektów" i tłumaczeniem ich na "techniczną implementację". Innymi słowy, trzeba w jakiś sposób powiedzieć systemowi jak przechowywana jest np. ilość towaru. W jednym systemie może to być pole w rekordzie bazy, w innym - wynik sumowania. To niby jasne, ale system nie wie, że są to informacje równoważne.

Kolejny problem wiąże się z tym, że analityk nie umie posługiwać się pojęciami biznesowymi - trzeba więc przygotować dla niego taki interfejs, w którym "encje" będą relatywnie proste, np. kwota zlecenia, ilość połączeń na sekundę itp.

Chodzi o to, aby analityk nie musiał wnikać, w której aplikacji te dane są przechowywane, czy jak technicznie można je uzyskać.

Za te wszystkie operacje odpowiada Metadata Server, który jest pośrednikiem pozwalającym nazwać określone algorytmy uzyskiwania informacji, by aplikacje użytkowe odwoływały się do określonych nazw (SAS posługuje się określeniem "Information Maps", czyli mapy informacji), a nie rzeczywistych nazw zasobów lub algorytmów. Algorytmem może być dowolny skrypt SAS, wyrażenie SQL, wyrażenie MDX czy (w ograniczonym zakresie) wyrażenie XPath.

Definiując metadane można też np. wykonać złączenie tabel pomiędzy bazami danych Oracle i MS SQL Server, aby stanowiły one pewną całość. W takim przypadku Metadata Server stara się inteligentnie dokonać operacji, starając się jak najwięcej obliczeń "zlecić" właściwym bazom danych. Jeżeli się to nie udaje - wykonuje je samodzielnie. Konsultanci SAS podkreślają jednak, że ten serwer działa najlepiej, gdy dane są przechowywane w SPDS czy SAS OLAP Server.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200