BigQuery流式传输最佳实践

时间:2015-03-15 16:58:55

标签: bigdata google-bigquery

我现在使用Google BigQuery,使用上传文件, 由于我对此方法有些延迟,我现在正尝试将代码转换为流式传输。

在这里寻找最佳解决方案,使用BQ更正确: 1.使用多台(最多40台)不同的流媒体机器?或将流量引导到单个或多个端点以上传数据? 2.一次上传一行或堆叠到100-500个事件列表并上传。 3.正在流式传输,或坚持上传文件 - 就大量而言。

更多数据: - 我们每秒上传大约1500-2500行。 - 使用.net API。 - 需要数据在约5分钟内可用

其他地方没有找到这样的参考。

1 个答案:

答案 0 :(得分:2)

流数据和上传文件之间的最大区别在于,流式传输用于在流式传输时实时生成的实时数据,而在上传文件时,您可以上传以前存储的数据。

在你的情况下,我认为Streaming更有意义。如果出现问题,您只需要重新发送失败的行,而不是整个文件。并且它更适应我认为你正在获得的不断增长的文件。

任何情况下的最佳做法是:

  1. 尝试减少发送数据的来源数量。
  2. 在每个请求中发送更大的数据块而不是多个小块。
  3. 使用指数退避重试那些因服务器错误而可能失败的请求(这些是常见的,应该是预期的)。
  4. 某些限制适用于Load Jobs以及Streaming inserts

    例如,使用流式传输时,每个请求应插入少于500行,每个表最多插入10,000行。