从/来自bigquery

时间:2017-06-06 16:09:58

标签: google-cloud-dataflow

我刚刚开始学习如何使用某些Google云端产品。 我目前正忙于使用Cloud Dataflow。 我决定开始写简单的程序。 它只是从Bigquery表读取而不是写入另一个表。

这项工作失败了。

Pipeline p = Pipeline.create(options);
PCollection<TableRow> data = p.apply(BigQueryIO.Read.named("test")
    .fromQuery("select itemName from `Dataset.sampletable`").usingStandardSql());



List<TableFieldSchema> fields = new ArrayList<>();
fields.add(new TableFieldSchema().setName("category").setType("STRING"));
TableSchema schema = new TableSchema().setFields(fields);

data.apply(BigQueryIO.Write.named("Write").to("Dataset.dataflow_test")
    .withSchema(schema)
    .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE)
    .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));

p.run();

}

错误代码:

(6093f22a86dc3c25):工作流程失败。原因:(6093f22a86dc389a):S01:测试/ DataflowPipelineRunner.BatchBigQueryIONativeRead +写/ DataflowPipelineRunner.BatchBigQueryIOWrite / DataflowPipelineRunner.BatchBigQueryIONativeWrite失败,(709b1cdded98b0f6):在的BigQuery项目创建数据集 “_dataflow_temp_dataset_10172746300453557418” “1234项目” 失败,(709b1cdded98b191): BigQuery执行失败。,(709b1cdded98b22c):错误:  消息:42241429167的IAM setPolicy失败:_dataflow_temp_dataset_10172746300453557418  HTTP代码:400

我可以想象,也许在阅读后立即写下它可能是导致失败的原因。因此,我想知道一个很好的解决方案。

0 个答案:

没有答案