BigQueryIO.Read.fromQuery位于EU的数据集问题

时间:2016-02-22 16:41:17

标签: java google-bigquery google-cloud-dataflow

我在查询位于EU的BigQuery表/数据集时遇到问题。这里报告了这个问题:https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues/86

我在BigQueryTableRowIterator的createDataset方法中设置了解决方法,并将位置设置为EU。如果我使用DirectPipelineRunner运行Pipeline但是使用DataflowPipelineRunner失败,则此修复工作正常。主要原因是名为_dataflow_temp_dataset *的数据集。此数据集位于美国而非欧盟......我找不到创建这些数据集的代码行。在BigQueryTableRowIterator中,使用名称模式创建临时数据集:

temporaryDatasetId = "_dataflow_temporary_dataset_" + rnd.nextInt(1000000);

在最终修复之前,有没有人知道这个bug的解决方法?

1 个答案:

答案 0 :(得分:1)

为此工作有一个修复,它将在数据流管道中使用位置感知临时数据集。

同时,您可以联系云支持,他们可以为您的bigquery表设置默认位置。如果将默认位置设置为EU,则表示Dataflow使用的临时数据集也将位于EU中。