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.

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 :

  • 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.

Voir aussi

Autres ressources

New and Updated Topics in StreamInsight