HTTP请求期间的Google Dataflow和Bigquery Transport错误

时间:2016-04-04 12:53:22

标签: google-bigquery google-cloud-dataflow

我使用BigQueryIO.Read在Google数据流上收到“HTTP请求期间的传输错误”。

代码:

PipelineOptionsFactory.register(UserClickOptions.class);
DataflowPipelineOptions options = 
  PipelineOptionsFactory.fromArgs(args).as(UserClickOptions.class);
Pipeline p = Pipeline.create(options);

......

final PCollection<TableRow> result =
  p.apply(BigQueryIO.Read.named("lookup")
      .fromQuery(Query.getLookupQuery()));

我的查询如下:

SELECT ROW_NUMBER() OVER() as Id, prop11 as X FROM (
  SELECT prop11 FROM       
    (TABLE_DATE_RANGE([Mapping.network_v2_],
     DATE_ADD(CURRENT_TIMESTAMP(), -1, 'YEAR'),CURRENT_TIMESTAMP())) 
  WHERE (REGEXP_MATCH(pagename,"^[1-9][^404]"))
  AND (prop11 IS NOT null AND prop11 !="")
  GROUP EACH BY prop11;

如果在Bigquery控制台上运行查询,它可以工作,管道可以运行3个月的数据。一年大约1200万行。

异常追踪:

(9e64c4000646eed): Workflow failed. Causes: (d785ff42d5d40091): 
S06:CPNlookup+ParDo(Cpn2Csv)+ParDo(Row2KV)
+cpn2File/FileBasedSink.ReshardForWrite/Window.Into()
+cpn2File/FileBasedSink.ReshardForWrite/RandomKey
+cpn2File/FileBasedSink.ReshardForWrite/GroupByKey/Reify
+cpn2File/FileBasedSink.ReshardForWrite/GroupByKey/Write failed.,
(eec2b6fa988abf05): BigQuery: query execution in project "cip-newsuk-data" failed.,
(eec2b6fa988abbce): BigQuery execution failed.,
(eec2b6fa988ab897): Transport error during HTTP request.

2006年4月12日更新:: 我在一天的数据中遇到了这些失败,但与3个月的数据相比,频率非常低。

1 个答案:

答案 0 :(得分:3)

我们认为我们追踪这一点并希望它能在不久的将来得到修复。与此同时,可能有一个解决办法让你现在畅通无阻。

如果您尝试使用TABLE_DATE_RANGE_STRICT而不是TABLE_DATE_RANGE,则可能会避免您看到的错误。这将要求所有符合日期范围的表格都存在,这可能是您的情况,也可能不是。

例如,如果您将查询更改为:

SELECT ROW_NUMBER() OVER() as Id, prop11 as X FROM (
  SELECT prop11 FROM       
    (TABLE_DATE_RANGE_STRICT([Mapping.network_v2_],
     DATE_ADD(CURRENT_TIMESTAMP(), -1, 'YEAR'),CURRENT_TIMESTAMP())) 
WHERE (REGEXP_MATCH(pagename,"^[1-9][^404]"))
AND (prop11 IS NOT null AND prop11 !="")
GROUP EACH BY prop11;

有关TABLE_DATE_RANGE_STRICT的详细信息,请参阅table wildcard functions上的文档。