我收到 403 User Rate Limit Exceeded 错误进行查询,但我确定我没有超过。在过去,我已经达到了插入的速率限制,它在工作列表中反映为
[errorResult] => Array ([reason] => rateLimitExceeded [message] => Exceeded rate limits: too many imports for this project )
但在这种情况下,作业列表不反映查询(也没有错误或完成),并且研究作业列表我没有达到限制或接近达到限制(不超过 4 个并发查询,每个处理 692297 字节)
我已启用计费,并且在过去 28 天内我只进行了 2.5K 次查询。
编辑:用户限制设置为 500.0 个请求/秒/用户
编辑:收到错误代码
超出用户速率限制
超出用户速率限制
错误 403
编辑:我用来进行查询作业并获得结果的代码
function query_data($project,$dataset,$query,$jobid=null){
$jobc = new JobConfigurationQuery();
$query_object = new QueryRequest();
$dataset_object = new DatasetReference();
$dataset_object->setProjectId($project);
$dataset_object->setDatasetId($dataset);
$query_object->setQuery($query);
$query_object->setDefaultDataset($dataset_object);
$query_object->setMaxResults(16000);
$query_object->setKind('bigquery#queryRequest');
$query_object->setTimeoutMs(0);
$ok = false;
$sleep = 1;
while(!$ok){
try{
$response_data = $this->bq->jobs->query($project, $query_object);
$ok = true;
}catch(Exception $e){ //sleep when BQ API not avaible
sleep($sleep);
$sleep += rand(0,60);
}
}
try{
$response = $this->bq->jobs->getQueryResults($project, $response_data['jobReference']['jobId']);
}catch(Exception $e){
//do nothing, se repite solo
}
$tries = 0;
while(!$response['jobComplete']&&$tries<10){
sleep(rand(5,10));
try{
$response = $this->bq->jobs->getQueryResults($project, $response_data['jobReference']['jobId']);
}catch(Exception $e){
//do nothing, se repite solo
}
$tries++;
}
$result=array();
foreach($response['rows'] as $k => $row){
$tmp_row=array();
foreach($row['f'] as $field => $value){
$tmp_row[$response['schema']['fields'][$field]['name']] = $value['v'];
}
$result[]=$tmp_row;
unset($response['rows'][$k]);
}
return $result;
}
是否有其他速率限制?或者它是一个错误?
谢谢!