2017-06-29 5 views
0

私は最近Apacheビームで開始しました。私はここで何かを逃していると確信しています。私は非常に巨大なデータベースからbigqueryにロードする必要があります。これらのテーブルは巨大です。単純なテーブルから最小限の行をロードするサンプルビームジョブを作成しました。ビッグクエリーのための大量のデータ読み込み中のビーム処理失敗

  1. JDBCIOを使用してテーブルからn個の行をロードするにはどうすればよいですか?とにかく、従来のデータ移行ジョブと同じように、これらのデータをバッチで読み込むことができますか?
  2. データベースからバッチ・リードを実行し、bigqueryにバッチを書き込むことはできますか?

  3. また、データをbigqueryにロードする方法として、ファイルをデータストアのバケットに追加する方法があります。しかし、自動化された環境では、DBからロードしてbigqueryに書き込むためのデータフロージョブとして記述する必要があります。私のデザインはApacheのビームを使ってこの問題を解決するためにどのようにアプローチすべきですか?

助けてください!

答えて

1

BigQueryIOは、境界のあるPCollection(それ以外の場合はストリーミング・インサートを使用する)から来た場合、データのバッチを書き込むように見えます[1]。また、各ファイルとバッチのサイズが制限されているように見えるため、手動バッチ処理を行う必要はありません。

私はデータベースからJDBCIOを読み込み、必要に応じて変換し、BigQueryIOに書き込みます。

[1] https://github.com/apache/beam/blob/master/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java

関連する問題