この記事のトピックは、Wikipediaの一般的な特筆性に関するガイドラインを満たしていない可能性があります。トピックとは ( 2018年10月) |
StreamSQLは、 SQLを拡張し、リアルタイムデータストリームを処理できるクエリ言語です。SQLは主に、有限個のタプル(行)の集まりであるリレーション(テーブルとも呼ばれます)を操作することを目的としています。StreamSQLは、同時にすべてのタプルが利用可能ではない、無限のタプルのシーケンスであるストリームを操作する機能を追加します。ストリームは無限であるため、ストリームに対する操作は単調である必要があります。ストリームに対するクエリは通常「継続的」であり、長時間実行され、増分的な結果を返します。
StreamSQL 言語は通常、データ ストリーム管理システム(DSMS) のコンテキストで使用され、市場データ分析、ネットワーク監視、監視、電子詐欺の検出と防止、クリックストリーム分析、リアルタイム コンプライアンス (マネー ロンダリング防止、RegNMS、MiFID ) などのアプリケーションに使用されます。
その他のストリーミングおよび継続的な SQL のバリエーションには、StreamSQL.io、Kafka KSQL、SQLStreamBuilder、WSO2 Stream Processor、SQLStreams、SamzaSQL、Storm SQLなどがあります。
StreamSQLはSQLの型システムを拡張し、テーブルに加えてストリームをサポートします。ストリームを操作するための新しい操作がいくつか導入されています。
ストリームからの選択SELECT-ストリームに対して標準ステートメントを発行することで、関数を計算したり(ターゲットリストを使用)、不要なタプルを除外したり(WHERE句を使用)することができます。結果は新しいストリームになります。
ストリーム-リレーション結合- ストリームをリレーションと結合して新しいストリームを作成できます。ストリーム上の各タプルは、述語に基づいてリレーションの現在の値と結合され、0個以上のタプルが生成されます。
結合とマージ- 2つ以上のストリームは、結合またはマージによって結合できます。結合は、タプルを厳密なFIFO順序で結合します。マージはより決定論的で、ソートキーに従ってストリームを結合します。
ウィンドウ処理と集約- ストリームをウィンドウ処理することで、有限個のタプルセットを作成できます。例えば、5分のウィンドウには、指定された5分間のすべてのタプルが含まれます。ウィンドウ定義により、タプルのフィールド値に基づいて、複雑なメッセージ選択が可能になります。有限個のタプルセットが作成されると、カウント、平均、最大値などの分析機能を適用できます。
ウィンドウ処理と結合- ストリームのペアをウィンドウ処理し、結合することもできます。結合ウィンドウ内のタプルは、述語を満たす場合、結合されて結果のタプルを作成します。
StreamSQLは、複合イベント処理(CIP)と密接に関連するイベントストリーム処理(Event Stream Processing)に関する学術研究から生まれました。マイケル・ストーンブレーカー氏の指揮の下、30名の教授と学生からなるAuroraプロジェクトチームが2001年から2003年にかけて共同でStreamSQLの中核となる原理を開発しました。
AuroraプロジェクトはBorealisプロジェクトに置き換えられました。BorealisはAuroraの分散マルチプロセッサバージョンです。