Google Bigquery插入流式传输

时间:2015-11-03 08:44:07

标签: google-bigquery

我正在浏览他们官方网站上提供的Google的Bigquery文档。 我对谷歌的插入流媒体配额政策感到困惑。 Here 网页上提到了以下几点。

1]Maximum row size: 1 MB 
2]HTTP request size limit: 10 MB
3]Maximum rows per second: 100,000 rows per second, per table. Exceeding this amount will cause quota_exceeded errors.
4]Maximum rows per request: 500
5]Maximum bytes per second: 100 MB per second, per table. Exceeding this amount will cause quota_exceeded errors.

我对第3和第4点感到困惑。 我们可以使用新的TableDataInsertAllRequest()。setRows(rowList);来设置数据。 rowList.size()最多为100,000。对于插入,我们可以使用table()。insertAll()。execute()。

但我仍然对第3和第4点感到困惑。 任何人都能详细解释一下吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

假设您使用大量并行工作程序同时发送流式插入,例如数千台服务器。

如果您将所有那些由您的计算机进行流式处理的行汇总起来,那么它可能会导致每秒超过10万行。每个服务器单独流最多500个,但是一个大型集群可以每秒流超过100k。如果达到此目的,您可能需要联系支持部门以提高限额。

因此,您需要了解一个有效负载需要很小并且适合500行。如果您想要更多流式传输,则需要并行执行流式传输。要实现这一目标,最好有一个像Beanstalkd这样的消息队列系统,你可以使用beanstalkd admin console监视你的工作。