突然,我们开始为我们的某个管道收到以下警告:
698382 [main] WARN com.google.cloud.dataflow.sdk.runners.DataflowPipelineJob - There were problems getting current job status: 429 Too Many Requests
{
"code" : 429,
"errors" : [ {
"domain" : "global",
"message" : "Request throttled due to project QPS limit being reached.",
"reason" : "rateLimitExceeded"
} ],
"message" : "Request throttled due to project QPS limit being reached.",
"status" : "RESOURCE_EXHAUSTED"
}.
管道正在从BigQuery读取大量数据。
这是与BigQuery API相关的配额耗尽(消息中不清楚)吗?
答案 0 :(得分:2)
由于混淆,BlockingDataflowPipelineRunner
用于检查作业状态的RPC配额过于严格。这已得到修复,并且
不应该影响正在运行的作业的行为。请告诉我们
如果你继续看到问题。
您还可以使用DataflowPipelineRunner
来避免生成这些RPC,private static final ImageIcon NULL_IMAGE = new ImageIcon((new Object()).getClass().getResource("/tiles/blank.png"));
在提交后不会轮询作业状态。
答案 1 :(得分:-1)
免责声明:我不是Dataflow专家。 :)
Dataflow quota是每秒1000次查询(QPS),而BigQuery quota是100 QPS。我怀疑你是否达到了BQ限制。此外,BQ文档确实提到If you make more than 100 requests per second, throttling might occur
,您的错误似乎反映了这一点。
如果您查看BigQuery API use,您会看到4xx错误吗?