都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

SQL Server の StreamInsight について

 SQL Server の注目機能の一つに StreamInsight というものがあります。これは、CEPを実現するものです。HDInsight の『Insight』と同じキーワードがあったので、反応してしまいました。 CEP とは、

情報システムが分析処理をする場合、いったんデータをデータベースに格納してから、再度必要に応じて命令(クエリー)で参照して抽出する内部処理を行うのが一般的です。1回の処理は0.1秒で済むとしても、多数の人が繰り返し利用する状況では、数秒単位で処理が遅延します。

 これに対して、刻々と収集される市場データをより短時間で処理できる方式として注目されつつあるのがCEP(複合イベント処理)です。例えば株のアルゴリズム売買を行うシステムのように、「直前の5分間で株式Aの価格が1%上昇し、株式Bの価格が0.5%下落した時、すぐに株式Cを買う」といった処理に適した手法です。この場合にCEPでは、直前5分間の値動きのデータをメモリー上に保持しておいて、すぐに簡易な処理を実行します。データベースにいったん格納するやり方に比べて数十~数百倍のスピードで情報をさばきます。データをいったん格納・抽出せずに、逐次処理するという点では、「コンピュータ版カンバン方式」とも言えるでしょう。

 金融以外の業務システムでも、生産ラインから営業・物流までの全体を見渡せば、金融市場並みに多数のイベントが起きます。これらを組み合わせて処理するSOA(サービス指向アーキテクチャー)に関連して、CEPの応用が進んでいます。

 非常に面白そうですね。DWH と異なる点は、データをリアルタイムで処理すること、対象データ範囲が数十分~数時間という短時間である点です。SQL Server 2008R2 からサポートされています。リアルタイム且つ高速にデータを扱う必要があるので、2014 ではメモリ最適化テーブルあたりを使用するのでしょうか。

 まだ、SQL Server 2014 CTP1 で StreamInsight は検証できないようですね。CTP2 あたりで対応されるのでしょうか?(見つけることができませんでした。) 気長に待ちましょう。