最初に使用FLINK CEP

まず、CEPは何ですか

アプリケーションシステムでは、このまたはそのイベントが起こるのか、いくつかのイベントは、ユーザによってトリガされ、システムはいくつかのイベントによってトリガされ、一部は第三者によってトリガすることができるが、それらは、システム観察可能な変化の状態として見ることができますユーザログインアプリケーションに障害が発生したような順序又はRFIDセンサリターンメッセージユーザー下。国家政策の変化に対応する2つのカテゴリに分けることができ、一つは単純なイベント処理(単純なイベント処理)で、一般的に誰が、あなたが対処するかどうかを決定、2つの単純なイベント処理ステップ、フィルタリングおよびルーティングを持ち、他方があります複合イベント処理(複合イベント処理)、複合イベント処理自体は、単一のイベントを処理することができ、それは複数のイベントの特性に典型的に必要となるイベントストリームであり、検出および分析に対応します。

ウィキペディアはまた、定義されたCEPを作った、「CEPは、イベント処理モードであり、それは多くの供給源からイベントを取得し、複雑なパターンや環境イベントを検出し、CEPのような(いくつかの意味のあるイベントを識別することを目的と;低遅延、応答の秒またはミリ秒単位で、のような複雑さ、マルチソースでのイベントフローのテストの必要性を:いくつかの脅威や機会)の一種で、できるだけ早くその応答を作るには、「CEPの主な機能には、表示さ脅威への対応、高スループット、迅速なイベントやストリームの超多数の大規模な数に対応する必要があります。

過去のCEPフレームワークは、多くの場合、イベントはその後、収集されて扱うことができない、イベントの豊富なコレクションを扱う、FLINKが来ました。

二、FLINK CEP

FLINK主流のコンピューティングフレームワークがリアルタイムで計算ビッグデータの現在のフィールドとして、ウィンドウFLINKモデルと状態モデルに結合された低レイテンシ、高スループット特性のために天然の支持体は、それがCEPは非常に強力なサポートを提供しています。FLINKは、イベントストリーム内のイベント・パターンの検出を容易にするために使用される、特殊なライブラリ--Flink CEP複合イベント処理で実現しました。

以下はFLINKにCEPを達成する方法の簡単な例です。

1  パブリック クラスCepEvent {
 2      公共 静的 ボイドメイン(文字列[]引数)をスロー例外{
 3          StreamExecutionEnvironmentのENVを
 4                  = StreamExecutionEnvironment.getExecutionEnvironment()。
5          でDataStream <Tuple3 <整数、文字列、文字列>> eventStream = env.fromElements(
 6                  Tuple3.of(1500 "ログイン"、 "失敗" )、
 7                  Tuple3.of(1500 "ログイン"、 "失敗" )、
 8                  Tuple3.of(1500年、 "ログイン"、 "不合格" )、
 9                 Tuple3.of(1320年、 "ログイン"、 "成功" )、
 10                  Tuple3.of(1450年、 "終了"、 "成功" )、
 11                  Tuple3.of(982、 "ログイン"、 "不合格" ));
12          AfterMatchSkipStrategy skipStrategy = AfterMatchSkipStrategy.skipPastLastEvent()。
13          柄<Tuple3 <整数、文字列、文字列>、?> LOGINFAIL =
 14                  パターン。<Tuple3 <整数、文字列、文字列>>始める( "開始" 、skipStrategy)
 15                          .where(新しい IterativeCondition <Tuple3 <整数、文字列、文字列>>                              パブリック ブールフィルタ(Tuple3 <整数、文字列、文字列> S、
 18                                                    コンテキスト<Tuple3 <整数、文字列、文字列>>コンテキスト)スロー例外{
 19                                  リターン s.f2.equalsIgnoreCaseは( "不合格" )。
20                              }
 21                          })回(.within 3)(Time.seconds(5 ))。
22          PatternStream <Tuple3 <整数、文字列、文字列>> patternStream =
 23                  CEP.pattern(eventStream.keyBy(X - > x.f0)、LOGINFAIL)。
24          でDataStreamの<string> alarmStream =
 25                 patternStream.select(新しい PatternSelectFunction <Tuple3 <整数、文字列、文字列>、文字列> (){
 26                      @Override
 27                      公共の文字列を選択(地図<文字列、リスト<Tuple3 <整数、文字列、文字列>>>マップ)がスロー{例外を
 28                          文字列MSG = String.Formatの( "ID%dはログインが5秒間で3回失敗しました。"
 29                                  、map.values()イテレータ()次の()(0得る。。。).f0);
 30                          戻りMSGを、
 31                      }
 32                  });
33  
34          alarmStream.print()。
35  
36          env.execute( "CEPイベント・テスト" )。
37      }
 38 }

結果は以下の通りであります:

 

   可視成功した1500年のユーザーIDをキャプチャします。

         FLINKはCEPで達成する4つのステップに要約することができる:まず、データストリームを構築する必要性は、正しい構成、3、およびデータストリームの2つのモードは、ストリームモードで取得したデータと一致する、モード4が組み合わされます。ここで第一および第三のステップは、あなたがビジネスニーズをマッチングパターンを反映して、正しく構築さFLINK CEPがサポートする特性を活用する必要があり、コアは第二部のビルドモードで、一般的に標準的な方法です。

三、CEPサポートにFLINK CEP

コアパターンマッチングというFLINK CEPは、異なるサポート特性のパターンマッチングは、多くの場合、対応するフレームCEPを広く適用することができるかどうかを決定します。FLINK CEPは、モデル上で、次のためにいくつかのサポートを提供します。

