• Increase font size
  • Default font size
  • Decrease font size

Strumieniowe bazy danych

W ramach poniższego artykułu przedstawiono krótki opis problemów badawczych związanych ze strumieniowymi bazami danych.

Relacyjny model danych

W latach 80 Edgar F. Codd opublikował założenia tzw. Modelu relacyjnego. Przedstawiony model reprezentacji i przetwarzania danych uznano jako model uniwersalny. Oznacza to, że za pomocą zdefiniowanych w ramach tego modelu operacji i struktur istnieje możliwość opisania, przedstawienia i zaimplementowania dowolnego systemu przetwarzania danych. W oparciu o relacyjny model danych powstał szereg deklaratywnych języków zapytań1 z rodziny SQL. Języki te zaimplementowano wewnątrz komercyjnych i otwartych systemów zarządzania danymi.

Dzięki przedstawionej formalizacji powstał przemysł producentów systemów zarządzania danymi. Kilku największych producentów oprogramowania skupiło się na produkcji systemów baz danych. W przypadku wielu firm produkcja systemów zarządzania danymi stanowi podstawowy profil działalności (np. ORACLE). Inni producenci oprogramowania wydzielili znaczące zasoby mając na celu produkcję i utrzymanie systemów zarządzania danymi (IBM, Microsoft).

Komercyjne rozwiązania systemów zarządzania danymi implementują szereg metod mających za zadanie utrzymanie, zabezpieczenie oraz sprawne dostarczenie przechowywanych danych. Opracowane i opublikowane metody utworzyły kanon powszechnie stosowanych rozwiązań. Przedstawione metody indeksowania danych, poziomy izolacji transakcji, postacie normalne oraz typowe zapytania SQL stanowią opublikowaną i udokumentowaną w literaturze naukowej bazę wiedzy dla programistów i projektantów systemów zarządzania danymi.

Rozwiązania strumieniowe

Począwszy od roku 2001 w literaturze naukowej pojawiły się pierwsze prace wskazujące na potrzebę przedstawienia rozwiązań alternatywnych w stosunku do modelu relacyjnego. Postawione zadanie okazało się skompilowane, ponieważ przyjęty i ugruntowany model relacyjny uznano za uniwersalny. Potrzebę istnienia i zastosowania alternatywnego modelu danych poparto specyficznym przypadkiem użycia – systemem monitorującym. W przypadku wydzielonej klasy systemów monitorujących podstawowym źródłem danych jest teoretycznie nieograniczony w czasie zbiór danych – tzw. strumień danych.

O ile relacyjne systemy zarządzania danymi przewidziano do zarządzania wszystkimi zgromadzonymi danymi, o tyle w przypadku systemów strumieniowych i monitorujących analizowane i przetwarzane są głównie dane bieżące. Gromadzenie i przechowywanie wszystkich rejestrowanych danych w systemie monitorującym stanowi błąd projektowy i powoduje powstanie zbędnych kosztów związanych z koniecznością zakupu kosztownych zasobów programowych i sprzętowych. Dlatego do celów rejestracji strumieni danych w systemach monitorujących typowe relacyjne bazy danych nie znajdują zastosowania2.

Metody porównawcze

Przedstawiona hipoteza zakłada konieczność zastosowania alternatywnego modelu danych w systemach monitorujących. Została ona poparta przypadkiem użycia za pomocą unormowanego testu wydajności – tzw. Liniowego Testu Drogowego (Linear Road Benchmark). Liniowy test drogowy przedstawia typowy model danych spotykany w systemach monitorujących. Test modeluje ruch zbioru pojazdów w hipotetycznym mieście zarządzany przez system sygnalizacji drogowej. Celem przedstawionego testu jest empiryczny dowód faktu że implementacja rozwiązania z zastosowaniem relacyjnego systemu zarządzania danymi na tych samych zasobach sprzętowych nie jest możliwa na tyle efektywnie jak przy zastosowaniu rozwiązania strumieniowego. Należy jednak podkreślić że jawne testowanie produktów komercyjnych jest znacząco utrudnione gdzyż wiodący producenci oprogramowania stosują klauzule licencyjne dla Klientów uniemożliwiające publikowanie i prowadzenie testów porównawczych. (dyg. Stosowaną metodą obejścia w/w klauzuli jest zastąpienie w tekście publikacji nazwy producenta systemu zarządzania danymi symbolem X)

W oparciu o tą hipotezę w literaturze naukowej przedstawiono szereg rozwiązań strumieniowych systemów zarządzania. Podjęto kilka znaczących prób implementacji. Po kilku latach badań i dyskusji zaprezentowano jedno komercyjne rozwiązanie i szereg rozwiązań badawczych.

Rozwiązanie komercyjne

Znanym w środowisku naukowym rozwiązaniem komercyjnym jest system Streambase. System był rozwijany w ramach zespołu skupionego wokół profesora Michael Stonebraker z uczelni MIT. Profesor Stonebraker był jednym z twórców podstaw systemu Ingres oraz Postgres. Po ukończeniu prac studyjnych, opublikowaniu szeregu artykułów przedstawiono gotowy produkt dostępny dla Klientów. Pierwotne przeznaczenie systemu – to system zarządzania danymi dla potrzeb analizy finansowej. Jednak z czasem pojawiły się prace opisujące zastosowanie systemu w prowadzeniu działalności wywiadowczej, telekomunikacyjnej, handlu elektronicznego oraz gier on-line. Wszystkie wspomniane zastosowania łączy wewnętrzny model systemu monitorującego.

