2016-05-05 4 views
0

これは適切な質問ではありませんが、現在はデータソースを複数の場所で複数のチャンクに分割するデータフロージョブを実行しようとしています。しかし、1つのジョブで同時に多数のテーブルに書き込もうとすると、データフロージョブがHTTPトランスポート例外エラーで失敗する可能性が高くなります。ソースとシンクの条件私は1つの仕事にラップすることができますか?Googleのデータフローを使用した複数のエクスポート

このシナリオを回避するには、この1つのジョブを複数のデータフロージョブに分割して、同じデータソースを複数回処理する必要があることを意味する(データフロージョブ)。今は大丈夫ですが、後で自分のデータソースが大きくなる場合は、避けることが理想的です。

したがって、1つの安定したジョブにグループ化することができるデータソースとシンクの数がどれほど多いのでしょうか?そして、私のユースケースのための他の優れたソリューションがありますか? the Dataflow service description of structuring user codeから

答えて

0

データフローサービスは、フォールトトレラントであり、労働者の問題の場合にはあなたのコードを複数回再試行することがあります。データフローサービスはコードのバックアップコピーを作成し、手動の副作用(コードが一意でない名前の一時ファイルに依存している場合など)に問題が発生する可能性があります。

一般に、データフローは比較的弾力性があります。出力したい場所に基づいてデータをPartitionに送信することができます。これらの出力場所への書き込みは自動的にバンドルに分割され、書き込まれなかったバンドルは再試行されます。

書き込み先の場所がまだサポートされていない場合は、writing a custom sinkを参照してください。そこにあるドキュメントはフォールトトレラントな方法でこれを行う方法を説明しています。

単一のジョブで使用できるソースとシンクの数には限界があります。あなたはあなたがどれくらい多くの使用を予定しているかについての詳細はありますか?制限を超えている場合は、必要に応じて複数のシンクの代わりに単一のカスタムシンクを使用する方法もあります。

その他のご質問がある場合は、お気軽にコメントしてください。あなたが探していることについてもっと知ることに加えて、これをバッチまたはストリーミングジョブとして実行する予定があるかどうかを知るのに役立ちます。

+0

ありがとうございます。私は4つのソースを想定していますが、1つのデータフロージョブで約60〜200のアウトプットシンクがあります。そのため、多すぎるかどうかわかりません。場所は私がgcsまたはbqのどちらかを使用していると期待してサポートされています。データソースはすべて静的であり(バッチデータフロージョブなので)、将来はストリーミングソースを接続することは可能ですが、オプションです –

関連する問題