Upload
wlodek-bielski
View
209
Download
2
Embed Size (px)
Citation preview
ZdjęcieWłodzimierz Bielski
Microsoft StreamInsightAnaliza danych w ruchu
CTO, BImasters
Agenda
ComplexEventProcessing
MicrosoftStreamInsight
StreamInsightw praktyce
ComplexEventProcessing
MicrosoftStreamInsight
StreamInsightw praktyce
Dane strumieniowe
Ile niebieskich samochodów jest na parkingu?– Idź na parking– Zlicz pojazdy które:• Są samochodami• Mają czerwony kolor
SELECT COUNT(*) FROM ParkingLotWHERE type = ‘AUTO’ AND color = ‘BLUE’
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ł
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
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
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
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 temporalnazapytanie
wynik
Strumień wyjściowyStrumień
wejściowy
zdarzenie
Scenariusze zastosowań
Przemysł
Handel i logistyka
Sektor finansowy
Energetykai media
Przemysł
• Odczyt danych z czujników• Reakcja na zdarzenia• Generowanie ostrzeżeń• Ciągła analiza danych w ramach
ustalonego okna czasowego
Energetyka i media
• Inteligentne sieci (smart grid)• Wykrywanie nieuprawnionych podłączeń• Wykrywanie awarii• Analiza stanu sieci
Sektor finansowy
• Automatyczne systemy tradingowe• Szybka wycena kosztów transakcji• Obsługa zleceń online• Zarządzanie ryzykiem• Wykrywanie nadużyć
Handel i logistyka
• Monitoring stanów magazynowych• Wykrywanie nadużyć• Marketing w miejscu sprzedaży
ComplexEventProcessing
MicrosoftStreamInsight
StreamInsightw praktyce
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
Kluczowe składniki StreamInsight
• Zdarzenia (events)• Strumienie (streams)• Adaptery• Analiza i przetwarzanie zdarzeń
Architektura StreamInsight
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 CLRTimestamps
LongpumpID
StringType
StringLocation
Doubleflow
Doublepressure
… … … … … …
Modele zdarzeń
• Point – zdarzenie błyskawiczneAwaria wydarzyła się o 10:23:41
• Interval – znany czas zakończeniaMecz zaczął się o 20:45, a zakończył się o 22:30
• Edge – początkowo nieznany czas zakończenia
Deszcz zaczął padać o 19:00EventKind
EdgeType
StartTime EndTime Payload
INSERT Start2009-12-2702:04:00.213
∞ EU-23423-12
INSERT End2009-12-2702:04:00.213
2009-12-2702:04:04.329
EU-23423-12
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)
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)
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() { ... }}
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
Operatory przetwarzania
• Kalkulacje (PROJECT)• Złączenia (JOIN)• Filtrowanie zdarzeń (FILTER)• Sprawdzanie wystąpienia lub nie (EXISTS)• Partycjonowanie strumieni (GROUP, APPLY)• Agregacje (SUM, COUNT)• Operacje temporalne
Rodzaje okien czasowych (1/2)
Okno skokowe (hopping window)
Czas
Rodzaje okien czasowych (2/2)
Okno rozłączne (tumbling window)
Czas
Wykonywanie zapytań
• Metody zapytania:– Start()– Stop()– Resume()
• Silnik StreamInsight zapewnia:– Wykonanie zapytań– Przetwarzanie zdarzeń– Obsługę błędów
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ń
ComplexEventProcessing
MicrosoftStreamInsight
StreamInsightw praktyce
Źródła danych
Agregacjei korelacje
Warianty wdrożenia StreamInsight
Urządzenia
CzujnikiSerwer WWW
FeedyStreamInsight
Złożona analityka
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight a Integration Services
Źródło StreamInsightIntegration
Services
Wykrycie nieprawidłowości
Czyszczenie, agregacja, ładowanie do hurtowni danych
Niepoprawne zachowanie systemu źródłowego
Edycje StreamInsight w SQL Server 2012
StandardBusiness Intelligence
StandardWeb
• <5000 zdarzeń/sekundę• tolerancja opóźnień >5 s
PremiumEnterpriseDeveloperEvaluation
• >5000 zdarzeń/sekundę• maks. opóźnienie <5 s
Różne dane, jedna platforma
HDInsight
StreamInsight
Big
Data
Pytania
Dziękuję za uwagę
Zapis dzisiejszego webinara zostanie udostępniony do końca tygodnia na stronach: http://ITgeeks.pl
http://edukacja.action.com.pl