問題タブ [flink-cep]
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.
apache-flink - Flink ウィンドウと状態のメンテナンス
私はデータ ストリーミング用の apache flink に取り組んでいますが、いくつか質問があります。どんな助けでも大歓迎です。ありがとう。
1) タンブリング ウィンドウの作成に制限はありますか。たとえば、ユーザー ID ごとに 2 秒間のタンブリング ウィンドウを作成したい場合、たとえば 1,000 万を超えるユーザー ID がある場合、それは問題になります。(keyBy ユーザー ID を使用してから、timeWindow を 2 秒間作成しています)? これらのウィンドウは flink で内部的にどのように維持されますか?
2) ラウンド ロビン パーティショニングのリバランスを調べました。クラスターをセットアップしていて、ソースの並列処理が 1 で、リバランスを行った場合、パフォーマンスを向上させるためにマシン間でデータがシャッフルされるでしょうか? その場合、クラスタ内の他のノードにデータを転送するために使用する特定のポートはありますか?
3) 状態の維持に制限はありますか? 非常に大きくなる可能性のあるユーザー ID 関連のデータを維持する予定です。状態を維持するために rocks db を使用した flink について読みました。維持できるデータ量に制限があるかどうかを確認したいだけですか?
4) また、データ量が少ない場合、状態はどこで維持されますか? (JVM メモリで推測します) クラスターに複数のマシンがある場合、すべてのノードが現在の状態のバージョンを取得できますか?
apache-flink - Flink: flink で外部アプリ構成の変更を処理する方法
私の要件は、1 日に何百万ものレコードをストリーミングすることであり、外部構成パラメーターに大きく依存しています。たとえば、ユーザーは Web アプリケーションで必要な設定をいつでも変更でき、変更が行われた後は、新しいアプリケーション構成パラメーターを使用してストリーミングを実行する必要があります。これらはアプリ レベルの構成であり、各データを通過させてフィルター処理する必要があるいくつかの動的除外パラメーターもあります。
flink には、すべてのタスク マネージャーとサブタスクで共有されるグローバルな状態がないことがわかりました。一元化されたキャッシュを持つことはオプションですが、パラメーターごとにキャッシュから読み取る必要があり、レイテンシーが増加します。この種のシナリオを処理するためのより良いアプローチと、他のアプリケーションがそれをどのように処理しているかについてアドバイスしてください。ありがとう。
apache-flink - Apache Flink で新しいパターン/クエリを動的に/実行時に追加/変更するにはどうすればよいですか?
イベントを関連付けるために Apache Flink を使用して CEP システムを構築しようとしています。要件の 1 つは、システムの可用性を失うことなく、実行時に異常検出用の新しいパターンを追加できることです。どうすればそれを行うことができるかについてのアイデアはありますか?
たとえば、一連のセキュリティ イベント (アクセス、認証など) と異常を検出するためのパターン (1 分間に同じマシンへの 10 回以上のログインなど) がある場合、パターン パラメータを変更できるようにしたいと考えています。 10 回のログインではなく、8 回のログインが必要かもしれません。同時に、イベントやシステムの可用性を失うことなく、新しいタイプの異常を検出するために (同じストリームを維持しながら) 他のパターンを作成できるようにしたいと考えています。
よろしく。
templates - Flink と動的テンプレートの認識
いくつかの動的テンプレートに従って、大量のイベントを処理するために Flink CEP を使用する予定です。システムは一連のイベントを認識する必要があります (場合によっては、条件とグループ化を伴う複雑な連鎖)。テンプレートはユーザーが作成します。つまり、コードに触れずに複雑なテンプレートを作成する必要があります。この問題を解決するために Apache Flink を使用することは可能ですか? Filnk は動的テンプレートをサポートしていますか?
apache-flink - イベントの順序が問題にならない Flink CEP プログラムの書き方
CEP ライブラリを使用すると、X の後に Y が続くかどうかを判断できる記述プログラムを簡単に作成できます。
val pattern = Pattern.begin("start").where(_.value == "X")
.next("end).where(_.value == "Y")
しかし、X と Y の順序を気にせず、一方が他方に従うだけのプログラムをどのように説明すればよいでしょうか。たとえば、X, Y と Y, X はどちらも興味深いものです。ただし、X,X や Y,Y は面白くないので、3 番目の共有プロパティで一致させることはできません。
java - execute() を呼び出した後に FLINK CEP に新しいパターンを追加することは可能ですか?
私のコードは次のとおりです。
... 私のパターンを定義する
このコードは機能し、私が望むことを行い、設定したパターンに従う結果ストリームを取得します。
私が知りたいのは、後で環境に追加したこのソースに新しいパターンを適用できるかどうかです新しい結果ストリームに加えて、冗長な古い結果ストリームを取得します (つまり、古いパターンが複数回実行されます)?
apache-flink - ペアで以前に一致するイベントが見つからない場合、Flink はイベントを発行します
2 つのイベント ストリームがあります。1 つはアイテムの有効期間の開始を通知するイベントを発行するストリームで、もう 1 つはアイテムの有効期間の終了を通知するイベントを発行するストリームです。(ストリームは で結合できますitemId
。)
「寿命の終わり」イベントのみitemId1
を持ち、対応する始まりを持たないそれぞれに対して、Flink で新しいイベントを発行するにはどうすればよいですか? (これらの開始イベントと終了イベントは、数時間または数日離れている可能性があります。)
apache-flink - 3 番目のイベントに基づいて Flink で 2 つのイベントをリンクする
2 つのイベントが Flink にストリーミングされる場合、それらに続く 3 番目のイベントの情報を使用して (DataStream API または CEP を使用して) 論理的に結合できますか? たとえば、以下の例の 3 番目のイベントを使用して、right_id と left_id に基づいて最初の 2 つのイベントをリンクできますか?