Gestion des événements métiers avec StreamInsight

Preview:

DESCRIPTION

Gestion des événements métiers avec StreamInsight. Lionel Barre Architecte Sword Service sa. 14/15 Avril 2010. Pascal Varenio Business Analyst Centrics Consulting sa. Sociétés. - PowerPoint PPT Presentation

Citation preview

22

Gestion des événements métiers avec StreamInsight

Lionel BarreArchitecteSword Service sa

Pascal VarenioBusiness AnalystCentrics Consulting sa

14/15 Avril 2010

33

Sociétés

Centrics Consulting SA est une société de conseil stratégique et de conseil en organisation pour les entreprises et collectivités publiques

www.centrics.eu

Sword Service SA est une société de service informatique spécialisée dans les domaines de l’ECM, de la BI et du SIGFournisseur de solutions

logicielles GRC et SIG

www.sword-group.com

44

Plan

Introduction LPrésentation de système CEP PIntroduction architecture LDémonstration LMise en place d’un projet CEP PConclusion

CEP = Complex Event Processing

55

Plateforme fiable et montée en charge

Efficacité IT & Developpeurs BI en libre service

PowerPivot Report Builder 3.0 Master Data Services

Gestion Multi-Serveur enrichie Virtualisation & Live Migration Deploiement accéléré de la

couche d’accès aux données

Sécurité d’entreprise, montée en charge

Complex Event Processing Support des dernières

innovations hardware

Parallel DataWareHouse

Plateforme de données complète et intégrée

SGBDR dans le cloud

Programmation & Outil similaire à SQL Server

Auto-Administration, hautement disponible

Support MPP pour les DWH de plus de 100To

Appliances hautement scalable

Integré avec Microsoft BI

66

Streaminsight

• StreamInsight n’est certes pas une révolution technologie dans le domaine du CEP.

• Le challenge : Stocker des milliards d’événements dans SQL Server dans le cadre d’une application CEP.

• Quelles applications : Fraude financière, process industriels, distribution d’électricité, mesure d’audience Web, contrôle d’accès.

77

Streaminsight

• Microsoft prépare son arrivée sur le marché des plates-formes de CEP (Complex Event Processing) avec un logiciel de traitement des événements à faible latence.

• Sa version commerciale est attendue pour 2010, le logiciel fait en effet partie de SQL Server 2008 R2.

• Microsoft joue les synergies avec:1. SQL Server pour le stockage des événements, 2. .NET et Visual Studio pour la programmation. 3. On pourra définir les requetes sur les événements du systèmes en C#,

Linq. 4. interconnectée à Biztalk pour faire intervenir le moteur CEP au sein

des processus métier.

88

Streaminsight

• Pour y parvenir, Microsoft a doté StreamInsight d’un kit de développement d’adaptateur.

• Kit qui va permettre aux partenaires de créer de la valeur ajoutée sur ce moteur CEP et une réutilisation des composants.

• Il n’empêche, un moteur de CEP qui devient un composant de SQL Server, c’est un signe de banalisation du CEP s’il en est !

99

Plan

Introduction Présentation de système CEP PIntroduction architectureDémonstrationMise en place d’un projet CEPConclusion

CEP = Complex Event Processing

1010

Streaminsight

• Définition:

• Complex Event Processing (CEP) is the continuous and incremental processing of event streams from multiple sources based on declarative query and pattern specifications with near-zero latency.

• Continuous• Incremental• Multiple source• Declarative query• Latency -> 0

1111

IntroductionDifférentes sortes d’événements

Déte

ction

d’

évén

emen

ts

méti

er

processus

Observation, surveillance fonctionnelle

Gran

d no

mbr

e d’

évén

emen

ts

(mes

ures

, …)

Evén

emen

t méti

er

(ale

rte,

…)

Vue fonctionnelle d’événements techniquesrécupérés à partir de sondes réparties

Business Activity Monitoring (BAM)SQ

L Se

rver

20

08 R

2 St

ream

Insig

ht

BizTalk Server 2009 orchestration

