Strumieniowe bazy danych - STREAM: The Stanford Data Stream

Transkrypt

Strumieniowe bazy danych - STREAM: The Stanford Data Stream
Wprowadzenie
STREAM i CQL
Podsumowanie
Strumieniowe bazy danych
STREAM: The Stanford Data Stream Management System
Michał Stochmiałek
<[email protected]>
Michał Stochmiałek
Strumieniowe bazy danych
1/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Plan prezentacji
Wprowadzenie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
STREAM i CQL
Podstawowe założenia
Język CQL
Przykład
Podsumowanie
Michał Stochmiałek
Strumieniowe bazy danych
2/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
Problem
System analizujący ruch sieciowy:
I
I
analiza wszystkich pakietów w wielu podsieciach,
(nieprzerwany strumień danych z wielu źródeł)
podczas analizy wykorzystywany:
I
I
I
zbiór znanych użytkowników (identyfikacja poprzez adresy IP)
dane historyczne, poprzednie analizy
statystyki
I
I
I
I
lista k najbardziej obciążających sieć adresów IP w ostatnich
20min
procentowe wykorzystanie złącza przez klientów w ostatniej
godzinie
analiza sekwencji pakietów
analizy ad hoc
Michał Stochmiałek
Strumieniowe bazy danych
3/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
Jakie rozwiązanie zastosować?
I
zastosowanie DBMS
I
czy ich konstrukcja przewiduje przetwarzanie takiej ilości
danych?
I
rozwiązania połowiczne
I
rozwiązania dedykowane
Michał Stochmiałek
Strumieniowe bazy danych
4/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
Strumienie danych
I
I
ciągły, nieograniczony, zmienny w czasie, dynamiczny
strumień elementów danych
przykłady systemów:
I
I
I
I
monitorowanie i analiza ruchu sieciowego, czy drogowego
logowanie dostępu do serwisów, logowanie kliknięć na stronie
zapis połączeń telefonicznych
analiza finansowa
Michał Stochmiałek
Strumieniowe bazy danych
5/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
DBMS a DSMS
Data Base Management System
Data Stream Management System
I
ulotne (transient) strumienie
(i trwałe relacje)
zapytania wykonywane
w stosunkowo krótkim czasie
I
ciągłe zapytania (continuous
queries)
I
swobodny dostęp
(random access)
I
dostęp sekwencyjny
I
stabilny plan zapytań
I
nieprzewidywalna
charakterystyka danych
I
trwałe (persistent) relacje
I
Michał Stochmiałek
Strumieniowe bazy danych
6/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
STREAM: The Stanford Data Stream Management System
I
projekt rozwijany na Uniwersytecie w Stanford
I
duża ilość publikacji naukowych dotyczących różnych
aspektów DSMS
I
źródła oraz demonstracja na stronie projektu
Michał Stochmiałek
Strumieniowe bazy danych
7/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Problem na przykładzie
Systemy DSMS
Projekt STREAM
Inne projekty
I
Niagara (University of Wisconsin-Madison, the Oregon Health
& Science University)
I
Aurora (Brandeis University, Brown University, and MIT)
I
Telegraph (UC Berkeley’s Computer Science Division)
I
MonaCQ (Instytut Techniki i Aparatury Medycznej, Zabrze)
Michał Stochmiałek
Strumieniowe bazy danych
8/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
STREAM i CQL
Michał Stochmiałek
Strumieniowe bazy danych
9/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Podstawowe założenia
I
czas spełnia bardzo ważną rolę w systemach DSMS
I
czas jest dyskretny i składa się z chwil
τ ∈ T , T = {1, 2, . . . }
I
metafora uderzeń serca
Michał Stochmiałek
Strumieniowe bazy danych
10/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Typy danych
I
strumień - sekwencja uporządkowana czasem. Każdy element
strumienia składa z krotki danych oraz czasu pojawienia się jej
w strumieniu (timestamp)
S = {hs, τ i : s − krotka, τ ∈ T }
I
relacja - tradycyjna relacja bazodanowa, ale z poczuciem
czasu. Funkcja odwzorująca czas na zbiór krotek w danej
chwili τ .
R(τ ) − relacja R w chwili τ
Michał Stochmiałek
Strumieniowe bazy danych
11/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Ogólnikowy schemat działania DSMS
Michał Stochmiałek
Strumieniowe bazy danych
12/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Język zapytań CQL
I
CQL bazuje na języku SQL
I
dodaje pojęcie i interpretację strumienia
I
dodaje operacje na strumieniach
dodaje metody konwersji pomiędzy strumieniami i relacjami
I
I
I
operatory strumień-relacja
operatory relacja-strumień
Michał Stochmiałek
Strumieniowe bazy danych
13/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Operatory strumień-relacja
I
koncepcja przesuwającego się okna (ang. sliding window)
I
ekstrakcja najnowszych danych ze strumienia do postaci relacji
I
okno oparte na czasie
S [Range 40 Seconds], S [Now]
I
okno oparte na ilości krotek
S [Rows 40]
Michał Stochmiałek
Strumieniowe bazy danych
14/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Operatory relacja-relacja
I
język CQL dziedziczy z języka SQL wszystkie operatory
relacyjne
SELECT P.pracownik_id, P.imie, P.nazwisko
FROM wchodzacyDoBudynkuStream [Range 30 Seconds] as W,
pracownicy as P
WHERE W.pracownik_id = P.pracownik_id
Michał Stochmiałek
Strumieniowe bazy danych
15/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Operatory relacja-strumień
I
strumień elementów dodanych IStream - w każdej chwili
do strumienia dodawane są krotki, które zostały dodane w tej
samej chwili do relacji R
I
strumień elementów usuniętych DStream - w każdej chwili
do strumienia dodawane są krotki usunięte w tej samej chwili
z relacji R
I
strumień elementów relacji RStream - w każdej chwili τ do
strumienia dodawane są wszystkie elementy relacji R
Michał Stochmiałek
Strumieniowe bazy danych
16/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Przykład: System naliczający opłaty za autostradę
I
każdy samochód na autostradzie co 30s wysyła informację
o swojej pozycji i prędkości
I
autostrada podzielona jest na odcinki
I
opłata za przejazd jest naliczana tylko gdy dany odcinek jest
zatłoczony
I
odcinek jest zatłoczony, gdy od 5min samochody poruszają się
z prędkością niższą niż 60 km/h.
Michał Stochmiałek
Strumieniowe bazy danych
17/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Przykład: Schemat strumienia danych
predkoscSamochodowStream(samochodId,odcinekId,predkosc)
I
samochodId - identyfikator samochodu
I
odcinekId - identyfikator odcinka autostrady
I
predkosc - aktualna prędkość samochodu
Michał Stochmiałek
Strumieniowe bazy danych
18/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Zapytanie 1: zbiór zatłoczonych odcinków autostrady
I
odcinek jest zatłoczony, gdy samochody od 5min poruszają się
z prędkością niższą niż 60 km/h.
I
wynik: relacja zatloczoneOdcinki(odcinekId)
SELECT odcinekId
FROM predkoscSamochodowStream [Range 5 Minutes]
GROUP BY odcinekId
HAVING AVG(predkosc) < 60
Michał Stochmiałek
Strumieniowe bazy danych
19/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Zapytanie 2: liczba samochodów na autostradzie
I
wysokość opłaty jest zależna od liczby samochodów na
zatłoczonym odcinku
I
samochód opuścił autostradę, jeżeli od 30s nie podał swojej
pozycji
I
wynik: relacja liczbaSamochodow(odcinekId, liczba)
SELECT odcinekId, COUNT(samochodId) as liczba
FROM predkoscSamochodowStream [Range 30 Seconds]
GROUP BY odcinekId
Michał Stochmiałek
Strumieniowe bazy danych
20/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podstawowe założenia
Język CQL
Przykład
Zapytanie 3: wysokość opłaty za autostradę
I
wysokość opłaty obliczamy według wzoru:
bazowaOpłata × (ilośćSamochodów − 150)
I
wynik: strumień oplaty(samochodId, oplata)
SELECT RStream(S.samochodId,
oplataBazowa * (LS.liczba - 150) as oplata
FROM predkoscSamochodowStream [Now] as S,
zatloczoneOdcinki as ZO, liczbaSamochodow as LS
WHERE S.odcinekId = ZO.odcinekId
and ZO.odcinekId = LS.odcinekId
Michał Stochmiałek
Strumieniowe bazy danych
21/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Podsumowanie
I
strumieniowe bazy danych - nowa klasa baz danych
I
strumień danych - ciągły, dynamiczny, zmienny w czasie
napływ nowych danych
I
ciągłe zapytania - zapytania wykonywane często przez cały
okres działania aplikacji opartej na DSMS
Michał Stochmiałek
Strumieniowe bazy danych
22/23
Wprowadzenie
STREAM i CQL
Podsumowanie
Źródła
B. Babcock, S. Babu, M. Datar, R. Motwani, J. Widom,
Models and Issues in Data Stream Systems, czerwiec 2002
The STREAM Group, Stanford Data Stream Management
System, marzec 2003
A. Arasu, S. Babu, J. Widom, The CQL Continuous Query
Language: Semantic Foundations and Query Execution
Michał Stochmiałek
Strumieniowe bazy danych
23/23

Podobne dokumenty