(A)支持マッチングパターン

いくつかの一般的なベースモード、および異なるパターンマッチの意味表現とパターンマッチングは、モデルがどの程度適用できることを意味します。

FLINK CEPは、セマンティックパターンマッチングをサポートするために、次の機能があります。

  1. 一致の数をサポートし、一致の数をサポートするために、一致が(oneOrMore)を一回以上指定することができる回数(回(N))の固定された数と一致するように指定することができ、指定された範囲は、時間(時間(N、M))の固定数であってもよいです。
  2. サポート履歴マッチング、マッチングのプロセスは、現在のイベントの特性を決定するために行うことができる、我々はまた、判決の履歴マッチング結果の一致するイベント・グループに戻って行くことができます。
  3. 支持グループ一致、シングルモードパターン群にまとめサポート、など、または、まで支持およびセマンティックモデルの異なる組み合わせ、開始、次、followBy、otNext、notFollowBy。
  4. ウィンドウをマッチングサポートは、時間ウィンドウのサポートは、あなたが簡単に特定の時間ウィンドウ内でパターンマッチングを行うことができます。

(II)の近くに異なる条件をサポートしています

ただ一つのパターンが一致する場合は、近づいて条件を検討する必要はありません。グループ実行モードでは、実行の複数のモードの組み合わせであるプロセスは、条件が異なるモードの特定のグループのパターンにイベントのセットにマッチにどれだけ近いかを意味します。異なるアプローチの条件を使用して、大幅に決勝戦の結果を変更します。

近くのサポートの三つの条件でFLINK CEP:

A. ネイバーが不一致一致イベントではないイベントの間の厳密な関係を持っている必要があります前と後の厳格な連続性は、近くに厳格なマッチングイベントを指します。

B. リラックスした連続性、緩い一致するイベントを指すが非マッチングマッチングイベントを持つことができ、非マッチングイベントの存在は、イベントが非連続的障壁成功一致ではありません。

C. 緩いマッチングに基づいて非決定マッチング緩い非決定リラックス連続性、イベントがパターンに一致するように仕上げられている場合でも、他のモードの後ろに試合に参加することができます。

(C)ポリシー後の異なるマッチをサポート

グループが正常に特定のパターンと一致した場合の戦略と一致した後、入射するように、後続のパターンマッチングに関与するイベントのこのセットを指します。実際の開発では、適切な試合のポリシーを選択するように注意する必要があるように、異なるマッチング戦略の後、著しく異なる結果と一致するようにつながります。

FLINK CEPは、次の5つのマッチング戦略をサポートしています。

A. フォローアップモードでの自由な参加になり、現在のイベント・グループ・イベントに一致する手段NO_SKIP戦略。

B. フォローアップモードで最初のイベント、他のイベントができる自由な参加に加えて、設定された現在のイベントと一致する意味SKIP_TO_NEXT戦略。

C. イベント・グループの現在のイベントのいずれかが、その後のパターンマッチングに関与していないことを意味SKIP_PAST_LAST_EVENT政策、。

D. SKIP_TO_FIRST政策、そのような政策は、パターン、それが最大の一致するイベント・グループのイベント・グループに一致する指定されたパターンが含まれている場合、現在のイベント・グループに一致する任意の子は、このサブ試合が破棄されますを指定する必要があります。

E. SKIP_TO_LAST政策、そのような政策は、パターンを指定する必要があり、それは指定されたパターンは、最小一致するイベント・グループのイベント・グループと一致して含まれている場合は、現在のイベント・グループに一致する任意の子は、このサブ試合は破棄されます。

順不同イベントと時間をサポートするために(D)

CEPの過程では、イベントのシーケンスは、一連のイベントが正常に対応するモードと照合されます本当の意思決定に到達するので、それに到達することが重要です。CEP業界現在既存のコンピューティング・フレームワークは、一般的に、すなわち、パターンマッチングのための基礎としての処理時間が、このモデルはCEP分散環境の現在の要件を満たすことができない、到着イベントの自然な順序を使用します。分散環境におけるビッグデータでは、イベントのシーケンスは、一連のイベントに到達すると、多くの場合、一致していない、と秩序の外に到達するまでの遅延等、あり、そして多くの場合、適切なイベントパターンマッチングに時間に依存する必要がある、またはマッチングエラーが発生しますまたは失敗に一致します。

また、中にFLINK CEPで役割を果たすことができる透かし機構を備えたイベントの時間特性を含むFLINK時間モデル固有のイベント、。FLINK CEPイベントがキャッシュされ、ないスタートパターンマッチング、大幅に、することができ、次いで最後に、FLINK CEPキャッシュされたイベントは、対応する透かしのイベント時間によってソートされ、その後、適切なパターンマッチングを行いますCEPは、分散環境で問題を解決します。

第四に、の終わり

すべての人生の歩みでCEPは、インテリジェント交通、ユーザーとしてその後、このような多くのセキュリティ攻撃アラーム、ハザードモデリング、脆弱性の発見の分野のようになど金融セクター管理のリスク、不正検出、市場戦略、などのアプリケーション、、、などなどを持つことができます等を適用することができる電流で再関連のIOT、漏斗は、多数のシナリオです。鉱業と容量FLINK CEP、エンパワーメントとビジネスシナリオのさまざまな出力値のさらなる向上のために必要。

おすすめ

転載: www.cnblogs.com/029zz010buct/p/11570551.html