次々と伝送される大量データを24時間リアルタイムで処理する技術-SAP Sybase Event Stream Processor (ESP)


こんにちは、SAPジャパンの編集部です。本日は、証券取引システムの株価情報のように次々と電送されてくる大量データ(いわゆる、ストリームデータ)をリアルタイムに分析するSAP Sybase Event Stream Processor (以下、SAP Sybase ESP)という製品についてその特長や使いどころを書きたいと思います。

CEP:Complex Event Processing(複合イベント処理)というジャンルを聞いたことがあるでしょうか。ここ数年で耳にするようになった比較的若い名称です。イベント処理を専門とするエンジンで、複数のストリーム状のデータを受けてリアルタイムに分析するサーバーを指します。そのCEPというカテゴリーに属するのがSAP Sybase ESPです。

次々と伝送されてくるストリームデータを24時間リアルタイムで監視するSAP Sybase ESP

Water Flowing Over Rocks; Hawick Scottish Borders ScotlandSAP Sybase ESPは、金融や通信といった高速なデータ処理が求められる場面で使われ出しました。たとえば、証券取引システムを考えると、保有する銘柄(ポジション)に対して、現在の価値がどれほどで、損をしているのか得をしているのかを把握するのはリスク管理上たいへん重要です。そこでは、取引所から新しい価格情報が伝送されるたびに、銘柄ごとの現在価値を更新し、それらを合算して、トレーダーや会社全体のリスクを算出します。その結果、何らかのしきい値を超えた指標があれば、アラートをあげるなど注意喚起を促す必要があります。

このように、次々と伝送されてくるデータをストリーム状データと呼びます。そのような入力データに対し、1件1件決められた処理をリアルタイムで行うのがCEPです。リアルタイム処理の反対はバッチ処理ですね。夜間バッチで1日に1回処理をするのが従来ですが、それでは現在のビジネス速度に間に合いません。速度を追求して行き着く先がリアルタイム処理です。また、CEPはもともとモニタリングの分野で活用されていました。人間が見張る代わりに、SAP Sybase ESPに24時間リアルタイムでデータを監視させるのです。このように、リアルタイム分析が得意なのがSAP Sybase ESPで、しかも、サブミリ秒という低遅延な処理を実現できます。

SAP Sybase ESPで行われる処理とその目的

さて、SAP Sybase ESPで行われる処理や目的にはいくつかのパターンがあります。代表的なものとして1つ目は、データの加工や整形です。入力される生データには、そのままでは保存や分析ができないものがあります。後工程や他システムの都合に合わせて、SAP Sybase ESPで加工します。数値計算をする場合もあるでしょう。発生数を数えたり、値の平均を取ったりして、その後の分析に必要なデータを作り出します。

2つ目は、エラーデータなどのフィルタリングです。また、データの種類によって適切な相手に振り分けることもあります。

もう少し複雑な例として、スナップショットの把握があります。たくさんの種類の入力ソースがある場合、ひとつのソースだけでなく、その全体像を把握できれば状況の理解が進むでしょう。1件1件処理するSAP Sybase ESPは、スナップショットを維持しつづけることができます。また、データソースによっては、前回からの変更のみが与えられる場合があり、その差分を累積しつづけることはSAP Sybase ESPなら容易に可能です。

このような基礎を積み上げると、アラート処理につながります。しきい値やルールを定めて、何か疑わしい状況を事前に検知したり、異常の発生を事後検知したりして、人間が監視している画面や別システムに、遅延なくアラートを伝えることができます。

インメモリーデータベースの外見をしたSAP Sybase ESPの内部設計とは

272752_l_srgb_s_glSybaseはもともとデータベースベンダーですので、SAP Sybase ESPにはインメモリーデータベースの機能もあります。入力データや発生したイベントは、SAP Sybase ESP内の「テーブル」に保存し、検索したり、結合したりできます。INSERTやSELECTだけでなく、UPDATEやDELETEもできます。そのような処理のフローは、CCL(Continuous Computation Language)と呼ばれるSQLに似た文法で記述します。そのため、データベースに慣れた技術者であれば、SAP Sybase ESPの扱いは容易です。

このようにSAP Sybase ESPはインメモリーデータベースの外見をしていますが、その内部設計はデータベースとは大きく異なります。データベースはデータを保持することが主目的です。一旦テーブルにデータが記録されれば、行の前後関係は失われ、直近のデータやある行の前後を取得するには、更新日付などでソートしなければなりません。また、不特定多数のクライアントが様々なクエリーを送信するため、クエリーの構文処理や排他制御やトランザクション処理技術をデータベースは発展させてきました。いうなれば、スタティックなデータにダイナミックなクエリーが飛び込んでくるのがデータベースです。

一方、SAP Sybase ESPでは、データが次々やってくる前提で1件1件処理するので、データの前後関係に意味があります。そのため、直近の100件や10分間のデータ、1つ前のデータに簡単にアクセスできます。大量に入力されるデータに対して、興味あるものだけ保持し、不要なものはフィルタリングして捨てられることになるでしょう。データの送信元は複数あっても、それらは決まった送信元である場合が多いです。処理のシナリオはあらかじめ定められたもので、プランの生成はシナリオのコンパイル時に済んでいます。いうなれば、スタティックなクエリーに対して、ダイナミックなデータが飛び込んでくるのがSAP Sybase ESPです。そのようなストリーム処理に特化しているので、SAP Sybase ESPを使えば高速で低遅延なイベント処理が実現できます。

まとめますと、SAP Sybase ESPは、メッセージングとインメモリーデータベースの長所を組み合わせた製品です。さまざまなデータソースからデータを受け取り、データの加工や計算や突き合せをしながら、興味のあるイベントを見つけ、低遅延で対応することができます。また、SQLに似たスクリプト言語でロジックを記述します。記述したシナリオは自動で並行処理されるため、排他制御など難しい実装も不要で、スケールアップします。このようにロジックの変更が容易ですので、ビジネスの現場に近いところでやりたいことをすぐに実現できます。

最近、SAP Sybase ESPが使われる場面が広がってきました。特に多いのが、センサーデータの活用です。道路や橋、大型機械、OA機器など、身の回りにはセンサーがあふれています。リアルタイムに分析する方法がなかったため見過ごされてきたものが、SAP Sybase ESPを使って監視できるようになり、保守効率が向上し、今後の製品改善の方向性も把握できるようになってきました。SAP Sybase ESPの今後にご注目ください。

【参考リンク】
金融ビジネスのアルゴリズムトレーディングを支えるリアルタイムデータ分析エンジン SAP Sybase ESP

ご質問はチャットWebからも受け付けております。お気軽にお問い合わせください。

●お問い合わせ先
チャットで質問する
Web問い合わせフォーム
電話: 0120-554-881(受付時間:平日 9:00~18:00)