Nouveautés (StreamInsight)
Microsoft StreamInsight inclut de nouvelles fonctionnalités et améliorations qui augmentent les capacités et la productivité des développeurs et des administrateurs de traitements des événements complexes (CEP).
Pour en savoir plus sur les problèmes connus, voir Notes de mise à jour (StreamInsight). Pour plus d'informations sur la compatibilité descendante, voir Compatibilité descendante (StreamInsight).
Nouvelles fonctionnalités de StreamInsight 1.2 (juin 2011)
Nouvelles fonctionnalités de résistance
StreamInsight 1.2 renforce la résistance des systèmes contre les défaillances survenant lors du traitement des flux de données. La prise en charge de cette résistance est disponible uniquement dans l'édition Premium de StreamInsight. Pour plus d'informations sur les éditions, voir Choix d'une édition StreamInsight.
Grâce aux nouvelles fonctionnalités de résistance, vous pouvez exécuter des applications critiques sans connaître de temps mort Pour plus d'informations, consultez les rubriques suivantes :
Les nouvelles fonctionnalités de résistance comprennent également de nouveaux états de requêtes :
Initialisation en cours. Cet état se présente généralement suite à l'un des événements suivants :
- La requête a été arrêtée, et l'utilisateur a appelé la méthode Start.
- Une requête résistante était en cours d'exécution, et le serveur récupère suite à une défaillance. Pour changer l'état d'une requête, l'utilisateur doit appeler la méthode Start.
Points de contrôle. La requête est en cours d'exécution, et un point de contrôle est en cours.
Nouvelles fonctionnalités de développement
De nouvelles fonctionnalités ont fait leur apparition suite aux améliorations apportées à l'API StreamInsight :
Opérateurs de flux de données définis par l'utilisateur
Vous pouvez désormais personnaliser le traitement des flux d'entrée grâce aux opérateurs de flux de données définis par l'utilisateur. Contrairement aux opérateurs et aux agrégats définis par l'utilisateur, qui vous permettent d'interagir avec les fenêtres, les opérateurs de flux de données définis par l'utilisateur vous permettent d'interagir directement avec le contenu d'un flux, de calculer et de générer les résultats de manière incrémentielle, ainsi que de gérer les états. Pour plus d'informations, voir Opérateurs de flux de données définis par l'utilisateur.
Améliorations apportées aux LINQ
Les types imbriqués peuvent être utilisés dans les charges utiles d'événements, dans les adaptateurs et dans les requêtes LINQ. Pour plus d'informations sur les charges utiles d'événements, voir Création de types d'événements.
Vous pouvez utiliser la clause LINQ « let ». Pour plus d'informations, voir Clause let (Référence C#).
Vous pouvez joindre plusieurs flux de données dans une même requête. Vous n'êtes plus limité à deux flux de données. Pour plus d'informations sur les jointures, voir Jointures.
Vous pouvez appeler des méthodes d'extension insérées depuis les jointures et depuis les clauses « from », pas seulement depuis la première clause « from ».
Vous pouvez joindre les flux de données dans des clés de jointure composites. Par exemple : where {x.a, x.b} equals {y.a, y.b}. Pour plus d'informations sur les jointures, voir Jointures.
Vous pouvez projeter un champ individuel sans créer un nouveau type anonyme. Exemple : from x in xs select x.A au lieu de from x in xs select new { x.A }. Pour plus d'informations sur la projection, voir Projection.
Vous pouvez utiliser plusieurs agrégats dans une même expression. Par exemple, select new {ratio = (double)win.Sum(e => e.good) / (double)win.Count()}.
Vous pouvez grouper un nouveau type anonyme dans une clause « group by ». Exemple : from x in xs group new { x.A, x.B } by new { x.C, x.D } into g, où group new { x.A, x.B } illustre la nouvelle fonctionnalité. Auparavant, le sélecteur d'une clause « group by » était le type entrant (exemple : from e in input group e by …).
Vous pouvez désormais introduire des projections dans une clause Take. Par exemple, … select new { myAvg = r.Value / 10, r.SourceId }).Take(2, …). Auparavant, le sélecteur d'une clause Take était le type entrant (exemple : from win in input.window(…) from e in … select e).Take(…)).
Améliorations apportées aux API
Une nouvelle surcharge a été ajoutée à la méthode ShiftEventTime. Celle-ci se comporte comme le nom de la méthode l'indique : elle décale l'heure de l'événement selon l'intervalle fourni. Auparavant, vous deviez spécifier l'heure de l'événement actuel et l'intervalle de décalage pour procéder à celui-ci. Au lieu de saisir ShiftEventTime(e => e.StartTime + TimeSpan.FromMinutes(15)), vous pouvez désormais saisir ShiftEventTime(e => TimeSpan.FromMinutes(15)). Toutefois, vous pouvez toujours utiliser l'ancienne version de la méthode pour définir une heure spécifique pour l'événement : il vous suffit de fournir une valeur pour DateHeure. L'ancienne version a été conservée pour assurer une compatibilité descendante. Pour plus d'informations, voir Modifications d'horodatage.
Une nouvelle stratégie de sortie est disponible pour les fenêtres récurrentes : PointAlignToWindowEnd. La stratégie de sortie existante, ClipToWindowEnd, génère une taille de fenêtre qui correspond à la durée de vie de l'opération reposant sur un jeu. La nouvelle stratégie de sortie génère un événement point dont l'heure de début correspond à l'heure de fin de la fenêtre. Cette nouvelle stratégie de sortie est utile lorsque vous combinez le résultat avec un autre flux de données, étant donné qu'il n'existe qu'un seul résultat valide à chaque limite dans le temps qui représente le résultat d'agrégation le plus récent à ce stade.
Désormais, des stratégies de sortie par défaut ont été définies pour toutes les fenêtres : ClipToWindowEnd pour les fenêtres d'instantané et PointAlignToWindowEnd pour les fenêtres récurrentes ou bascule et pour les fenêtres utilisant des nombres.
Amélioration des outils et de la gestion
Désormais, vous pouvez utiliser l'infrastructure de diagnostic existante pour contrôler et dépanner les processus et les requêtes StreamInsight grâce à l'Analyseur de performances et à l'Observateur d'événements. Vous pouvez également accéder à une liste complète des propriétés de diagnostic.
Compteurs de performance
Désormais, vous pouvez utiliser l'Analyseur de performances pour afficher les compteurs des processus du serveur, des requêtes et des flux d'entrée StreamInsight. Pour plus d'informations, voir Contrôle des événements et des compteurs de performance StreamInsight.
Journalisation administrative dans le Journal des événements Windows
Désormais, vous pouvez utiliser l'Observateur d'événements Windows pour afficher les événements administratifs concernant les processus du serveur, les adaptateurs, les requêtes et le vidage d'StreamInsight dans le Journal des événements d'application. Pour plus d'informations, voir Contrôle des événements et des compteurs de performance StreamInsight.
Propriétés de diagnostic supplémentaires
De nouvelles propriétés de diagnostic ont été ajoutées afin de vous aider à réaliser un contrôle ou un dépannage. Les nouvelles propriétés sont les suivantes :
AdapterNumberOfRunningWorkers, AdapterNumberOfRunningWorkers et AdapterNumberOfSuspendedWorkers
AdapterFirstCtiTimestamp
OperatorNumberOfWorkers
OperatorGroupIdField
QueryInstanceGroupId
StreamNumberOfWorkers
StreamMinInputEventCountAcrossWorkers et StreamMaxInputEventCountAcrossWorkers
StreamMinMemoryIncludingEventsAcrossWorkers et StreamMaxMemoryIncludingEventsAcrossWorkers
D'anciens affichages ont également été supprimés. Cela concerne tous les affichages liés au planificateur.
Pour plus d'informations, voir Contrôle du serveur et des requêtes StreamInsight.
Nouvelles fonctionnalités de StreamInsight 1.1 (octobre 2010)
Les modifications et ajouts suivants ont été implémentés depuis StreamInsight 1.0 Refresh 1. Ils ont été introduits dans StreamInsight 1.1 en octobre 2010.
Prise en charge pour les sources et les récepteurs d'événement qui implémentent les interfaces IObservable ou IEnumerable. De nouvelles classes et de nouveaux membres ont été ajoutés à l'API StreamInsight afin de prendre en charge ce nouveau modèle de programmation d'entrées et de sorties au lieu des adaptateurs d'entrée et de sortie habituels. Ces fonctionnalités sont décrites dans les rubriques suivantes :
Utilisation des sources et récepteurs d'événements observables et énumérables (StreamInsight)
Exemple de bout en bout de source et de récepteur d'événements énumérables (StreamInsight)
Prise en charge API pour IObservable et IEnumerable dans StreamInsight
Informations supplémentaires sur les interfaces IObservable et IEnumerable dans StreamInsight
Une méthode Stop sur la table Adapter. Cette méthode notifie à un adaptateur de s'arrêter suite à l'arrêt ou à l'abandon d'une requête.
Les nouvelles versions de StreamInsight sont installées côte à côte avec les précédentes versions. Pour plus d'informations sur l'installation des versions de StreamInsight, voir :
« Installation d'une nouvelle version de StreamInsight » dans Installation (StreamInsight).
« Versions de StreamInsight » dans Éléments de programmation à prendre en considération.
Nouvelles fonctionnalités de StreamInsight 1.0 Refresh 1 (juin 2010)
Les modifications et ajouts suivants ont été implémentés depuis StreamInsight 1.0 RTM. Ils ont été diffusés simultanément dans StreamInsight 1.0 Refresh 1 en juin 2010 et SQL Server 2008 R2, mise à jour cumulative 2.
API ClipEventDuration. Cette nouvelle méthode sur la classe CepStream vous permet d'utiliser un flux de données secondaire pour déterminer l'endroit où faire coïncider la durée d'événements dans le flux de données primaire. Pour plus d'informations, voir :
« Correspondance de la durée d'un événement » dans Modifications d'horodatage.
Prise en charge du Microsoft .NET Framework 4 dans le développement d'applications StreamInsight
Pour plus d'informations sur ces modifications, ou pour télécharger StreamInsight 1.0 Refresh 1, consultez l'article de la Base de connaissances, StreamInsight 1.0 updates that are released together with Cumulative Update package 2 for SQL Server 2008 R2 (page éventuellement en anglais).
Nouvelles fonctionnalités dans StreamInsight 1.0 RTM (avril 2010)
Les modifications et additions suivantes ont été implémentées depuis la version préliminaire CTP (Community Technology Preview) de novembre 2009 de StreamInsight 1.0. Elles ont été diffusées simultanément dans StreamInsight 1.0 en avril 2010 et SQL Server 2008 R2.
Création et développement
Vous pouvez maintenant utiliser des requêtes StreamInsight comme blocs de construction pour vos applications. Les requêtes peuvent être construites sur des requêtes existantes et des requêtes en cours d'exécution. Pour plus d'informations, consultez Composer des requêtes pendant l'exécution.
Le support pour les flux d'entrée synchronisés a été ajouté. Pour plus d'informations, consultez Avancer le temps d'application.
La taille maximale d'un événement dans StreamInsight a été augmentée à 16 Ko. Compte tenu des champs système et des métadonnées d'événement, la limite sûre et pragmatique est de 14 Ko.
Opérateurs
Le support pour les fenêtres utilisant des nombres a été ajouté. Pour plus d'informations, consultez Fenêtres utilisant des nombres.
Le support pour les opérations « left-anti-semi-join » a été ajouté. Pour plus d'informations, consultez Jointures.
API
La classe AdapterFactory possède une nouvelle définition d'interface, IDeclareAdvanceTimePolicy, qui retourne une instance AdvanceTimeSettings. Par le biais de ce mécanisme, vous pouvez spécifier des paramètres de temps préalable depuis la fabrique d'adaptateurs.
Gestion
Vues de diagnostic
De nouvelles vues de diagnostic sont disponibles pour surveiller le système aux niveaux de spécificité suivants : serveur, opérateur, planificateur et adaptateur. Pour plus d'informations, consultez Contrôle du serveur et des requêtes StreamInsight.
Exemples
Des exemples peuvent être téléchargés à l'adresse StreamInsight Samples.