56

Gestion des événements métiers avec StreamInsight

  • Upload
    elaine

  • View
    31

  • Download
    1

Embed Size (px)

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

Page 1: Gestion des événements métiers avec  StreamInsight
Page 2: Gestion des événements métiers avec  StreamInsight

22

Gestion des événements métiers avec StreamInsight

Lionel BarreArchitecteSword Service sa

Pascal VarenioBusiness AnalystCentrics Consulting sa

14/15 Avril 2010

Page 3: Gestion des événements métiers avec  StreamInsight

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

Page 4: Gestion des événements métiers avec  StreamInsight

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

Page 5: Gestion des événements métiers avec  StreamInsight

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

Page 6: Gestion des événements métiers avec  StreamInsight

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.

Page 7: Gestion des événements métiers avec  StreamInsight

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.

Page 8: Gestion des événements métiers avec  StreamInsight

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 !

Page 9: Gestion des événements métiers avec  StreamInsight

99

Plan

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

CEP = Complex Event Processing

Page 10: Gestion des événements métiers avec  StreamInsight

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

Page 11: Gestion des événements métiers avec  StreamInsight

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

Page 12: Gestion des événements métiers avec  StreamInsight

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

Page 13: Gestion des événements métiers avec  StreamInsight

1313

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

HoppingWindow

Tumbling

Snapshot

Step 10mn

Step 1hour

Page 14: Gestion des événements métiers avec  StreamInsight

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

Page 16: Gestion des événements métiers avec  StreamInsight

1717

Plan

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

CEP = Complex Event Processing

Page 17: Gestion des événements métiers avec  StreamInsight

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

Page 18: Gestion des événements métiers avec  StreamInsight

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

Page 19: Gestion des événements métiers avec  StreamInsight

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

Page 20: Gestion des événements métiers avec  StreamInsight

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)

… … … … …

Page 21: Gestion des événements métiers avec  StreamInsight

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

Page 22: Gestion des événements métiers avec  StreamInsight

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)

Page 23: Gestion des événements métiers avec  StreamInsight

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

Page 24: Gestion des événements métiers avec  StreamInsight

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

Page 25: Gestion des événements métiers avec  StreamInsight

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

Page 26: Gestion des événements métiers avec  StreamInsight

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

Page 27: Gestion des événements métiers avec  StreamInsight

2828

Eléments de requêtes

ProjectionFiltrageJointuresUnionsAgrégationsEvent WindowsHopping Window, Tumbling WindowSnapshot Window

Page 28: Gestion des événements métiers avec  StreamInsight

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 };

Page 29: Gestion des événements métiers avec  StreamInsight

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;

Page 30: Gestion des événements métiers avec  StreamInsight

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 };

Page 31: Gestion des événements métiers avec  StreamInsight

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);

Page 32: Gestion des événements métiers avec  StreamInsight

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

Page 33: Gestion des événements métiers avec  StreamInsight

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

Page 34: Gestion des événements métiers avec  StreamInsight

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

Page 35: Gestion des événements métiers avec  StreamInsight

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) };

Page 36: Gestion des événements métiers avec  StreamInsight

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) };

Page 37: Gestion des événements métiers avec  StreamInsight

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

Page 38: Gestion des événements métiers avec  StreamInsight

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) };

Page 39: Gestion des événements métiers avec  StreamInsight

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() };

Page 40: Gestion des événements métiers avec  StreamInsight

4141

Plan

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

CEP = Complex Event Processing

Page 41: Gestion des événements métiers avec  StreamInsight

4242

Démo : Surveillance d’autoroutes

Autoroutes principales8 files2 directions6 points de mesureTypes de véhicules

VoitureBusCamionAmbulanceTaxi

Page 42: Gestion des événements métiers avec  StreamInsight

4343

Séquence des Points de mesure

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

Page 43: Gestion des événements métiers avec  StreamInsight

4848

Plan

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

CEP = Complex Event Processing

Page 44: Gestion des événements métiers avec  StreamInsight

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

Page 45: Gestion des événements métiers avec  StreamInsight

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.

Page 46: Gestion des événements métiers avec  StreamInsight

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

Page 47: Gestion des événements métiers avec  StreamInsight

5252

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

Projets cibles

Page 48: Gestion des événements métiers avec  StreamInsight

5353

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

Projets cibles

Page 50: Gestion des événements métiers avec  StreamInsight

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

Page 51: Gestion des événements métiers avec  StreamInsight

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

Page 52: Gestion des événements métiers avec  StreamInsight

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

Page 53: Gestion des événements métiers avec  StreamInsight

5858

Plan

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

CEP = Complex Event Processing

Page 54: Gestion des événements métiers avec  StreamInsight

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

Page 55: Gestion des événements métiers avec  StreamInsight

6060

Merci

Page 56: Gestion des événements métiers avec  StreamInsight