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
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
1515
Comparaison avec les bases de données relationnellesBase de Données relationnelle
Données statiques
Requêtes dynamiques
SELE
CT…
StreamInsight
Requête statique
from …
Donn
ées d
ynam
ique
s
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
5454
Jeux et Web • Le domaine du jeu massively multiplayer online game • La publicité interactive • Click analysis
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