StreamInsight - Analiza danych w ruchu

Post on 21-Jun-2015

208 views 2 download

Transcript of StreamInsight - Analiza danych w ruchu

ZdjęcieWłodzimierz Bielski

Microsoft StreamInsightAnaliza danych w ruchu

CTO, BImasters

wlodzimierz.bielski@action.com.pl

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