
Wat is StreamInsight
Nieuw in SQL Server 2008 R2 is StreamInsight. StreamInsight is Microsoft’s implementatie van Complex Event Processing (CEP). CEP is de techniek van het verwerken en analyseren van grote hoeveelheden events terwijl ze optreden. Events worden dus niet eerst opgeslagen, maar live, ‘in flight’ verwerkt. CEP is throwing data against a query in plaats van throwing a query against data. De queries in CEP zijn geen ad-hoc queries die je af en toe uitvoert maar standing queries: queries die blijven draaien en op data ‘in flight’ werken.
Gevestigde namen op dit voor Microsoft nieuwe gebied zijn oa.:
- Progress – Apama
- IBM – Open ESB
- West Global – Total Insight
- Coral8
- Bristol Technology – SenActive
- GmbH – Real Time Monitoring
- Streambase
- Agent Logic
- Inetco
- Tibco
- Oracle – Fusion Middleware
- Event Zero
- Syndera
- Rulecare
Scenarios voor CEP zijn bijv. de kapitaalmarkt, click-stream analyse van web sites, netwerkbeheer (denk aan telecommunicatie en elektriciteitsnetwerken maar bijv. ook aan het monitoren van het wegennetwerk), fraude detectie (banken, casino’s, etc.), logistiek, enz. Microsoft laat zelf een voorbeeld zien waarin aanbieders live video streams via Silverlight (bijv. NBC bij grote events zoals de komende Olympische Winterspelen) StreamInsight gebruiken om real time inzicht te krijgen in wie er naar een bepaalde stream kijkt, waar kijkers vandaan komen, hoe lang ze kijken, wat de kwaliteit van de streams is, etc.
Microsoft heeft ervoor gekozen StreamInsight als development platform aan te bieden als verlengstuk van het .NET platform. StreamInsight queries schrijf je in LINQ (beter gezegd, de query templates worden in LINQ geschreven; een standing query is een instantie van een in LINQ geschreven query template). Als je iets met StreamInsight wilt doen, moet je dus goed thuis zijn in LINQ. Ook moet je goed thuis zijn in recente versies van C# en het .NET platform. Het afhandelen van veel events, betekent ook het ontstaan van threads in je applicatie. Je moet als StreamInsight ontwikkelaar dus ook goed thuis zijn in threading.
Is StreamInsight Business Intelligence?
Eigenlijk moet je dan vragen: is Complex Event Processing Business Intelligence? Het antwoord daarop lijkt mij “JA”, in bepaalde omstandigheden. We maken soms onderscheid in strategische, tactische en operationele BI. Strategisch als in “waar willen we over 5 jaar naar toe”, tactisch als in “waar willen we volgend jaar naar toe”, operationeel als in “waar willen we morgen naar toe”. Vooral bij die laatste categorie ben je soms zeer geïnteresseerd in het hier en nu. Als het daarbij noodzakelijk is in real time te reageren op wat er nu gebeurt, kan Complex Event Processing een middel zijn. Uiteraard alleen wanneer het “nu” bepaald wordt door duizenden events per seconde.
Het mag duidelijk zijn dat dit binnen het Business Intelligence vakgebied een geheel andere discipline is. Die, wanneer je kiest voor de Microsoft implementatie in de vorm van het splinternieuwe StreamInsight, competenties vereist die veel Business Intelligence ontwikkelaars nu niet hebben: .NET, threading, C# en LINQ.
Referenties
- CEP Industry Forum: http://complexevents.com
- StreamInsight Website: http://www.microsoft.com/sqlserver/2008/en/us/R2-complex-event.aspx
- StreamInsight Whitepaper: http://download.microsoft.com/download/F/D/5/FD5E855C-D895-45A8-9F3E-110AFADBE51A/Microsoft%20CEP%20Overview.docx
2 comments
Zeer zeker een interessante technologie.
Overigens ie met name het laatste puntje belangrijk om hierin mee te nemen. Heb zelf al eerder met LINQ(-to-SQL) zetten spelen en het is zeker niet iets wat de gemiddelde BI-consultant er even bij kan doen. Gedegen kennis van het .NET-framework en aanverwante talen (C#/VB) is zeker een vereiste om hier iets goed mee te kunnen doen.
Desondanks is het goed om te zien dat Microsoft zich ook op dit vlak aan het ontwikkelen is.
Mark
Ik denk dat StreamInsight binnen een architectuur moet worden gezien als een notificatie systeem. Dat er een event optreed (en welke dat is) zou ik nog BI noemen. Wat er functioneel met het event moet gebeuren misschien ook maar de implementatie van de actie(s) is in mijn ogen niet (specifiek) BI.
.NET, threading, C# en LINQ zijn geen dingen die je er even bij doet of nu ook per definitie moet leren. Dat kan natuurlijk wel maar is een ander vak, denk ik.
Erno de Weerd