1212

CEP - Problématique

Analyse de (plusieurs) flux d’évènements continus dans le but d’en extraire une information pertinenteExemple :

Calcul d’agrégation et détection de seuil en continuCorrélation de flux Détection de pattern

Particularités :Débit potentiellement élevéLatence de détection faibleFlux potentiellement infiniDétection basée sur des fenêtres temporelle

Temps

1313

CEP – Example Calcul d’agrégation basé sur une fenêtre

HoppingWindow

Tumbling

Snapshot

Step 10mn

Step 1hour

1414

CEP : Exemples

Capteurs, prédiction de pannesIndustrie, Télémetrie (ex : flux de circulation, ascenseur,

car2car, surveillance de chaines de production) …Web : profiling dynamique (Click Stream)Détection de fraudeTrading algorithmique

1717

Plan

Introduction Présentation de système CEPIntroduction architectureDémonstrationMise en place d’un projet CEPConclusion

CEP = Complex Event Processing

1818

StreamInsight ?

La solution StreamInsight est entièrement basée sur le framework .NetOutils de développement Visual Studio .NetUne solution StreamInsight est composée de 3 types d’éléments simples développés en .Net1. Un ou plusieurs adaptateurs d’entrée (InputDapaters) récupère des

données brutes et les transforme en flux ou évènement StreamInsight

2. Des requêtes LINQ qui appliquent la logique métier en retraitant les évènements envoyés par les InputAdapters (agrégation, filtrages)

3. Un ou plusieurs adaptateurs de sortie (OutputAdapters) qui fournissent le résultats des requêtes à des terminaux de consultation

1919

CEP : StreamInsight

CEP Engine

Output Adapters

Input Adapters

Event

Standing Queries

Evts sources Evts cibles

