I’m sending some queries using Java client API. but I get following error after 4 – 5 queries.
com.google.api.client.auth.oauth2.TokenResponseException: 403 User Rate Limit Exceeded
<HTML>
<HEAD>
<TITLE>User Rate Limit Exceeded</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>User Rate Limit Exceeded</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
So I visited the Google API’s Console and increased “Per-User Limit” to 100.0 requests/second/user which was originally set to 5 requests/second/user.
But it doesn’t seems to have any effect.
Is this configuration currently working?
Ben
See this page: https://developers.google.com/bigquery/docs/quota-policy
The rate limit is you can have at most 200GB of outstanding queries + one query of any size.
By outstanding queries, this means the amount of data being scanned by the query. If you have a 1TB table with 10 string fields of the same size, that means that a query that references two of those fields would require a 200GB scan. The BigQuery UI shows the amount of data scanned by a query, or if you are using the API directly, you can find it in the resulting query job statistics.
For example, you can have 4 queries that are scanning 50GB and one query that is scanning 4TB running at the same time.
If these limits are too restrictive, you can use batch mode which doesn’t have any simultaneous query limits, but does run much more slowly.
This is to prevent customers from monopolizing our cluster and degrading the performance for other users, and to encourage them to spread out their queries.
Also, if you have not enabled billing, the quota limits are significantly lower, since you’re restricted to the free quota.