2017-11-20 5 views
1

私は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に送信することも考えましたが、技術的にはシンクがなくなり、「データフローの方法」ではなくなりました。

答えて

0

制限のないシンクでは、ビームにシンク固有のAPIはありません。全てのIO変換は基本的にParDoを実装します。特定の保証を提供する方法はいくつかあります(例:GroupByKeyを使用してDataflowでチェックポイントバリアを提供する方法)。外部システムとのやり取り(この場合はREST API)によって異なります。あなたのケースに入る方法はParDoのように見えます。

関連する問題