我读过几乎所有关于如何提高BigQuery性能、如何在毫秒或至少一秒钟内检索数据的线程。我决定为此使用BI引擎,因为它具有无缝集成而没有代码更改,它支持分区、智能卸载、实时数据、内置压缩、低延迟等等。
不幸的是,对于相同的查询,启用BI引擎的响应时间比启用缓存的查询慢。
缓存命中的
来自BigQuery API的平均691 API响应时间
https://gist.github.com/bgizdov/b96c6c3d795f5f14e5e9a3e9d7091d85
来自BigQuery API的平均1605 API响应时间。
finalExecutionDurationMs大约是200-300 is,但是检索数据的总时间(只有8行)是以前的5-6倍。
BigQuery UI:经过766 is,它们调用REST实体服务的实际时间为1.50。这就解释了为什么我会得到类似的结果。
https://gist.github.com/bgizdov/fcabcbce9f96cf7dc618298b2d69575d
我正在使用Quarkus与BigQuery集成,并使用番石榴秒表测量查询时间。
该表约为350 1GB,BI预订为1GB。返回的行为8,从300行汇总而来。这是一个非常小的数据大小与一个简单的查询。我知道BigQuery在小数据大小的情况下表现不佳,或者不重要,但我想在一秒钟内获得数据,这就是我尝试BI的原因,而且它不会在大数据集中得到改进。
发布于 2022-11-20 14:45:32
你能和我分享一下工作身份吗?
BI引擎支持许多优化,对于绝大多数查询,它们允许更快、更高效的处理。
然而,在某些情况下,BI引擎优化并不那么有效。一个问题是数据的初始加载--我们使用最优编码将数据提取到内存中,而BigQuery则直接处理数据。后续查询应该更快。另一个是--一些操作符非常容易优化,以最大限度地提高CPU利用率(例如聚合/过滤/计算),而其他操作则可能比较棘手。
https://stackoverflow.com/questions/74140378
复制相似问题