`

Matériel, Capteurs

Serveurs Web

BD, stockage d’événements

Bourse, flux RSS

Event

Event

Event

Event

Event

Event

C_ID C_NAME C_ZIP

BD, stockage d’événements

SMS, station de surveillance

Tableaux de bord, SharePoint

Application de pilotage

Event

Event

CEP Application at Runtime

Données de référence statique

IDE

.NETC#

LINQDéveloppeur

2020

Events

Trois types d’évènementsEvènements de type ponctuelEvènements intervalles de durée fixeEvènements intervalles de durée initialement inconnue

Données associées aux évènementsValeurs fixesDes valeurs ajoutées et définies par l’utilisateurDéterminé par le type d’évènement

2121

Types d’évènements

Les évènements StreamInsight sont définis par des Types de données .NetLes évènements peuvent définir plusieurs champs de donnéesCertains champs proviennent du RunTime StreamInsight

TimestampsAnd Metadata

EnterGate(DateTime)

LaneID (int)

VehicleType(int)

TagID(string)

… … … … …

2222

Flux d’évènements

Caractéristiques générales d’un fluxSérie d’évènements éventuellement infinieTypes multiples

Insertion nouvel enregistrementChangement de durée d’un évènement existant

Motifs d’arrivéeRythme régulier (Avec indication de fin de flux)Par Intermittence (aléatoire ou rafale)Arrivée déclassée

2323

Réceptivité des requêtes

StreamInsight garantie une sortie identique quel que soit l’ordre d’arrivée des évènementsDifficile d’atteindre une bonne réceptivité de requêtesCTI (Current Time Element)

Inséré dans le fluxIndique l’achèvement jusqu’à un timestamp (sans l’inclure)

2424

Adapters

Entrée (source) et sortie (sink) configurableTypés (données prédéfinies)Generic (données déterminées au binding de la requête)Méthodes

Gestion des évènements et des fluxPropriétées

Indique les fonctionnalités des adaptateurs au runtime

2525

Moteur de requête

Héberge les requêtes activesLes opérateurs consomment et produisent des fluxLes requêtes peuvent être chaînéesLes résultats de requêtes sont calculés en séquence

Gère les instances de requêtesDémarrageArrêtRecueillir les statistiques du runtime

2626

Modèle de requêtes

Requêtes écrites avec LINQPermet la réutilisation de logique dans plusieurs instances de

requêtes

Typiquement fournit l’intelligence de toute application StreamInsightPermet l’extention avec du code .Net

2727

Dévelopement d’une applicationStreamInsight

Modélisation des évènement

Creation d’Adapters

Création de modèles de requêtes

Chaîner les modèles de requêtes

Démarrage/Arrêt des requêtes

2828

Eléments de requêtes

ProjectionFiltrageJointuresUnionsAgrégationsEvent WindowsHopping Window, Tumbling WindowSnapshot Window

2929

Eléments de requêtes: Projection

Création d’un nouveau flux à partir d’une sélection de champs d’un premier fluxPossibilité de créer un nouveau type ou référencer un type existant

Utilisation d’assignation de champs (Constructeurs interdits)Possibilité d’appliquer des calculs aux données

// New typevar queryProject = from c in Test1EventStream1 select new { i = c.i * 2, f = c.f * 2 };// Existing typevar realValueStream = from e in InputStream select new MeterWattage { wattage =

(double)e.Consumption / 10 };

3030

Eléments de requêtes: Filtrage

Restriction des évènements du flux de sortie correspondantPropagation des évènements si l’évaluation de la clause where est vrais

var queryFilter = from c in someStream where c.i > 10 select c; var filteredStream = from e in ratioStream where e.id == 2 select e;

3131

Eléments de requêtes: Jointures

Corrélations d’évènements provenant de différents fluxSupporte inner joins, equijoins, cross joins

Vérification du chevauchement des intervalles de tempsVérification des conditions de jointures

var equiJoin = from e1 in stream1 join e2 in stream2 on e1.i equals e2.i select new { e1.i, e1.j, e2.j }; var crossJoin = from e1 in stream1 from e2 in stream2 where e1.i > 3 && e2.j < 10 select new { e1.i, e2.j };

3232

Eléments de requêtes: Union

Combinaison d’évènements de plusieurs flux en un seul fluxPeut être utilisé en cascade pour faire l’union de plus de deux flux

// Union of two streamsvar unioned = stream1.Union(stream2); // Union of three streamsvar unionTmp = stream1.Union(stream2);var unionFinal = unionTmp.Union(stream3);

3333

Eléments de requêtes: Agrégation

Agrégations supportéesAvgSumCountMinMax

Calculé sur les évènements d’une fenêtre de tempsNe peut être appliquée qu’à des fenêtre temporelles

3434

Eléments de requêtes: Fenêtres d’évènements

Permet le calcul sur les évènements pendant un intervalle de tempsLes opérations suivantes sont permises sur une fenêtre de

temps:AgrégationTopKOpérateurs définit par l’utilisateur

Les fenêtres sont temporellesNe modifie pas les évènements sous-jacents

3535

Eléments de requêtes: Fenêtre mobile

Saut dans le temps d’une durée fixeDéfini par la durée de la fenêtre et durée du sautLes opérateurs s’appliquent à l’ensemble des évènements à l’intérieur de la fenêtre

3636

Eléments de requêtes: Fenêtre mobile

Spécifier l’intervalleSpécifier la taille du saut

var snapshotAgg = from w in inputStream.HoppingWindow (TimeSpan.FromHours(1), TimeSpan.FromMinutes(10)) select new { sum = w.Sum(e => e.i) };

3737

Eléments de requêtes: variante de la fenêtre mobile

Version simplifiée de la hoppingWindowLa durée de la fenêtre et du saut sont identiques

var snapshotAgg = from w in inputStream.TumblingWindow (TimeSpan.FromHours(1)) select new { sum = w.Sum(e => e.i) };

3838

Eléments de requêtes: Fenêtre instantanée

Défini par le début et la fin des évènements dans le fluxPas de grille à durée définiePas de paramètres dans la définition de la fenêtre

3939

Eléments de requêtes: Fenêtre instantanée

Pas de paramètresPeut spécifier des règles d’entrée/sortie

var snapshotAgg = from w in inputStream.Snapshot() select new { sum = w.Sum(e => e.i) };

4040

Eléments de requêtes: fenêtreRègles d’entrée/sortie

Transformation de TimestampsContrôle ou modifie le comportement standard des agrégationsActuellement ne permet que le découpage des heures de début et de fin

WindowInputPolicy inputPolicy = new WindowInputPolicy(WindowInputPolicy.ClipKind.ClipBoth);HoppingWindowClipOutputPolicy outputPolicy = new HoppingWindowClipOutputPolicy( HoppingWindowClipOutputPolicy.ClipKind.WindowEnd);DateTime alignment = new DateTime(TimeSpan.FromHours(12).Ticks, DateTimeKind.Local); var result1 = from w in inputStream.TumblingWindow( TimeSpan.FromHours(12), alignment, inputPolicy, outputPolicy) select new { Count = w.Count() };

4141

Plan

Introduction Présentation de système CEPIntroduction architectureDémonstrationMise en place d’un projet CEPConclusion

CEP = Complex Event Processing

4242

Démo : Surveillance d’autoroutes

Autoroutes principales8 files2 directions6 points de mesureTypes de véhicules

VoitureBusCamionAmbulanceTaxi

4343

Séquence des Points de mesure

Mesures multiples par véhiculeCapture par puce électroniqueMesure de vitesseDétermination du type de véhicule

4848

Plan

Introduction Présentation de système CEPIntroduction architectureDémonstrationMise en place d’un projet CEP PConclusion

CEP = Complex Event Processing

4949

Projets cibles

Changer sa vision

Database Applications Event-driven Applications

Query Paradigm

Ad-hoc queries or requests

Continuous standing queries

Latency Seconds, hours, days Milliseconds or less

Data Rate Hundreds of events/sec Tens of thousands of events/sec or more

5050

Projets cibles

Basculer d’une vision reporting à une vision temps réel

Pourquoi : Un de vos services ne peut plus se contenter de reporting à J +1, nous sommes complémentaires à la BI.

Comment : En identifiant un domaine visible, avec un avantage chiffrable en terme financier , qualitatif ou de maîtrise de risques.

5151

Logistique & Energie• Limite de stock pour un produit• Retard de production • Panne sur un système • Position GPS de véhicules• Suivi RFID d’objets• Flux de consommation• Equilibrage de charge

Projets cibles

5252

Telecom • Pannes ou surcharge de réseau• Suivi de parcours web• Anomalie et fraude• Optimisation geomarketing

Projets cibles

5353

Finance Limites client et alerte SMSRisques établissement, produit, secteurOpérations anormalesCorrélation employés et activitéAML, Market Abuse, KYP, KYC

Projets cibles

5555

Santé et Assurance • Prestation Tarmed • Montants et durées «anormaux»• Patient au contentieux• Détection de Germes et pandémies• Sécurité à domicile

Projets cibles

5656

Mise en place d’une architecture et d’un savoir faire.

• Ce premier projet doit poser les bases en terme de savoir faire.

• Penser à la capitalisation et à l’extensibilité de notre périmètre.

• Nécessité d’architecturer les flux de la solution afin de respecter les besoins en terme de performance.

• Mise en place de test de plausibilité sur les règles.

Démarche

5757

• Latence : quel temps de réaction voulons nous ?

• Events / Sec : quel volume en terme de transactions à la seconde

• Timeframe : Quelle est la période d’analyse

• Archive : Que doit-on archiver pour démontrer la pertinence

• Analyse des systèmes existants afin de s’assurer de l’interopérabilité.

Pré-requis

5858

Plan

Introduction Présentation de système CEPIntroduction architectureDémonstrationMise en place d’un projet CEPConclusion

CEP = Complex Event Processing

5959

L’analyse de streaming doit s’appuyer sur des solutions simples et économiquement viables.

SQL Server 2008 R2 vous apporte tous les composants nécessaires.

Conclusion

6060

Merci

Recommended