問題タブ [complex-event-processing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - CEP:リアルタイムイベントまたはデータフィードのソース?
Javaアプリケーション内で使用できる無料のイベントソースを探しています。YahooFinanceに似たものを探しています。ここでは、大量の株式情報を照会して、結果をcsvとして取得できます。
理想的には、APIまたはクエリ文字列を含むURLが最適です。
c++ - 膨大な数のルール(条件と制約)CEPシステムを扱う
私は100k以上の一意の入力を受け入れるアプリケーションに取り組んでいます-簡単にするために、各入力が浮動小数点値(a、b、c ...など)であると仮定します-ただし、文字列などでもかまいません。アプリケーションには多くのルールがあります/これらの入力に関連するイベント/トリガー。
例1:
定義 1:上記のルールは次のように述べています。
例 2:
定義 2:上記のルールは次のように述べています。値の更新後、入力 'x' の現在の値が以前の値と等しくない (値が変更された) EventZ を実行する
私が見つけたのは、入力の数が増加し、ルールの数が増加するにつれて、「特定の」ルールを評価し、イベントをトリガーする必要があるかどうかを判断するために必要な計算の総量が制御不能になっていることです-Throwingより速く、より多くのハードウェアを問題に使用しても、期待どおりにスケーリングされません。
現時点では、新しい入力が更新されるたびに、関連する入力/変数が、変数をそれを含むルールにマップするハッシュ テーブルで検索されます。その後、これらの各ルールが評価され、結果が true またはアクション可能である場合、関連するイベントが非同期でトリガーされます。
この問題は複雑なイベント処理の領域にあります。残念ながら、この領域のアーキテクチャのほとんどは、上で説明したのと同じデッドヘッド アプローチを使用しています。おそらく、物事が評価/再評価される頻度に関連するいくつかの改良が加えられています。アイデアは、ほぼリアルタイムで反応できるシステムを持つことです。いくつかの状況では、少数の入力がアクティブなルールの 95% 以上に存在するため、ルールと入力を複数のノードに分散することもうまく機能していないようです。
この問題、データ/構造、またはアルゴリズムを解決するためのより良い方法を知っている仲間のSO'erがそこにいることを望んでいました。
私が念頭に置いている単純なアイデアは、従属論理推論のリストを構築できるということです。
そのような2つのルールがある場合:
次に、「a」または「b」のいずれかの更新で両方の評価が必要になることはありませんが、そのような論理推論構造の構築は非常に複雑でエラーが発生しやすく、完全かつ厳密にテストするのが難しいことがわかりました。
入力は、株価、温度センサーなどを表す可能性があります。
さらに注意してください。入力の一部は時間的に制約されています。つまり、ルールでは、変数の状態が一定時間特定の位置/状態にある必要がある場合があります (例: 過去 30 秒間の MSFT の価格 > 20 ドル)。現在、これは 0 または 1 /false または true のいずれかの値を持つ「表現変数」(ファサード) を使用して実現されています (変数の値は別のメカニズムによって決定され、通常はトリガーされたルールの結果です) )。
また、ほぼリアルタイムの制約と 1 秒あたりに生成されるデータ量のために、トリガーとストアド プロシージャを備えた DB を使用するオプションは問題外であることに注意してください。
timestamp - Esper: POJO またはランタイム定義のイベント タイプで開始/終了タイムスタンプを使用する
ドキュメントによると、可能なはずのイベントタイプで時間間隔代数メソッドを直接使用しようとしています。create schema
最初に、次のような構文を使用していくつかのイベント タイプを定義しようとしました。
このようなクエリを書くと
実際にはエラーなしでコンパイルされます。しかし、結合の代わりにパターンを使用しようとすると、次のようになります
それは私にエラーを与えます:
ドキュメントで説明されているようにタイムスタンプ プロパティが定義されているベース イベント タイプから派生した POJO を使用しようとすると、同じエラーが発生します。実際に基本型を使用すると機能しますが、他のすべてのケースでは継承に関する情報を使用するのに、この場合は継承された時間プロパティを使用しないのは奇妙に思えます。
私は何か間違ったことをしていますか?これはバグですか?それとも、意図したとおりに機能するのでしょうか...
http - Esper CEP 実装の httpadapter
httpadapter を使用して、esper エンジンから Web ページにデータを送信する必要があります。例に記載されている手順に従いました。どういうわけかうまくいきませんでした。プレーンな Java オブジェクトを使用して送信する必要があります。また、リクエストとレスポンス用に Web サーバーを構成する方法も教えてください。
android - AndroidでEsperを使用したCEP?
AndroidデバイスのCEPを対象とするライブラリはありますか?たとえば、Android用のEsperバージョンはありますか?
algorithm - イベントのフィルタリングとトリガーのアルゴリズム
これが私が手にしている問題です-
私は一連の「低レベル」イベント ストリーム (並行データベース レコード作成) を持っています - 「マットはコミットメント (ディメンション) で 4* の評価を得ています」... のような事前定義された「高レベル」イベント基準を持っています - 「誰かがコミットメントで 4* の評価を獲得し、メンターシップで >=3* を取得した場合」、イベントをトリガーします。これは、システム全体の任意の (N) 人のユーザー (マットと彼の仲間) に対して発生します。
それにアプローチする正しい方法は何ですか。最初に頭に浮かぶのは、CEP (Complex Event Processing) です。みんな、どんな提案/指針も高く評価されます。
java - AND、OR、および SEQ を使用したイベント ストリームのリアクション/ECA ルールによるイベント パターン検出
イベントが属性/値のペアのセットであるイベント ストリームがあります。
E1 = {(ID, val), (attr, val), (attr, val), ... }
AND, OR, SEQ
SNOOP スタイルのイベント代数のみを使用して、つまり、括弧
を使用せずに単純なパターンを検出したいと考えています。
例: E1 AND E2 OR E4
、E
は識別子です。
ここで、イベント処理エンジンを使用してイベント ストリームを追跡し、パターンが見つかった場合に対応し たいと考えています。ルールは、次の例のようにRuleML ECAルールに似ています。
これらのルールは、リストから生成/解析する必要があります。上記のような単純なパターンを検出できる CEP エンジンを誰かに勧めてもらえたら、それは素晴らしいことです。Esper
と prova (Prolog + Java)を試しましたが、リストのパターンを一連のルールに「解析」することができませんでした。
どんな助けでも大歓迎です!
Droolsがそのトリックを実行できるかどうか、誰か知っていますか? AND,OR,SEQ
特に、ルールの on/when 部分で使用できるようにする必要があります。
rules - AND、SEQ、ORの条件を持つECA/反応ルールのよだれ
Droolsはこのあたりでかなり目立つようですので、私は尋ねると思いました:
Droolsルールをイベントパターン検出に使用できますか?
パターンはfrom:"Event_x" SEQ/AND/OR "Event_z"
です。以下の例は、望ましい使用法を示しています。イベントは、既知のIDを使用して識別されます。
drools - DroolsFusionCEPでのテストイベントの有効期限
チャオ、私はいくつかの方法でテストしましたが、それでもDrools Fusionのイベント有効期限メカニズムをテストして検証することができないので、ちょっとしたガイダンスを探していますか?
マニュアルを読み、この機能に興味があります。
つまり、イベントが作業メモリーに挿入されると、エンジンは、イベントが他のファクトと一致しなくなったことを検出し、自動的に撤回して、関連するリソースを解放することができます。
Eclipse、5.4.0.FinalでDrools IDEを使用しており、「新しいDroolsプロジェクト」ウィザードで作成されたテンプレートコードを変更して、イベントの有効期限をテストおよび確認しました。
以下のコード。「ライフサイクル」を正しく機能させるために私が理解した方法は次のとおりです。
- KBaseをSTREAMモードでセットアップする必要があります-チェック
- イベントを時間順に挿入する必要があります-チェック
- イベント間の時間的制約を定義する必要があります-私の場合は最後のMessage()を確認してください
ただし、最後にEventFactHandleを検査すると、Event()の有効期限が切れていません。ご協力いただきありがとうございます。
Java:
よだれ:
注意:メッセージイベントに1秒の有効期限を追加しても、
最初のメッセージイベントが挿入されたという期待どおりの結果がまだ得られません。期待していたはずの結果が期限切れになりましたか?ご協力いただきありがとうございます。