Sybase i hurtownie danych

Sybase IQ to całkowicie samodzielne podejście do architektury hurtowni danych.

Sybase IQ to całkowicie samodzielne podejście do architektury hurtowni danych.

Relacyjne bazy danych SQL przypominają trochę zwariowany supermarket. Czy można sobie wyobrazić znalezienie czegokolwiek w sklepie samoobsługowym, w którym produkty są ułożone według producentów? Aby znaleźć długopis, trzeba przejrzeć cały sklep, wybrać wszystkie długopisy do koszyka, a następnie posegregować je na podstawie ich cech i dopiero dokonać zakupu. Dokładnie tak działa relacyjna baza danych. Za pomocą zapytania SQL wybieramy (najczęściej do roboczej tabeli) wszystkie rekordy spełniające jeden z warunków, a następnie dokonujemy ich selekcji według innych cech. Podobnie jak zakupy w tym sklepie, taka metoda wyszukiwania w bazie jest mało efektywna. Wyszukiwanie można przyśpieszyć przez zrównoleglenie operacji (idziemy do sklepu całą rodziną). Ma to jednak sporo wad, nawet jeśli nie uwzględniać kosztów wieloprocesorowego systemu komputerowego. W supermarketach już dawno zrozumiano, że produkty muszą być ułożone na półkach według ich kategorii, a nie producenta. To klient jest ważny, nie zaś wygoda dostawcy.

Relacyjne bazy danych znakomicie sprawdzają się w zastosowaniach polegających na dodawaniu i uaktualnianiu kolejnych rekordów, tj. w typowych operacjach transakcyjnych np. przy wprowadzaniu faktur, inwentaryzacji, prowadzeniu ewidencji osób czy pojazdów itp. W tych zastosowaniach większość operacji uaktualniania i wyszukiwania danych wymaga znalezienia jednego rekordu.

Relacyjne bazy danych nie nadają się jednak do zastosowań wspomagania podejmowania decyzji, wymagających wyszukiwania dużej liczby rekordów. Poszukiwanie zależności między danymi w bazie wymaga pobierania ogromnej liczby rekordów pogrupowanych według określonych pól. Gdyby dane w bazie były pamiętane w kolejności tych właśnie poszukiwanych cech, można by je było odczytywać z dysku znacznie szybciej - znajdowałyby się bowiem w sąsiedztwie. Wymaga to jednak zupełnie innej organizacji zapamiętywania danych.

Sybase IQ

Nowy serwer baz danych - Sybase IQ - jest przeznaczony do zarządzania danymi w hurtowniach danych. Pamiętanie danych jest optymalizowane pod kątem wyszukiwania danych, a nie zapisywania, które wykonuje się jako operację grupową dla wielu rekordów. Sybase IQ posługuje się nadal językiem SQL w celu operowania danymi, chociaż firma Sybase wbudowała specjalistyczne API dostępu do danych (jednak na razie niedostępne dla programisty).

Sybase IQ ma architekturę wielowątkową, wykorzystującą efektywnie wątki unixowe i wiele procesorów sprzętu SMP.

Zasadniczą cechą wyróżniającą IQ od innych serwerów baz danych jest sposób pamiętania danych. Spostrzeżenie, że w zastosowaniach decyzyjnych dane są pobierane kolumnami, stało się podstawą architektury serwera Sybase IQ. W bazach relacyjnych dane zapamiętywane są rekordami w blokach dyskowych (w jednym bloku zwykle mieści się kilka rekordów). Pobierając rekord, otrzymujemy nie tylko dane, które nas interesują, ale także wiele danych zbędnych. W Sybase IQ dane zapamiętywane są kolumnami; jedna kolumna może zajmować wiele bloków dyskowych. Upraszcza to znacznie pobieranie danych, gdyż zabiera się je z kolejnych bloków dysku, a więc bez konieczności przesuwania głowicy. Ponadto Sybase IQ pobiera tylko te dane, które są potrzebne do analizy.

W tym sposobie podziału danych do pamiętania osiąga się także znaczne oszczędności przestrzeni dyskowej. Każda kolumna zawiera dane jednego typu, może być więc łatwo dopasowana do rozmiaru bloku na dysku. Administrator, zamiast typowego dla tradycyjnej bazy rozmiaru bloku wynoszącego 2 kB, może zastosować bloki 64 kB lub więcej, pobierane w jednej operacji dyskowej.

Kombinacja "pionowego" podziału danych na dysku, lepszego wykorzystania przestrzeni dyskowej i dużych rozmiarów bloków pozwala na pobranie nawet miliona rekordów podczas jednej operacji dyskowej. Jest to szczególnie przydatne podczas wykonywania operacji agregacji (sumowania) danych. Baza relacyjna, biorąc kolejne rekordy danych, nie jest w stanie wykonywać operacji dynamicznego sumowania (na bieżąco). Z tego powodu w hurtowni często tworzy się wstępnie dodatkowe tablice zawierające dane zagregowane. W Sybase IQ agregowanie danych jest łatwą czynnością, wykonywaną podczas operacji dyskowej.

Dynamiczne agregowanie danych oszczędza miejsce na dysku, zmniejsza liczbę potrzebnych operacji dyskowych, a więc zwiększa szybkość przetwarzania danych. Dynamiczne sumowanie danych pozwala także na dopasowanie sposobu sumowania (tygodniami, miesiącami, latami) w samym zapytaniu; nie potrzeba już ograniczać się do sięgania jedynie po dane wstępnie przygotowane przez administratora bazy (projektanta systemu).

Indeksowanie bitowe

Indeksowanie bitowe to technika szybkiego wyszukiwania danych na dysku za pomocą ich reprezentacji w postaci ciągu bitów. Jeżeli jakaś kolumna bazy, zawierającej milion rekordów, może mieć tylko pięć wartości (np. "poniżej 20", "od 20 do 30", "od 30 do 40", "od 40 do 60", "powyżej 60"), to wybraną wartość da się dokładnie zlokalizować za pomocą pięciu indeksów bitowych (a nawet czterech, bo piąty jest kombinacją logiczną pozostałych indeksów) o długości miliona bitów każdy. W pierwszym indeksie 1 będą miały tylko te bity, w których rekord bazy odpowiada wartości "poniżej 20". Metoda indeksowania bitowego nadaje się do stosowania tylko do tych kolumn, które mają mały zbiór dopuszczalnych wartości (cardinality), gdyż dla każdej wartości jest potrzebny oddzielny plik indeksowy. Indeksy bitowe na ogół nie są stosowane w kolumnach mających więcej niż 50 wartości.

Sybase zastosował opatentowaną technikę indeksowania bitowego Bit-Wise i inne metody zmniejszania liczby indeksów dla kolumn, które mogą mieć do 1000 różnych wartości. Dla operacji porównywania w IQ stosuje się także wstępnie połączone indeksy przyśpieszające pobieranie danych z dwóch lub więcej kolumn.

IQ nie nadaje się do zastosowań transakcyjnych, natomiast przedstawiciele firmy Sybase twierdzą, że zastosowane zapamiętywanie danych kolumnami, kompresja miejsca na dysku i indeksy bitowe powodują, że zapytania typowe do zastosowań w hurtowniach danych są wykonywane przez tę bazę 10-100 razy szybciej niż przez relacyjną bazę danych.

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

TOP 200