2017-11-18 4 views
0

ガイ私はいくつかの共通鍵(我々はいくつかのRESTサービスの呼び出しで複数のSQLテーブルについて話している)によって、いくつかのRESTサービスのJSONといくつかの巨大なSQLのテーブルを結合することになっています。事は、このデータは、リアルタイム/無限ストリームとも私は結合列でRESTサービスの出力を注文することができないと思いますではないです。今、愚かな方法は、すべてのデータを持参して、行を一致させることであろうが、それは/メモリ内カサンドラやRedisのようないくつかのストレージを、すべてを保存するために暗示します。巨大な非リアルタイムのデータスマートに参加するために使用することができますapacheのフリンク?

しかし、Flinkがストリームウィンドウのいくつかのキングを使用してX要素(実際にはポイントにあるそれらの要素だけをRAMに格納する)に参加することができるのだろうかと思っていましたが、ハッシュマップの。これは私がスマートな結合を意味するものです。

王は悪魔が細部にありますが、はい、原則的にデータ強化のこの種は、FLINKとかなりなんとかです

答えて

1

について。あなたの要件は完全には明らかではありませんが、私はいくつかの指針を提供することができます。あなたはFLINKのmanaged stateインタフェースでyouselfを知らせることになるでしょう手始めに

。これらのインターフェイスを使用すると、アプリケーションのフォールトトレラント、アップグレード、再スケーラビリティなどが保証されます。

一部のデータをプリロードするには、RichFlatmapを使用し、open()メソッドでデータをロードします。あなたのケースではCoProcessFunctionがより適切かもしれません。この状態を保持し、また、(もはや必要とされている状態を期限切れにし、アウトオブオーダデータが到着するのを待って結果を放出するために使用することができる)タイマーにアクセスすることができる2つの入力を有するストリーミング演算子です。

FLINKは、外部サービスでの作業をより効率的にすることができ、asynchronous i/oをサポートしています。

さらに、Flinkの上位レベルSQL and Table APIsで、RESTサービスコールをuser-defined functionsとしてラップすることでこれに対処することも考えられます。

関連する問題