新機能 (StreamInsight)
Microsoft StreamInsight には、複雑なイベントを取り扱う開発者および管理者の能力や生産性を向上させる新機能と機能強化が導入されています。
既知の問題の詳細については、「リリース ノート (StreamInsight)」を参照してください。旧バージョンとの互換性については、「旧バージョンとの互換性 (StreamInsight)」を参照してください。
StreamInsight 1.2 (2011 年 6 月) の新機能
新しい回復性機能
StreamInsight 1.2 では、データ ストリーム処理に関するシステム障害に対して組み込み型の回復性がサポートされています。このサポートは、StreamInsight の Premium Edition でのみ使用できます。エディションの詳細については、「StreamInsight エディションの選択」を参照してください。
新しい回復性機能では、重要なアプリケーションの実行時における、最低限の運用ダウンタイム、システム障害の透明度、選択した Windows プラットフォーム、業界をリードする総所有コストが実現されています。詳細については、次のトピックを参照してください。
新しい回復性機能では、新しいクエリ状態が用意されています。
初期化中。この状態は通常、次のいずれかのイベントの後に発生します。
- クエリが停止され、Start メソッドが呼び出されました。
- 回復性のあるクエリが実行され、サーバーは障害から復旧中です。クエリの状態を変更するには、ユーザーは Start メソッドを呼び出す必要があります。
チェックポイント。クエリが実行中で、チェックポイントが進行中です。
新しい開発者向け機能
強化された StreamInsight API には、次の機能が含まれます。
ユーザー定義のストリーム演算子
ユーザー定義ストリーム演算子では、入力ストリームのカスタム処理を提供できるようになりました。Windows との対話を実現するユーザー定義演算子およびユーザー定義集計とは異なり、ユーザー定義ストリーム演算子では、ストリームのコンテンツと直接対話し、結果を段階的に生成して、状態を管理することができます。詳細については、「ユーザー定義のストリーム演算子」を参照してください。
LINQ 機能強化
イベント ペイロード、アダプター、および LINQ クエリで入れ子になった型を使用できます。イベント ペイロードの詳細については、「イベントの種類の作成」を参照してください。
LINQ "let" 句を使用できます。詳細については、「let 句 (C# リファレンス)」を参照してください。
複数のストリームを 1 つのクエリに結合できます。結合できるストリーム数は 2 つに制限されなくなりました。結合の詳細については、「結合」を参照してください。
すべての拡張メソッドを最初の "from" 句と結合内だけでなく、複数の "from" 句でインラインで呼び出すことができます。
複合結合キーでストリームを結合できます。たとえば、where {x.a, x.b} equals {y.a, y.b} のように指定します。結合の詳細については、「結合」を参照してください。
新しい匿名型を作成せずに、1 つのフィールドを投影できます。たとえば、from x in xs select new { x.A } ではなく from x in xs select x.A のように指定します。投影の詳細については、「射影」を参照してください。
式で複数の集計を使用できます。たとえば、select new {ratio = (double)win.Sum(e => e.good) / (double)win.Count()} のように指定します。
"group by" 句で新しい匿名型をグループ化できます。たとえば、from x in xs group new { x.A, x.B } by new { x.C, x.D } into g のように指定します。ここで、group new { x.A, x.B } は新機能を示しています。上記の "group by" 句のセレクターは着信タイプでした (たとえば、from e in input group e by …)。
投影を Take 句に含むことができるようになりました。たとえば、… select new { myAvg = r.Value / 10, r.SourceId }).Take(2, …) のように指定します。上記の Take 句のセレクターは着信タイプでした (たとえば、from win in input.window(…) from e in … select e).Take(…))。
API 機能強化
メソッド名が意味するとおりに動作する ShiftEventTime メソッドに新しいオーバーロードが提供されました。つまり、新しいオーバーロードは、イベントの時刻を指定された期間シフトします。このメソッドの元のバージョンでは、現在のイベント時刻と期間を毎回シフトするよう指定する必要がありました。ShiftEventTime(e => e.StartTime + TimeSpan.FromMinutes(15)) を記述する代わりに、ShiftEventTime(e => TimeSpan.FromMinutes(15)) のように記述できます。ただし、このメソッドの元のバージョンを使用して特定の時刻にイベント時刻を設定するには、datetime 値を指定します。元のバージョンとの互換性は維持されています。詳細については、「タイム スタンプの変更」を参照してください。
ホッピング ウィンドウで使用できる新しい出力ポリシー、PointAlignToWindowEnd が提供されました。既存のポリシー、ClipToWindowEnd では、セットベースの操作の有効期間に対応するウィンドウ サイズが返されます。新しいポリシーでは、ウィンドウの開始時刻と終了時刻が同じであるポイント イベントが返されます。その時点での最新の集計結果を表す有効な結果はどの時点でも 1 つだけであるため、この新しい出力ポリシーは結果を別のストリームと結合する場合に便利です。
すべてのウィンドウには、既定の出力ポリシーが含まれるようになりました。スナップショット ウィンドウの場合は ClipToWindowEnd、ホッピング ウィンドウ、タンブリング ウィンドウ、およびカウント ウィンドウの場合は PointAlignToWindowEnd です。
新しい管理の容易性とツール機能
既存の診断インフラストラクチャを使用すると、イベント ビューアーやパフォーマンス モニターで StreamInsight プロセスおよびクエリの監視とトラブルシューティングを行うことができます。診断プロパティの拡張された一覧にアクセスできます。
パフォーマンス カウンター
パフォーマンス モニターを使用して、StreamInsight サーバー プロセス、クエリ、入力ストリームのカウンターを表示できるようになりました。詳細については、「StreamInsight パフォーマンス カウンターおよびイベントの監視」を参照してください。
Windows イベント ログの管理ログ
Windows イベント ビューアーを使用して、StreamInsight サーバー プロセス、アダプター、クエリ、およびダンパーに関連する管理イベントをアプリケーション イベント ログに表示できるようになりました。詳細については、「StreamInsight パフォーマンス カウンターおよびイベントの監視」を参照してください。
追加の診断プロパティ
監視やトラブルシューティングに役立ついくつかの新しい診断プロパティを使用できます。新しいプロパティには次の項目が含まれています。
AdapterNumberOfRunningWorkers、AdapterNumberOfRunningWorkers、および AdapterNumberOfSuspendedWorkers
AdapterFirstCtiTimestamp
OperatorNumberOfWorkers
OperatorGroupIdField
QueryInstanceGroupId
StreamNumberOfWorkers
StreamMinInputEventCountAcrossWorkers および StreamMaxInputEventCountAcrossWorkers
StreamMinMemoryIncludingEventsAcrossWorkers および StreamMaxMemoryIncludingEventsAcrossWorkers
また、以前使用できたいくつかのビューは削除されています。これらは、スケジューラに関連するすべてのビューに含められます。
詳細については、「StreamInsight サーバーおよびクエリの監視」を参照してください。
StreamInsight 1.1 (2010 年 10 月) の新機能
StreamInsight 1.0 Refresh 1 以降、次の変更と追加が実装されました。これらは、StreamInsight 1.1 (2010 年 10 月) にリリースされました。
IObservable インターフェイスまたは IEnumerable インターフェイスを実装するイベント ソースおよびシンクのサポート。通常の入力アダプターおよび出力アダプターの代わりとして、この新しいプログラミング モデルの入力および出力をサポートする新しいクラスおよびメンバーが StreamInsight API に追加されました。これらの機能については次の各トピックを参照してください。
Adapter クラスの Stop メソッド。このメソッドは、クエリの停止または中止の結果として、アダプターに停止するように通知します。
StreamInsight の新しいバージョンが古いバージョンとサイド バイ サイドでインストールされます。StreamInsight のバージョンのインストールの詳細については、以下を参照してください。
「インストール (StreamInsight)」の「StreamInsight の新しいバージョンのインストール」
「プログラミングの考慮事項」の「StreamInsight のバージョン」
StreamInsight 1.0 Refresh 1 (2010 年 6 月) の新機能
StreamInsight 1.0 RTM 以降、次の変更と追加が実装されました。これらは、SQL Server 2008 R2 Cumulative Update 2 と同時に StreamInsight 1.0 Refresh 1 (2010 年 6 月) でリリースされました。
ClipEventDuration API。CepStream クラスのこの新しいメソッドを使用すると、セカンダリ ストリームを使用して、プライマリ ストリームのイベントの期間をクリップする場所を決定できます。詳細については、以下を参照してください。
「タイム スタンプの変更」の「イベントの期間のクリップ」
StreamInsight アプリケーション開発における Microsoft .NET Framework 4 のサポート
これらの変更の詳細、または StreamInsight 1.0 Refresh 1 をダウンロードする方法については、サポート技術情報の記事「SQL Server 2008 R2 の Cumulative Update パッケージ 2 と共にリリースされた StreamInsight 1.0 の更新プログラム」を参照してください。
StreamInsight 1.0 RTM (2010 年 4 月) の新機能
StreamInsight 1.0 の Community Technology Preview (CTP) 2009 年 11 月版以降、次の変更と追加が実装されました。これらは、SQL Server 2008 R2 と同時に StreamInsight 1.0 (2010 年 4 月) でリリースされました。
設計と開発
アプリケーションの構成要素として StreamInsight クエリを使用できるようになりました。現在実行している既存のクエリに基づいてクエリを構築できます。詳細については、「実行時のクエリの構築」を参照してください。
同期された入力ストリームのサポートが追加されました。詳細については、「先行するアプリケーション時間」を参照してください。
StreamInsight での 1 つのイベントの最大サイズが 16K に増加しました。システム フィールドとイベント メタデータを含めると、安全で実際的な限界は 14K です。
演算子
カウント ウィンドウのサポートが追加されました。詳細については、「カウント ウィンドウ」を参照してください。
Left-anti-semi-join 操作のサポートが追加されました。詳細については、「結合」を参照してください。
API
AdapterFactory クラスに、AdvanceTimeSettings インスタンスを返す新しいインターフェイス定義 IDeclareAdvanceTimePolicy が追加されました。このメカニズムを使用すると、アダプター ファクトリから先行する時間の設定を指定できます。
管理
診断ビュー
新しい診断ビューは、サーバー、演算子、スケジューラ、およびアダプターという詳細なレベルでシステムを監視するために使用できます。詳細については、「StreamInsight サーバーおよびクエリの監視」を参照してください。
サンプル
サンプルは StreamInsight サンプルからダウンロードできます。