BigQuery 插入错误,状态:挂起,状态码 5

Posted

技术标签:

【中文标题】BigQuery 插入错误,状态:挂起,状态码 5【英文标题】:BigQuery insert error, state: pending, status code 5 【发布时间】:2018-11-22 08:08:17 【问题描述】:

我遇到 bigquery 插入错误,我找不到任何解决方案来修复。我正在使用谷歌应用引擎使用 nodejs 进行流插入。但是,该错误并非每次都发生。错误日志如下:


 insertId:  "j5hzu8e36yg0"  
 logName:  "projects/xxxx-xxxx/logs/cloudaudit.googleapis.com%2Fdata_access"  
 protoPayload: 
  @type:  "type.googleapis.com/google.cloud.audit.AuditLog"   
  authenticationInfo: 
   principalEmail:  "xxxx-xxxx@appspot.gserviceaccount.com"    
  
  authorizationInfo: [
   0: 
    granted:  true     
    permission:  "bigquery.jobs.create"     
    resource:  "projects/xxxx-xxxx"     
   
  ]
  methodName:  "jobservice.getqueryresults"   
  requestMetadata: 
   callerIp:  "xx.xx.xx.xx"    
   callerSuppliedUserAgent:  "gcloud-dotnet/1.0.0-beta18 google-api-dotnet-client/1.35.1.0 (gzip),gzip(gfe)"    
  
  resourceName:  "projects/xxxx-xxxx/queries/job_bc378dc9_240d_4caf_acfa_d54691ffe595"   
  serviceData: 
   @type:  "type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData"    
   jobGetQueryResultsRequest: 
   
   jobGetQueryResultsResponse: 
    job: 
     jobConfiguration: 
     
     jobName: 
     
     jobStatistics: 
     
     jobStatus: 
      error: 
      
      state:  "PENDING"       
     
    
   
  
  serviceName:  "bigquery.googleapis.com"   
  status: 
   code:  5    
   message:  "Not found: Job xxxx-xxxx:job_bc378dc9_240d_4caf_acfa_d54691ffe595"    
  
 
 receiveTimestamp:  "2018-11-22T07:24:42.323436659Z"  
 resource: 
  labels: 
   project_id:  "xxxx-xxxx"    
  
  type:  "bigquery_resource"   
 
 severity:  "ERROR"  
 timestamp:  "2018-11-22T07:24:41.794Z"

如果您需要更多信息,请告诉我。

【问题讨论】:

你也可以分享代码吗? bigquery .dataset('raw') .table(tbl) .insert(rows) .then(() => console.log(Inserted $rows.length rows); ) .catch(err = > if (err && err.name === 'PartialFailureError') if (err.errors && err.errors.length > 0) console.log('插入错误:'); err.errors.forEach(err => console.error(err)); else console.error('BQ INGEST ERROR CUST RAW:', err); ); ; 您提供的审核日志条目对应于检索作业结果的失败请求 (cloud.google.com/bigquery/docs/reference/rest/v2/jobs/…)。并且基于用户代理,它是使用github.com/googleapis/google-cloud-dotnet 制作的。您能否附上cloud.google.com/bigquery/docs/reference/rest/v2/tabledata/… 中定义的正确流式插入响应? 【参考方案1】:

BigQuery 似乎无法找到地理地址 location of the job。

确保在jobReference 的位置属性中指定您的区域。这是您可以咨询的github example for nodejs。

更新 检查未找到的作业是否已重试并成功完成。在流式传输中,请求作业和尝试检索作业之间需要延迟。因此,您可以忽略此类错误并再次尝试获取信息。

【讨论】:

不要认为是区域或位置属性问题。我正在使用不需要位置信息的流式插入。我按照例子:cloud.google.com/bigquery/… 你能测试一下看看是否还有错误吗?这是为了消除/验证这个理论。 这没有帮助。 它看起来像一个 nodejs 客户端库问题。您可以在创建表时define the optional location parameter 看看是否仍然出现错误吗?你也应该报告这个问题here

以上是关于BigQuery 插入错误,状态:挂起,状态码 5的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:如何在重复记录中插入新值?

BigQuery 加载作业 [无效] 遇到太多错误

Airflow - BigQuery 作业状态检查失败。最终错误是:%s'

HTTP状态码

HTTP状态码之200和304

HTTP状态码