CEP vs ETL, StreamInsight et SSIS dans la BI


Je suis de retour du MVP Summit (avec un très bel event au Safeco Field de Seattle que vous voyez ici) et à nouveau chez mon client préféré! Hormis vous dire que ce que nous avons appris augure de bien belles choses sur SQL Server Denali en général, et sur ses modules BI en particulier, ne comptez pas trop sur moi pour aller plus loin dans les détails car j’ai signé un NDA avec mon sang…

Par contre plus sérieusement j’ai été pas mal intéressé là bas par les scénarios de convergence des différents produits sortis ou à venir. Il est vrai qu’après une grosse phase de simplification marketing autour de briques bien identifiées (SQL Server 2005), l‘offre BI à l’horizon Denali devient de plus en plus complexe à lire pour nos chers clients et utilisateurs. Par conséquent la recherche à minima de convergences entre les différents modules est un sujet intéressant.
Intéressant techniquement pour adresser plus de problématiques, intéressant pédagogiquement car c’est de notre faculté à rendre cette offre lisible que dépendra en grande partie l’adoption des ces produits.
Le positionnement du CEP StreamInsight par rapport à l’ETL SSIS est un bon exemple de cela.
ETL et CEP dans la BI

Un ETL (Extract Transform Load) comme SSIS est le produit traditionnellement utilisé pour charger les entrepôts de données ou data warehouses. Orienté batch (ensemble de traitements bien identifiés) et planifié à une certaine fréquence, il est utilisé pour aller chercher les données dans les bases opérationnelles, et les amener dans les bases d’analyse, non sans leur avoir appliqué un nombre généralement considérable de vérifications, aggrégations, filtrages et autres consolidations.
Depuis quelques années et l’avènement du « mythe » (entre guillemets car il devient petit à petit réalité) des entrepôts de données (near)real-time ou zero-latency illustré côté Microsoft par des features telles que le Proactive Caching dans SSAS (pour ne citer que lui), on parle d’une supplantation des ETL par des CEP, des moteurs de Gestion d’Evenements Complexes (Complex Event Processing).
Un CEP est un moteur d’analyse de flux (souvent) constants de données, à la recherche de singularités, ou simplement à des fins d’aggrégation.
StreamInsight, sorti avec SQL Server 2008 R2 est le CEP de SQL Server, il s’agit d’un moteur utilisable en .NET dont les règles de traitement et d’agrégation et l’expression de KPI s’écrivent par des requêtes Linq sur les flux entrants, donnant des possibilités quasi infinies en terme de transformations, le tout en temps réel. Le pas est vite franchi pour certains oracles du décisionnel: ils prédisent que les ETL et les bases temporaires feront bientôt partie du passé.

Remplacer SSIS par StreamInsight dans l’alimentation d’entrepôts?

Soyons brefs: à date et sauf pour des ultra particuliers, il n’en est évidemment pas question, en tous les cas aujourd’hui, et ce pour plusieurs raisons:
1) Pas de composants spécialisés ETL: StreamInsight pour le développeur est un framework: les composants de DataFlow que l’on est amenés à utiliser en ETL avec SSIS seraient à recoder, ainsi que les interfaces d’entrée, de sortie…
2) Trop orienté développeur: utiliser StreamInsight à la place de SSIS aujourd’hui est aussi aisé que d’utiliser SSIS uniquement par le biais de son API de génération de packages… Disons pas aussi simple qu’avec un designer graphique.
3) Administration limitée: là encore les fonctionnalités out-of-the-box de StreamInsight sont restreintes car répétons-le ce n’est pas son usage premier: un CEP doit traiter des données en masse et peut se permettre des erreurs: un entrepôt contient la version corporate de la « vérité »: il n’y a pas de droit à l’erreur la supervision doit être facile et les erreurs aisément traçables.
Au bilan je ne crois pas que sauf pour des tables de faits spécifiques, ou des entrepôts dédiés à la latence zéro on n’assiste avant quelque temps à la gestion de l’ETL sous SI. En revanche Microsoft est tout à fait conscient de l’intérêt suscité par certaines potentialités de StreamInsight pour les développeurs ETL…
Avant la fusion, des scénarios de convergence…

