2017-06-26 5 views
1

誰かがBigtableIO内でどのようにバンドルが動作しているのか分かっていますか?いずれも、GroupByまたはCombineのDoFnを使用するまでは問題ありません。この時点で、パイプラインはPCollection要素の枠をPaneInfo.NO_FIRINGからPaneInfo{isFirst=true, isLast=true, timing=ON_TIME, index=0, onTimeIndex=0}に変更し、次にBigtableIOは次のログINFO o.a.b.sdk.io.gcp.bigtable.BigtableIO - Wrote 1 recordsを出力します。何百万のレコードを出力するか、BigtableIOが各レコードのライターを開いたり閉じたりしているときに、ログにパフォーマンス上の問題が発生していますか?なぜBigtableIOはGroupBy/Combine DoFnの後にレコードを1つずつ書き込むのですか?

答えて

1

BigtableIOは、バッチRPCで複数のレコードを送信します。しかし、そこには、複数のレコードが "バンドル"で送信されていることが前提です。バンドルのサイズは、手前のステップとDataflowフレームワークの組み合わせによって異なります。あなたが見ている問題はBigtableIOに直接関係しているようには見えません。

FWIW、hereは、finishBundle()メソッドで発生するレコードの数を記録するためのコードです。

+0

私はそれも理解しましたが、なぜ1つのレコードだけのバンドルを作るのだろうと思います。最小のバンドルサイズを設定するのは難しいことではないでしょうか?私は別のウィンドウを適用しようとし、特定の量のデータがウィンドウに到着したときにのみトリガーを試みましたが、まだバンドルごとに1つのレコードがあります... –

関連する問題