如何增加Google表格v4 API配额限制

时间:2017-07-20 21:45:39

标签: google-sheets-api

新的Google表格API v4目前每天都有无限制的读/写配额(非常棒),但每100秒每个帐户限制为500个读/写,每100秒每个键有100个读/写(或,我发现,多个密钥来自同一个IP)。这可能适用于大多数用例,但我有一个边缘案例,需要将经常更新的Google Sheet与70个选项卡一起下载到node.js服务器,该服务器每隔约30-60秒左右将这些选项分发给用户的客户端(用户)是作为学生研究助理的数据注释者。在项目早期没有那么糟糕的情况下,只有20-30个选项卡,但现在数据很大,服务器正在吹过100个配额并每10-15分钟返回错误。

问题是:

  1. 频繁的数据更新:在任何给定的分钟内,只有70个选项卡中的1-5个数据可能会更新,但哪些选项卡有新数据是随机的(因此我将整个70 = 70个读取数据拉下来)
  2. 更新间隔:更新需要以大约30秒到5分钟的间隔随机发生(因此有些在配额内,有些约为配额的3-5倍)。
  3. 限制:我已经尝试将更新限制在100个调用/ 100秒内(我之前的解决方案),但这会引入大的可用性问题,从而显着降低可用性/生产力/工作质量。
  4. 配额增加:工作表API目前似乎没有包含增加配额的付款方式。它确实允许填写表格以请求增加配额,但我不确定平均响应时间是多少(我的请求只有几天)。
  5. 多个服务帐户:我尝试使用多个服务帐户来获取完整的500个请求/ 100秒配额(而非每个用户的配额),因为这是一个服务器,但Google表格看起来速率限制为100来自给定IP的请求/ 100秒
  6. 替代方案:我认为这个项目可能已经超出了Sheets能够轻松处理的规模,但似乎没有任何好的,可用的,自托管的,具有易于界面的协作电子表格 - 到那里的API。
  7. 是否建议使用设置/方法来实现服务器的完整500次呼叫/ 100秒?

2 个答案:

答案 0 :(得分:3)

  1. 您可以使用spreadsheets.get在一次通话中阅读整个电子表格,而不是每次请求1次通话。或者,如果您需要的只是值,则可以使用spreadsheets.values.batchGet在一次调用中读取多个不同的范围。

  2. Drive API提供" push notifications",因此您可以在更改发生时收到通知并对其做出反应,而不是轮询它们。通知的延迟有点慢,但它完成了工作。

答案 1 :(得分:3)

您可以在Google Cloud Platform中请求配额更新,每个帐户将增加到2500个,每个用户500个。 (关于你的#4) enter image description here