Neuigkeiten (StreamInsight)
Microsoft StreamInsight enthält neue Funktionen und Erweiterungen, die die Leistungsfähigkeit und Produktivität von Entwicklern und Administratoren erhöhen, die für die komplexe Ereignisverarbeitung zuständig sind.
Weitere Informationen zu bekannten Problemen finden Sie unter Versionsanmerkungen (StreamInsight). Weitere Informationen zur Abwärtskompatibilität finden Sie unter Abwärtskompatibilität (StreamInsight).
Neue Funktionen in StreamInsight 1.2 (Juni 2011)
Neue Stabilitätsfunktionen
In StreamInsight 1.2 wird für die Verarbeitung von Datenströmen die Unterstützung für integrierte Stabilität in Bezug auf Systemausfälle eingeführt. Diese Unterstützung ist nur in der Premium Edition von StreamInsight verfügbar. Weitere Informationen zu den Editionen finden Sie unter Auswählen einer StreamInsight-Edition.
Mit den neuen Stabilitätsfunktionen können Sie Ihre kritischen Anwendungen mit minimalen Ausfallzeiten ausführen. Dabei ist Transparenz in Bezug auf Systemfehler für die Windows-Plattform Ihrer Wahl gegeben, zu branchenweit führenden Gesamtkosten. Weitere Informationen finden Sie in den folgenden Themen.
Mit den neuen Stabilitätsfunktionen werden auch neue Abfragestatus eingeführt:
Initialisierung. Dieser Status liegt üblicherweise nach einem der folgenden Ereignisse vor:
- Die Abfrage wurde beendet, und der Benutzer hat die Start-Methode aufgerufen.
- Eine stabile Abfrage wurde ausgeführt, und der Server führt gerade eine Fehlerwiederherstellung durch. Um den Status der Abfrage zu ändern, muss der Benutzer die Start-Methode aufrufen.
Prüfpunktausführung. Die Abfrage wird ausgeführt, und ein Prüfpunkt wird gerade verarbeitet.
Neue Entwicklerfunktionen
Zu den Verbesserungen der StreamInsight-API zählen die folgenden Funktionen:
Benutzerdefinierte Datenstromoperatoren
Sie können nun die benutzerdefinierte Verarbeitung von Eingabedatenströmen mit benutzerdefinierten Datenstromoperatoren bereitstellen. Im Unterschied zu benutzerdefinierten Operatoren und benutzerdefinierten Aggregaten, bei denen Sie mit Fenstern interagieren können, ermöglichen Ihnen benutzerdefinierte Datenstromoperatoren das direkte Interagieren mit dem Inhalt eines Datenstroms, das inkrementelle Berechnen und Generieren von Ergebnissen sowie das Verwalten von Status. Weitere Informationen finden Sie unter Benutzerdefinierte Datenstromoperatoren.
LINQ-Erweiterungen
Sie können geschachtelte Typen in Ereignisnutzlasten, in Adaptern und in LINQ-Abfragen verwenden. Weitere Informationen zu Ereignisnutzlasten finden Sie unter Erstellen von Ereignistypen.
Sie können die LINQ-let-Klausel verwenden. Weitere Informationen finden Sie unter der let-Klausel (C#-Referenz).
Sie können mehrere Datenströme in einer einzigen Abfrage verknüpfen. Die Beschränkung auf das Verknüpfen von nur zwei Datenströmen gilt nicht mehr. Weitere Informationen zu Joins finden Sie unter Joins.
Sie können Erweiterungsmethoden inline in anderen FROM-Klauseln als der ersten FROM-Klausel und in Verknüpfungen aufrufen.
Sie können Datenströme in zusammengesetzten Verknüpfungsschlüsseln verknüpfen. Beispiel: where {x.a, x.b} equals {y.a, y.b}. Weitere Informationen zu Verknüpfungen finden Sie unter Joins.
Sie können ein einzelnes Feld projizieren, ohne dass Sie dafür einen neuen anonymen Typ erstellen müssen. Beispiel: from x in xs select x.A anstelle von from x in xs select new { x.A }. Weitere Informationen über Projektionen finden Sie unter Projektion.
Sie können mehrere Aggregate in einem Ausdruck verwenden. Beispiel: select new {ratio = (double)win.Sum(e => e.good) / (double)win.Count()}.
Sie können einen neuen anonymen Typ in einer GROUP BY-Klausel gruppieren. Beispiel: from x in xs group new { x.A, x.B } by new { x.C, x.D } into g, wobei group new { x.A, x.B } die neue Funktion darstellt. Früher war der Selektor in einer GROUP BY-Klausel der eingehende Typ, beispielsweise from e in input group e by ….
Sie können nun Projektionen in einer Take-Klausel einschließen. Beispiel: … select new { myAvg = r.Value / 10, r.SourceId }).Take(2, …). Früher war der Selektor in einer Take-Klausel der eingehende Typ, beispielsweise from win in input.window(…) from e in … select e).Take(…).
API-Erweiterungen
Es ist eine neue Überladung für die ShiftEventTime-Methode verfügbar, die das Verhalten aufweist, das vom Namen der Methode angegeben wird. Das heißt, die neue Überladung verschiebt die Zeit des Ereignisses um den Betrag des angegebenen Zeitraums. In der ursprünglichen Version dieser Methode mussten Sie sowohl die aktuelle Ereigniszeit als auch den Zeitraum angeben, um die Ereigniszeit zu verschieben. Anstatt ShiftEventTime(e => e.StartTime + TimeSpan.FromMinutes(15)) zu schreiben, können Sie nun ShiftEventTime(e => TimeSpan.FromMinutes(15)) schreiben. Sie können jedoch immer noch die ursprüngliche Version der Methode verwenden, um die Ereigniszeit auf einen bestimmten Zeitpunkt festzulegen, indem Sie einen datetime-Wert angeben. Die ursprüngliche Version wurde aus Gründen der Abwärtskompatibilität beibehalten. Weitere Informationen finden Sie unter Zeitstempeländerungen.
Die neue Ausgaberichtlinie PointAlignToWindowEnd ist für springende Fenster verfügbar. Die vorhandene Richtlinie, ClipToWindowEnd, erzeugt eine Fenstergröße, die der Lebensdauer des setbasierten Vorgangs entspricht. Die neue Ausgaberichtlinie erzeugt ein Punktereignis, dessen Startzeit der Endzeit des Fensters entspricht. Diese neue Ausgaberichtlinie ist hilfreich, wenn Sie das Ergebnis mit einem anderen Datenstrom kombinieren, da zu jedem gegebenen Zeitpunkt nur ein einziges gültiges Ergebnis existiert, das das neueste Aggregationsergebnis zu diesem Zeitpunkt darstellt.
Sämtliche Fenster verfügen nun über Standardausgaberichtlinien: ClipToWindowEnd für Momentaufnahmefenster und PointAlignToWindowEnd für springende oder rollierende Fenster sowie für Anzahlfenster.
Neue Funktionen für Verwaltbarkeit und Tools
Sie können nun mit Ihrer vorhandenen Diagnoseinfrastruktur StreamInsight-Prozesse und -Abfragen mit dem Systemmonitor und der Ereignisanzeige überwachen und die Fehlerbehandlung ausführen. Sie können auch auf eine erweiterte Liste von Diagnoseeigenschaften zugreifen.
Leistungsindikatoren
Sie können nun mithilfe des Systemmonitors Systemindikatoren für Serverprozesse, Abfragen und Eingabedatenströme in StreamInsight überprüfen. Weitere Informationen finden Sie unter Monitoring StreamInsight-Leistungsindikatoren und -Ereignisse.
Verwaltungsprotokollierung im Windows-Ereignisprotokoll
In der Windows-Ereignisanzeige können Sie nun Verwaltungsereignisse für Serverprozesse, Adapter, Abfragen und den Dumper von StreamInsight im Anwendungsereignisprotokoll anzeigen. Weitere Informationen finden Sie unter Monitoring StreamInsight-Leistungsindikatoren und -Ereignisse.
Zusätzliche Diagnoseeigenschaften
Eine Reihe neuer Diagnoseeigenschaften sind nun verfügbar, die Sie bei der Überwachung und Problembehandlung unterstützen. Hierzu zählen die folgenden neuen Eigenschaften:
AdapterNumberOfRunningWorkers, AdapterNumberOfRunningWorkers und AdapterNumberOfSuspendedWorkers
AdapterFirstCtiTimestamp
OperatorNumberOfWorkers
OperatorGroupIdField
QueryInstanceGroupId
StreamNumberOfWorkers
StreamMinInputEventCountAcrossWorkers und StreamMaxInputEventCountAcrossWorkers
StreamMinMemoryIncludingEventsAcrossWorkers und StreamMaxMemoryIncludingEventsAcrossWorkers
Darüber hinaus wurden einige der früher verfügbaren Sichten entfernt. Hierzu zählen sämtliche Sichten, die sich auf das Zeitplanungsmodul beziehen.
Weitere Informationen finden Sie unter Überwachen von StreamInsight-Server und -Abfragen.
Neue Funktionen in StreamInsight 1.1 (Oktober 2010)
Die folgenden Änderungen und Hinzufügungen wurden seit StreamInsight 1.0 Aktualisierung 1 implementiert. Sie wurden in StreamInsight 1.1 im Oktober 2010 veröffentlicht.
Unterstützung für Ereignisquellen und Senken, die die IObservable-Schnittstelle oder die IEnumerable-Schnittstelle implementieren. Der StreamInsight-API wurden als Alternative für die standardmäßigen Ein- und Ausgabeadapter neue Klassen und Elemente hinzugefügt, von denen das neue Programmiermodell für die Ein- und Ausgabe unterstützt wird. Diese Funktionen werden in den folgenden Themen beschrieben:
Verwenden von Observable- und Enumerable-Ereignisquellen und -senken (StreamInsight)
End-to-End-Beispiel für Enumerable-Ereignisquelle und -senke (StreamInsight)
API-Unterstützung für IObservable- und IEnumerable-Elemente in StreamInsight
Weitere Informationen zu IObservable- und IEnumerable-Schnittstellen in StreamInsight
Eine Stop-Methode für die Adapter-Klasse. Von der Methode wird ein Adapter aufgrund des Beendens oder Abbrechens einer Abfrage zum Anhalten angewiesen.
Neue Versionen von StreamInsight werden parallel neben älteren Versionen installiert. Weitere Informationen zur Installation von StreamInsight-Versionen finden Sie unter:
"Installieren einer neuen Version von StreamInsight" unter Installation (StreamInsight).
"StreamInsight-Versionen" unter Überlegungen zur Programmierung.
Neue Funktionen in StreamInsight 1.0 Aktualisierung 1 (Juni 2010)
Die folgenden Änderungen und Hinzufügungen wurden seit StreamInsight 1.0 RTM implementiert. Sie wurden im Juni 2010 in StreamInsight 1.0 Aktualisierung 1 gleichzeitig mit SQL Server 2008 R2 kumulatives Update 2 freigegeben.
Die ClipEventDuration-API. Diese neue Methode für die CepStream-Klasse ermöglicht Ihnen die Verwendung eines sekundären Datenstroms, um zu bestimmen, wo die Dauer von Ereignissen im primären Datenstrom gekürzt werden soll. Weitere Informationen finden Sie unter:
"Kürzen der Dauer eines Ereignisses" unter Zeitstempeländerungen.
Unterstützung für Microsoft .NET Framework 4 in der StreamInsight-Anwendungsentwicklung
Weitere Informationen zu diesen Änderungen oder zum Herunterladen von StreamInsight 1.0 Aktualisierung 1 finden Sie im Knowledge Base-Artikel StreamInsight 1.0 updates that are released together with Cumulative Update package 2 for SQL Server 2008 R2.
Neue Funktionen in StreamInsight 1.0 RTM (April 2010)
Die folgenden Änderungen und die Hinzufügungen wurden seit Community Technology Preview (CTP), November 2009 von StreamInsight 1.0 implementiert. Sie wurden im April 2010 in StreamInsight 1.0 gleichzeitig mit SQL Server 2008 R2 freigegeben.
Entwurf und Entwicklung
Sie können jetzt StreamInsight-Abfragen als Bausteine für Anwendungen verwenden. Abfragen können auf Basis bestehender Abfragen, die derzeit ausgeführt werden, erstellt werden. Weitere Informationen finden Sie unter Erstellen von Abfragen zur Laufzeit.
Die Unterstützung für synchronisierte Eingabedatenströme wurde hinzugefügt. Weitere Informationen finden Sie unter Vorlauf der Anwendungszeit.
Die maximale Größe eines einzelnen Ereignisses in StreamInsight wurde auf 16K erhöht. Unter Berücksichtigung von Systemfeldern und Ereignismetadaten ist 14K eine sicherere, pragmatische Grenze.
Operatoren
Die Unterstützung für Anzahlfenster wurde hinzugefügt. Weitere Informationen finden Sie unter Anzahlfenster.
Die Unterstützung für Vorgänge vom Typ Left Anti Semi Join wurde hinzugefügt. Weitere Informationen finden Sie unter Joins.
API
Die Klasse AdapterFactory verfügt über die neue Schnittstellendefinition IDeclareAdvanceTimePolicy, die eine AdvanceTimeSettings-Instanz zurückgibt. Das ist der Mechanismus, über den Sie aus der Adapterfactory Vorlaufzeiteinstellungen angeben können.
Verwaltung
Diagnosesichten
Neue Diagnosesichten zur Überwachung des Systems auf den folgenden Detailebenen sind verfügbar: Server, Operator, Zeitplanungsmodul und Adapter. Weitere Informationen finden Sie unter Überwachen von StreamInsight-Server und -Abfragen.
Beispiele
Beispiele stehen unter StreamInsight-Beispiele zum Download zur Verfügung.