BigQueryIO.Read.fromQuery 位于欧盟的数据集存在问题
BigQueryIO.Read.fromQuery problems with datasets located in EU
我在查询位于欧盟的 BigQuery tables/datasets 时遇到问题。此处报告了问题:https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues/86
我在 BigQueryTableRowIterator 的 createDataset 方法中解决了将位置设置为 EU 的问题。如果我使用 DirectPipelineRunner 运行 Pipeline,但使用 DataflowPipelineRunner 失败,则此修复有效。主要原因是数据集命名为 _dataflow_temp_dataset*。这个数据集位于美国而不是欧盟......我找不到创建这些数据集的代码行。在 BigQueryTableRowIterator 中,使用名称架构创建临时数据集:
temporaryDatasetId = "_dataflow_temporary_dataset_" + rnd.nextInt(1000000);
在最终修复之前,是否有人知道此错误的解决方法?
目前正在修复此问题,它将在数据流管道中使用位置感知临时数据集。
同时,您可以联系云支持,他们可以为您的 bigquery 表设置一个默认位置。如果您将默认位置设置为欧盟,这意味着 Dataflow 使用的临时数据集也将位于欧盟。
我在查询位于欧盟的 BigQuery tables/datasets 时遇到问题。此处报告了问题:https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues/86
我在 BigQueryTableRowIterator 的 createDataset 方法中解决了将位置设置为 EU 的问题。如果我使用 DirectPipelineRunner 运行 Pipeline,但使用 DataflowPipelineRunner 失败,则此修复有效。主要原因是数据集命名为 _dataflow_temp_dataset*。这个数据集位于美国而不是欧盟......我找不到创建这些数据集的代码行。在 BigQueryTableRowIterator 中,使用名称架构创建临时数据集:
temporaryDatasetId = "_dataflow_temporary_dataset_" + rnd.nextInt(1000000);
在最终修复之前,是否有人知道此错误的解决方法?
目前正在修复此问题,它将在数据流管道中使用位置感知临时数据集。
同时,您可以联系云支持,他们可以为您的 bigquery 表设置一个默认位置。如果您将默认位置设置为欧盟,这意味着 Dataflow 使用的临时数据集也将位于欧盟。