2017-06-29 31 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