StreamInsight permet en effet de requêter des flux en Linq: quelle puissance cela donnerait de pouvoir faire les mêmes requêtes sur des PipelineBuffer, ce qui revient en effet à embarquer un moteur StreamInsight dans SSIS.
A l’inverse, pour adresser l’absence de composants dans StreamInsight ou pourrait nourrir des lots SSIS à partir de données issues de CepStream, scénario inverse ici puisque cela revient à embarquer un lot SSIS dans un flux StreamInsight.
Ping Wang et Wee Hyong Tok des équipes StreamInsight et SSIS ont écrit un WhitePaper inspiré comme souvent de retours clients sur ce type d’usages de ces deux produits couplés: vous pouvez le trouver ici.
En espérant avoir clarifié quelques points et vous avoir donné quelques idées.
A bientôt!

Publicités

[TD 2010] Webcasts

Les Webcasts des TechDays 2010 sont en ligne à cette adresse: http://www.microsoft.com/france/vision/mstechdays10/. Pour ma petite personne vous trouverez ci-dessous les deux sessions que j’ai eu le plaisir d’animer:

Celle sur la mise en place de cross-selling sur les sites e-commerce:

http://www.microsoft.com/france/vision/mstechdays10/Webcast-iframe.aspx?EID=1fa11288-4b1a-491a-a372-0a73f0e82dab

Et celle sur le CEP avec StreamInsight:

http://www.microsoft.com/france/vision/mstechdays10/Webcast-iframe.aspx?EID=da22183d-b064-4567-9cf8-d1bcb4a914f0

A bientôt et bon visionnage!

StreamInsight, le licensing


Une question est souvent revenue aux TechDays: le mode de licensing de StreamInsight et son intégration dans SQL Server 2008 R2.

En clair, StreamInsight existera en deux éditions, nommées pour le moment Premium et Standard différentes par le nombre d’opérations concurrentes autorisées.
1)La version Standard, qui permet de traiter jusqu’à 5000 évènements par seconde avec une latence tolérée supérieure à 5 secondes, sera livrée avec SQL Server 2008 R2 en versions Standard et Entreprise

2)La version Premium, pour des latences les plus faibles et les nombres d’évènements par seconde les plus élevés, uniquement disponibles sous SQL Server 2008 R2 en version Datacenter.

[SQL] On ne parle que de Gemini, on oublie StreamInsight!

C’est vrai, depuis quelques mois on ne parle que de Gemini ou plutôt PowerPivot la fonctionnalité de D-OLAP à la sauce Microsoft introduite dans Excel 2010 sur 2008 R2. Mais c’est oublier une autre nouveauté à mon sens presque plus critique: StreamInsight, le moteur de CEP (Complex Event Processing).

CEP kézako?

Le CEP en fait est facilement compréhensible par son nom: il s’agit de gestion d’évènement complexes. Qu’est ce qu’un évènement complexe? Typiquement une composition d’évènements simples détectables dans des bases de données, sur des senseurs…

Un senseur qui passe dans le rouge est facile à détecter, la réaction est facile à coder. La programmation à base d’évènements simples est la base du développement moderne. En revanche définir, détecter et traiter des compositions d’évènements est bien plus complexe car généralement orienté business.

Ce sont des règles métier qui lui donnent une cohérence, une existence. Lorsque l’évenement est détecté, il déclenche un processus de notification, d’action.
Ces règles métier sont appelées Query Logic sous StreamInsight et définies en LINQ.

Un moteur de CEP comme StreamInsight fournit donc des interfaces d’E/S et les librairies .NET nécessaires pour écrire d’une part les Streams d’entrée et de sortie et d’autre part la Query Logic de ces évènements complexes.


Des exemples?

Oui, autant que vous le souhaitez! LINQ de part son requêtage aussi puissant que SQL permet de définir des aggrégations et donc des KPI: il est possible de réagir en temps réel, sans passer par une phase de retraitement des données, au changement d’un KPI comme celui-ci

var MoyenneCA = from Groupe in InputStream.Snapshot()
select new { avg = Groupe.Avg(Mesure => Mesure.CA))};

Encore mieux: il est possible de combiner les sources des Streams et d’interroger un modèle de Data Mining pour vérifier la conformité en temps réel, et sans stocker de données!

Et on peut tester?

Bien sûr! Pour le moment je n’ai testé que des choses très simples (Streams SQL qui envoient à un modèle de DM, Streams fichier qui sont traitées par des KPI simples…) mais à vous de jouer pour des choses encore plus techniques!
SQL Server 2008 R2 August CTP est disponible sur Technet et n’attend que vous!

Bon test et à bientôt!