Bigquery数据集位置上的奇怪行为

时间:2016-06-23 13:58:36

标签: google-bigquery google-compute-engine

我注意到使用Bigquery和VM实例的Google云计算引擎中存在一种奇怪的行为。

我有一个将数据流式传输到Bigquery的java进程。

我希望通过为BigQuery数据集和VM实例选择相同的区域来获得更好的性能,但我的测试显示出意想不到的行为。

CASE1:VM on us-central1-a AND dataset location US 插入Bigquery响应的平均时间:150毫秒

CASE2:欧洲西部1-c上的虚拟机和数据集位置美国 插入Bigquery响应的平均时间:700毫秒

CASE3:VM on us-central1-a AND dataset location EU 插入Bigquery响应的平均时间:1200毫秒

CASE4:欧洲西部1-c上的虚拟机和数据集位置欧盟 插入Bigquery响应的平均时间:1700毫秒

我可以理解CASE2和CASE3的性能下降但是CASE4呢?

测试显示,如果Bigquery数据集位置是" EU"即使VM区域是europe-west1-c,性能也会下降。

我的结论是:永远不要在欧盟使用Bigquery(当然,除了对数据位置的要求外)!

我的考虑有什么问题吗?

1 个答案:

答案 0 :(得分:1)

感谢报道。

看起来帖子中提到的延迟包括tables.get()+ tabledata.insertAll()。延迟差异主要是由tables.get()。

引起的

我们知道调用与元数据相关的API(例如tables.get)比欧盟要慢。它是由一些现有的基础设施限制引起的,不幸的是它有短期的修复方法。但我们正积极致力于一些后端更改,以最大限度地减少长期的延迟差异。

您可以考虑采取一些措施来缓解这种情况: