7

我正在研究使用 BigQuery 及其 API 根据访问者查看的内容进行现场查询的可能性。因此响应时间至关重要。我已经加载了一个非常简单的 10k 行(4 列)的结构化数据集,并运行了一个非常简单的查询,这需要 1 到 2 秒。希望我的问题很容易回答,通过以某种方式优化数据,我是否能够通过 BQ API 获得 <1 秒的响应时间?

提前非常感谢!

问候, 阿尔杰

4

3 回答 3

11

BigQuery 不是一个在线事务处理 (OLTP) 数据库,而是一个交互式分析数据库,可以在几秒钟内扫描数 TB 的数据。虽然查询时间是相当一致的,因为它是一个共享服务,所以不能保证查询时间,即查询运行2秒可能会运行1.5秒或3秒在不同的时间段。由于 BigQuery 的性质和内部结构,目前 < 1 秒的查询时间是不现实的。

一种流行的设计模式是让 BigQuery 对您的数据进行繁重的复杂分析,然后将结果存储在 OLTP(如 mySQL)甚至内存中(如 Redis)数据库中,并从那里将结果提供给客户端。您可以通过在后台运行查询来定期更新数据。

于 2016-03-25T22:21:21.017 回答
4

BigQuery 专为对 MASSIVELY 大型数据集进行交互式分析而设计。
处理时间预计在几秒钟内。
同时,期望对较小的数据集运行查询会使运行时间低于秒——这是不现实的,因为它没有这样设计。
无论您拥有多大的数据量——您仍然“支付”所有费用,就好像您要处理大数据集一样。

所以,不幸的是,简短的回答:
今天 - 不是!明天——不!后天——你永远不知道,但我不这么认为,除非 BigQuery 会演变成其他东西

于 2016-03-25T22:20:16.920 回答
0

尽管其他人已经表示答案是否定的,但您可以看看BigQuery Storage API可能会很有趣。它使您可以直接针对云存储(BigQuery 的数据物理存储位置)对常规表运行简单SELECT的查询。WHERE它应该比常规的 BigQuery API 更快,但可能不会在 1 秒内可靠地响应(虽然我自己还没有尝试过,但是一旦有就会更新我的答案)。

于 2020-09-18T12:58:52.273 回答