Beam - 在bigquery的大量数据加载期间处理失败

时间:2017-06-29 10:21:49

标签: google-bigquery google-cloud-dataflow

我最近开始使用Apache beam。我相信我在这里遗漏了一些东西。我需要从一个非常庞大的数据库加载到bigquery。这些表很大。我已经编写了示例梁作业来从简单表中加载最少的行。

  1. 如何使用JDBCIO从表中加载n行?无论如何,我可以像在传统的数据迁移工作中一样批量加载这些数据。?
  2. 我可以从数据库中批量读取并批量写入bigquery吗?

  3. 我也看到过,将数据加载到bigquery的建议方法是将文件添加到数据存储桶中。但是,在自动化环境中,要求是将其写为数据流作业以从db加载并将其写入bigquery。我的设计应该如何使用apache beam来解决这个问题?

  4. 请帮忙。

1 个答案:

答案 0 :(得分: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