2017-06-29 44 views
0

我最近開始使用Apache beam。我相信我在這裏失去了一些東西。我有一個要求從一個非常龐大的數據庫加載到bigquery。這些表是巨大的。我寫了樣本束作業來從簡單表中加載最小的行。Beam - 在bigquery的巨大數據加載期間處理失敗

  1. 我該如何從表中使用JDBCIO加載n個行?無論如何,我可以像傳統數據遷移作業那樣,批量加載這些數據。
  2. 我可以批量讀取數據庫並批量寫入bigquery嗎?

  3. 另外我也看到,將數據加載到bigquery的建議方法是將文件添加到數據存儲桶。但是,在自動化環境中,要求將其編寫爲數據流作業以從數據庫加載並將其寫入bigquery。我的設計方法應該使用apache beam來解決這個問題?

請幫忙。

回答

1

它看起來像[1]一樣BigQueryIO將寫入批量數據,如果它來自有界的PCollection(否則它使用流式插入)。它似乎也限制了每個文件和批處理的大小,所以我認爲您不需要進行任何手動批處理。

我剛剛從數據庫通過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