我使用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个月的数据相比,频率非常低。
答案 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上的文档。