BigQuery - decyphering'超出配额'的消息

时间:2016-07-25 16:52:22

标签: java google-bigquery

我遇到这个消息,我不清楚我超过了多少配额中的​​哪一个。我的流程有:

  • 80个线程(分布在8台机器上)
  • < 50条记录/插入
  • ~5K / record
  • 1秒延迟/插入
  • 插入~100个不同的表(取决于特定记录 - 同一个表的记录被组合在一起)

给我这是:

  • <最大行大小(1Mb)
  • <最大行数/秒(100K /表和1M /项目)
  • <最大行/请求(~500)
  • <最大字节数/秒(100Mb)

我看着bq --project <proj name> ls -j -a的输出。这给了我工作和成功/失败。从这里开始,我使用bq --project <proj name> show -j <jobId>

查看结果

错误输出包含以下行:

"status": {  
 "errorResult": {  
   "location": "load_job",   
   "message": "Quota exceeded: Your project exceeded quota for imports per project. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors", 
  "reason": "quotaExceeded"  
}, 
"errors": [
  {
    "location": "load_job", 
    "message": "Quota exceeded: Your project exceeded quota for imports per project. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors", 
    "reason": "quotaExceeded"
  }
], 

建议在哪里看?我做错了吗?也许是组织线程/数据的更好方法?

2 个答案:

答案 0 :(得分:2)

看起来像Load Quotas相关

  • 每日限制:每桌每天1,000个加载作业(包括失败),每个项目每天10,000个加载作业(包括失败)
  • 行和单元格大小限制:

    Data format     Max limit   
    CSV             2 MB (row and cell size)  
    JSON            2 MB (row size)  
    Avro            16 MB (block size)  
    
  • 每个加载作业的最大大小:CSV和JSON的所有输入文件均为12 TB

  • 每个加载作业的最大文件数:10,000

最有可能Daily limit是您正在寻找的

答案 1 :(得分:0)

你是如何加载数据的?您似乎使用jobs.insert而不是tabledata.insertAll

jobs.insert以批处理模式加载数据。正如米哈伊尔所说,如果你使用的是jobs.insert方法,那么每张桌子的进口限制是1000 - 大概是每90秒一次。

tabledata.insertAll允许您将数据流式传输到表中,这里是每个表限制每秒100k行的应用位置。请注意,此方法具有相关成本,而批处理方法则是免费的。