Flinkのシンク戦闘の1つ:予備調査

シンクについて

次の画像はFlinkの公式によるものです。赤いボックスはシンクです。リアルタイムデータは変換ステージでビジネスロジックを完了した後、ソースで始まり、シンクで終了することがわかります。したがって、シンクを使用して、コンソール出力やデータベースの保存などの計算結果を処理できます。
ここに画像の説明を挿入

「フリンクのシンク戦闘」に関する一連の記事

この記事は、シンクの予備的な理解を得ることを目的とする「Flinkのシンクコンバット」の最初のパートです。基本的なAPIとaddSinkメソッドの分析と研究を通じて、以降のコーディングコンバットの強固な基盤を築くことができます。

サンプルコードから始めましょう

  1. 以下は単純なflinkアプリケーションコードです。赤いボックスの印刷メソッドはシンク操作です。
    ここに画像の説明を挿入
  2. 次の図は、DataStreamクラスのAPIである公式のシンクメソッドです。直接呼び出しを使用してシンクを実現できます。コード内の出力はその1つです。
    ここに画像の説明を挿入
  3. 次に、上の図のAPIのソースコードを確認します。最初にprintメソッドを確認します。DataStream.javaでは、次のように、addSinkメソッドが実際に呼び出され、入力パラメーターはPrintSinkFunctionです。
    ここに画像の説明を挿入
  4. もう1つの一般的に使用されるAPIはwriteAsTextです。ソースコードは次のとおりです。writeUsingOutputFormatメソッドが呼び出されます。
    ここに画像の説明を挿入
  5. writeUsingOutputFormatをトレースすると、addSinkも呼び出され、入力パラメーターはOutputFormatSinkFunctionであることがわかりました
    ここに画像の説明を挿入
  6. AddSinkはprintおよびwriteAsTextの背後で呼び出されるので、一般的に使用される別のwriteAsCsvメソッドについてはどうですか?addSinkを呼び出すことは可能ですか?それと案の定、と呼ばれるようwriteAsTextオープンwriteUsingOutputFormat、およびaddSinkを呼び出しているメソッドを:
    ここに画像の説明を挿入
  7. 要約すると、データシンクのキーは、addSink入力パラメーター、つまりSinkFunctionインターフェイスの実装です。クラス図を通じて、一般的なシンク機能がどのように実装されているかを直感的に確認できます。
    ここに画像の説明を挿入
  8. 上の図から、抽象クラスRichSinkFunctionがさまざまなシンク機能に密接に関連していることがわかります。以下に示すように、それに焦点を当て、クラス図にメソッドシグネチャを表示する必要があります。
    ここに画像の説明を挿入
  9. 上記のように、RichSinkFunctionがコンテンツを持っていないが、それが実現さSinkFunction、継承AbstractRichFunction、それはRichFunctionSinkFunctionこれら二つの特性の組み合わせ。
  10. RichFunctionの特性は、以前の「Flink DataSource Trilogy」で理解されています。これは、リソースの開閉です。
  11. SinkFunctionの特徴はですか?明らかに、これは計算結果を処理するために使用されます。クラス図は2つのinvokeメソッドを示しています。公式のPrintSinkFunction.javaを見てください
    ここに画像の説明を挿入
  12. 次に示すように、writer.write(レコード)のソースコードはPrintSinkOutputWriter.javaにあります。
    ここに画像の説明を挿入

まとめ

これまでのところ、Flinkのシンクの基本的な理解があります。

  1. リアルタイムの計算結果(出力や永続化など)の処理を担当します。
  2. 主な実装方法は、DataStream.addSinkメソッドを呼び出すことです。
  3. さまざまなシンク機能を実現する主な方法は、addSinkメソッドの入力パラメーターによって定義されたインターフェースを実装することです。

次の章では、一緒にシンクの実際のコーディングを行ってみましょう実際の戦闘の方向:公式に提供されているシンク機能を体験し、カスタムシンク機能を実装します。

私の公開番号に注目してください:プログラマーXinchen

ここに画像の説明を挿入

376の元の記事を公開 986を賞賛 128万ビュー

おすすめ

転載: blog.csdn.net/boling_cavalry/article/details/105597628