36
Zdjęcie Włodzimierz Bielski Microsoft StreamInsight Analiza danych w ruchu CTO, BImasters [email protected] l

StreamInsight - Analiza danych w ruchu

Embed Size (px)

Citation preview

Page 1: StreamInsight - Analiza danych w ruchu

ZdjęcieWłodzimierz Bielski

Microsoft StreamInsightAnaliza danych w ruchu

CTO, BImasters

[email protected]

Page 2: StreamInsight - Analiza danych w ruchu

Agenda

ComplexEventProcessing

MicrosoftStreamInsight

StreamInsightw praktyce

Page 3: StreamInsight - Analiza danych w ruchu

ComplexEventProcessing

MicrosoftStreamInsight

StreamInsightw praktyce

Page 4: StreamInsight - Analiza danych w ruchu

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’

Page 5: StreamInsight - Analiza danych w ruchu

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ł

Page 6: StreamInsight - Analiza danych w ruchu

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

Page 7: StreamInsight - Analiza danych w ruchu

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

Page 8: StreamInsight - Analiza danych w ruchu

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

Page 9: StreamInsight - Analiza danych w ruchu

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

Page 10: StreamInsight - Analiza danych w ruchu

Scenariusze zastosowań

Przemysł

Handel i logistyka

Sektor finansowy

Energetykai media

Page 11: StreamInsight - Analiza danych w ruchu

Przemysł

• Odczyt danych z czujników• Reakcja na zdarzenia• Generowanie ostrzeżeń• Ciągła analiza danych w ramach

ustalonego okna czasowego

Page 12: StreamInsight - Analiza danych w ruchu

Energetyka i media

• Inteligentne sieci (smart grid)• Wykrywanie nieuprawnionych podłączeń• Wykrywanie awarii• Analiza stanu sieci

Page 13: StreamInsight - Analiza danych w ruchu

Sektor finansowy

• Automatyczne systemy tradingowe• Szybka wycena kosztów transakcji• Obsługa zleceń online• Zarządzanie ryzykiem• Wykrywanie nadużyć

Page 14: StreamInsight - Analiza danych w ruchu

Handel i logistyka

• Monitoring stanów magazynowych• Wykrywanie nadużyć• Marketing w miejscu sprzedaży

Page 15: StreamInsight - Analiza danych w ruchu

ComplexEventProcessing

MicrosoftStreamInsight

StreamInsightw praktyce

Page 16: StreamInsight - Analiza danych w ruchu

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

Page 17: StreamInsight - Analiza danych w ruchu

Kluczowe składniki StreamInsight

• Zdarzenia (events)• Strumienie (streams)• Adaptery• Analiza i przetwarzanie zdarzeń

Page 18: StreamInsight - Analiza danych w ruchu

Architektura StreamInsight

Page 19: StreamInsight - Analiza danych w ruchu

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

… … … … … …

Page 20: StreamInsight - Analiza danych w ruchu

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

Page 21: StreamInsight - Analiza danych w ruchu

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)

Page 22: StreamInsight - Analiza danych w ruchu

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)

Page 23: StreamInsight - Analiza danych w ruchu

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() { ... }}

Page 24: StreamInsight - Analiza danych w ruchu

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

Page 25: StreamInsight - Analiza danych w ruchu

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

Page 26: StreamInsight - Analiza danych w ruchu

Rodzaje okien czasowych (1/2)

Okno skokowe (hopping window)

Czas

Page 27: StreamInsight - Analiza danych w ruchu

Rodzaje okien czasowych (2/2)

Okno rozłączne (tumbling window)

Czas

Page 28: StreamInsight - Analiza danych w ruchu

Wykonywanie zapytań

• Metody zapytania:– Start()– Stop()– Resume()

• Silnik StreamInsight zapewnia:– Wykonanie zapytań– Przetwarzanie zdarzeń– Obsługę błędów

Page 29: StreamInsight - Analiza danych w ruchu

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ń

Page 30: StreamInsight - Analiza danych w ruchu

ComplexEventProcessing

MicrosoftStreamInsight

StreamInsightw praktyce

Page 31: StreamInsight - Analiza danych w ruchu

Ź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

Page 32: StreamInsight - Analiza danych w ruchu

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

Page 33: StreamInsight - Analiza danych w ruchu

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

Page 34: StreamInsight - Analiza danych w ruchu

Różne dane, jedna platforma

HDInsight

StreamInsight

Big

Data

Page 35: StreamInsight - Analiza danych w ruchu

Pytania

Page 36: StreamInsight - Analiza danych w ruchu

Dziękuję za uwagę

Zapis dzisiejszego webinara zostanie udostępniony do końca tygodnia na stronach: http://ITgeeks.pl

http://edukacja.action.com.pl