私はmvn依存性google-cloud-dataflow-java-sdk-allバージョン2.1.0を使用しています。パイプライン用のカスタムシンクを追加しようとしています。Dataflow v2.1のカスタムバインドされていないシンクを作成
パイプラインでは、私はPubsubメッセージを取得しており、最終的にこれらをPCollection of Stringsに変換しています。
これは私が設定したパイプラインの簡易版である:チームの誰かがすでにこのデータを書き出すためのコードを書いていますので、私はカスタムシンクを必要とする理由がある
Pipeline pipeline = Pipeline.create(options);
pipeline.apply(PubsubIO.readMessages())
.apply(Window.into(FixedWindows.of(Duration.standardSeconds(1))))
//transformations
.apply(//Write to custom sink)
BigQueryを使用し、これにREST APIを提供しました。だから、私のシンクは、関連するデータでこのREST APIを呼び出すでしょう。私はBigQueryIOの使用に熱心ではありません。これは、すでに書かれたコードの部分を複製することを含むからです。
Apache Beam website Java SDKを使用してカスタムシンクを作成する方法についてのドキュメントが見つかりません。誰かが正しい方向にうなずいてくれれば大変感謝します。
ParDoを使用してデータをREST APIに送信することも考えましたが、技術的にはシンクがなくなり、「データフローの方法」ではなくなりました。