4. Dane strumieniowe
Ile niebieskich samochodów jest na parkingu?
– Idź na parking
– Zlicz pojazdy które:
• Są samochodami
• Mają czerwony kolor
SELECT COUNT(*) FROM ParkingLot
WHERE type = ‘AUTO’ AND color =
‘BLUE’
5. Dane strumieniowe
Ile niebieskich samochodów przejechało
skrzyżowanie Marszałkowskiej i Świętokrzyskiej
w ciągu ostatniej godziny?
– Odstaw wszystkie pojazdy na parking
– Trzymaj je, aż upłynie godzina
– Zlicz pojazdy po upływie tego czasu
To chyba
nie jest
dobry
pomysł
6. Dane strumieniowe
Ile czerwonych samochodów przejechało
skrzyżowanie Marszałkowskiej i Świętokrzyskiej
w ciągu ostatniej godziny?
– Stań przy drodze
– Zliczaj niebieskie samochody na bieżąco
– Podaj odpowiedź po upływie godziny
Analiza danych w ruchu –
Complex Event Processing
7. Zmienna wartość danych w czasie
Lata Miesiące Dni Godz Min Sek
Czas
Wartoś
ć
Analiza trendów
historycznych
Prognozowanie
w przedsiębiorstwach
Analityka webowa,
finansowa, monitoring
8. Drogie i skomplikowane
rozwiązania szyte na
miarę
Complex Event
Processing
Zmienna wartość danych w czasie
Lata Miesiące Dni Godz Min Sek
Czas
Wartoś
ć
Tradycyjne hurtownie
danych
Aktywne hurtownie
danych
9. Porównanie paradygmatów
Aplikacje bazodanowe Aplikacje zdarzeniowe
(CEP)
Model
odpytywania
Zapytania ad-hoc Stale trwające zapytania
Opóźnienie Sekundy, godziny <1 milisekunda
Ilość danych Setki zdarzeń/sekundę Tysiące zdarzeń/sekundę
Semantyka
zapytań
Relacyjna Relacyjna i temporalna
zapytanie
wynik
Strumień
wyjściowyStrumień
wejściowy
zdarzenie
16. Microsoft StreamInsight
• Platforma realizująca mechanizmy CEP
• Analiza w locie danych z różnych źródeł
• Model adapterów – obsługa różnych źródeł
i odbiorców danych
• Deklaratywny język zapytań – LINQ
• Licencjonowany razem z SQL Server
19. Zdarzenie
• Podstawowa jednostka danych StreamInsight
• Korzysta z systemu typów .NET
• Składa się z 2 elementów:
– Nagłowek – typ zdarzenia, znaczniki czasowe
– Zawartość (Payload) – tylko skalarne typy CLR
Timestamps Long
pumpID
String
Type
String
Location
Double
flow
Double
pressure
… … … … … …
20. Modele zdarzeń
• Point – zdarzenie błyskawiczne
Awaria wydarzyła się o 10:23:41
• Interval – znany czas zakończenia
Mecz zaczął się o 20:45, a zakończył się o 22:30
• Edge – początkowo nieznany czas zakończenia
Deszcz zaczął padać o 19:00
EventKind EdgeType StartTime EndTime Payload
INSERT Start
2009-12-27
02:04:00.213
∞ EU-23423-12
INSERT End
2009-12-27
02:04:00.213
2009-12-27
02:04:04.329
EU-23423-12
21. Strumienie
• Strumień (stream) = sekwencja zdarzeń
– zdefiniowany w typach .NET
– potencjalnie nieskończony
– jednokierunkowy
• Strumienie są jednokierunkowe
– od źródła (source) do ujścia (sink)
22. Adaptery (1/2)
• Wejściowe (input adapters)
– Przyjmują zdarzenia z zewnętrznych źródeł
– Otypowane bądź nie
• Wyjściowe (output adapters)
– Przyjmują przetworzone przez serwer zdarzenia
– Przekazują sformatowany wynik do ujścia (sink)
23. Adaptery (2/2)
public class MyAdapter :
TypedPointInputAdapter<MyPayload>
{
public MyAdapter(MyConfig conf)
{ ... }
public override void Start()
{ ... }
public override void Resume()
{ ... }
public override void ProduceEvents()
{ ... }
}
public class MyOutputAdapter :
PointOutputAdapter
{
public MyOutputAdapter(MyConfig
conf)
{ ... }
public override void Start()
{ ... }
public override void Resume()
{ ... }
public override void ConsumeEvents()
{ ... }
}
24. Analiza i przetwarzanie zdarzeń
• Szablony zapytań (query templates)
– Logika biznesowa w LINQ
• Query Instance = Query + Data Sources
– Związanie szablonu z konkretnymi adapterami we/wy
29. Proces tworzenia rozwiązań StreamInsight
• Określenie źródeł i ujść dla strumieni zdarzeń
• Stworzenie adapterów wejściowych
• Stworzenie adapterów wyjściowych
• Implementacja logiki biznesowej w LINQ
• Związanie w czasie wykonania adapterów
i szablonów zapytań
31. Źródła danych
Agregacje
i korelacje
Warianty wdrożenia StreamInsight
Urządzenia
Czujniki
Serwer WWW
FeedyStreamInsigh
t
Złożona analityka
StreamInsight
StreamInsight
StreamInsig
ht
StreamInsig
ht
StreamInsig
ht
StreamInsig
ht
StreamInsight
32. StreamInsight a Integration Services
Źródło StreamInsight
Integration
Services
Wykrycie
nieprawidłowośc
i
Czyszczenie, agregacja,
ładowanie do hurtowni danych
Niepoprawne
zachowanie systemu
źródłowego
33. Edycje StreamInsight w SQL Server 2012
Standard
Business Intelligence
Standard
Web
• <5000 zdarzeń/sekundę
• tolerancja opóźnień >5 s
Premium
Enterprise
Developer
Evaluation
• >5000 zdarzeń/sekundę
• maks. opóźnienie <5 s