Zapytania wprowadza się do systemu poprzez graficzny interfejs użytkownika, przedstawiając wprost plan realizacji zapytania. W dostępnych wersjach systemu pominięto implementację języka deklaratywnego. Wprowadzone operacje realizowane są na napływających strumieniach danych. Wiele operacji zakłada konieczność odrzucania niektórych danych – nie jest to system deterministyczny ani podlegający wymogom czasu rzeczywistego.

Implementacja języka deklaratywnego

Inne podejście zaprezentowano w ramach prac prowadzonych na czelni Stanford pod kierownictwem pani profesor Jenifer Widom. W ramach badań przedstawiono system STREAM. Nazwisko pani profesor przewija się w wielu znanych publikacjach związanych z podstawami baz danych. W ramach przedstawionych prac i dostępnego systemu rozszerzono istniejący relacyjny system zarządzania danymi o moduł strumieniowy. Opracowano rozszerzenie języka SQL o operatory strumieniowe. Opublikowane i przedstawione rozwiązanie spełnia wymogi jednak nie podjęto wysiłku mającego na celu komercjalizacji osiągniętych wyników badawczych. Niestety większość osób związanych z projektem zakończyła studia na wydziale informatyki uniwersytetu Stanford broniąc i kończąc pracę badawczą oraz nie podejmując dalszych prób i badań własnych z analizowanego zakresu strumieniowych baz danych.

Obecnie dostępne oraz opublikowane wyniki prac badawczych dotyczący strumieniowych systemów zarządzani danymi dotyczą rozwiązań niedeterministycznych, skupionych na analizie konkretnego rodzaju strumieni danych. Chodzi o strumienie danych w których dane napływają w różnych, losowych odstępach czasu. Przedstawiony Liniowy Test Drogowy zawęża obszar porównania do systemów w których dane z czujników napływają w sposób losowy. Rozwiązania implementujące tego typu schemat danych z reguły dysponują wbudowanymi procedurami odrzucania nadmiarowych danych – tzw. Operatory filtrów losowych.

System dla potrzeb przetwarzania sygnałów – prowadzone badania.

Prowadząc badania i prace projektowe z zakresu medycznych systemów monitorujących, dostrzeżono konieczność ciągłego gromadzenia i przetwarzania danych z urządzeń medycznych. Z początku strumieniowe systemy zarządzania danymi przedstawiały się jako idealny środek na zaspokojenie potrzeb medycznego systemu monitorującego. Niestety wprowadzone metody przetwarzania danych oparte na rachunku prawdopodobieństwa oraz przyjęte założenia na rejestrowany model danych uniemożliwiają proste zastosowanie istniejących systemów zarządzania strumieniami danych w systemach medycznych.

Podstawowa różnica polegała na tym że dane w systemach medycznych nie mogą zostać utracone. Jeśli nawet dojdzie do utraty danych – ta informacja musi zostać odnotowana i a utrata jawnie zaprezentowana. Dodatkowo dane te są dostarczane w postaci nieopracowanych sygnałów biomedycznych. Wymagane jest ich przetworzenie, unormowanie, usunięcie szumu i wartości przypadkowych – a to oznacza konieczność implementacji filtrów sygnałowych. Okazuje się że podobne wymogi stawiane są przed systemami przemysłowymi. Urządzanie rejestrujące zdarzenia, np. wpłaty, wypłaty nie mogą zignorować żadnej z napływających danych. Tego typu wymogi sugerują konieczność zaprezentowania alternatywnego rozwiązania strumieniowego. Być może w celu podkreślenia różnic i przewidzianego zastosowania konieczne w niedalekiej przyszłości będzie przedstawienie go jako „sygnałowego systemu zarządzania danymi”.

Opracowana i przedstawiona algebra wyprowadzona na bazie teorii liczb w oparciu o którą przedstawiono szereg operatorów oraz język zapytań jest na tyle odmienna od przedstawionych na świecie rozwiązań strumieniowych, że stanowi podstawę odrębnego systemu zarządzania danymi przeznaczonego do obsługi innej klasy systemów monitorujących. Chodzi o systemy w których nie jest dopuszczalna utrata danych, a napływające informacje dostarczane są okresowo w zdefiniowanych oknach czasowych. Tego typu specyfikacja odpowiada systemom twardego czasu rzeczywistego.

Stosunkowo niedawno okazało się że prowadzone prace z zakresu przetwarzania danych przy pomocy GPU, mogą w znaczący sposób wpłynąć na efektywność realizacji planów zapytań. Stanowi to znaczące udogodnienie i argument w dyskusji pomiędzy zwolennikami kanonu relacyjnego a jednostkami badawczymi poszukującymi rozwiązań alternatywnych.

Michal Widera, 6.6.2010

Przypisy

1 Określenie język deklaratywny opisuje grupę języków w których nie zapisuje się w sposób jawny algorytmu realizacji zadania a jedynie definiuje sposób dostępu do danych. Właściwe zadanie realizacji zapytania spoczywa na barkach systemu zarządzania danymi.

2 Producenci baz danych poszukiwali metod zapisu strumieni danych, np. Strumieni wideo. W tym celu przygotowano szereg rozszerzeń relacyjnych baz danych, jednak zaproponowane rozszerzenia dotyczyły jedynie metod efektywnego składowania danych pomijając aspekt analizy przetwarzanych i gromadzonych informacji.

 

Uwagi

Dla celów komercjalizacji przejęto następujące domeny internetowe dla potrzeb dystrbucji projektowanego systemu strumieniowego: querystream.com, streamquery.com, streams.pl, streams.com.pl

 

 

Naszą witrynę przegląda teraz 10 gości