小编Mo'*_*ers的帖子

BigQuery CASE WHSE ELSE语句不完整的结果

在BigQuery中使用大型case-when-else语句时,结果不会累加.

有时我们会得到10个桶但不是全部.通常我们按顺序得到几个桶,比如1-8,然后我们会期望它返回桶9但它没有,它返回15或者其他东西.

请注意,这只是一个示例,我们的实际查询有超过100个WHEN语句.在这种情况下,我们可能会获得25个桶,然后它会在列表中的某个位置"重新启动".

"查询参考"未声明WHEN语句的最大数量.那可能导致这种行为的原因是什么?

SELECT Count(Items) AS item_count, 
CASE 
WHEN (a >= 0 AND a < 50) THEN 1 
WHEN (a >= 50 AND a < 100) THEN 2 
WHEN (a >= 100 AND a < 150) THEN 3 
WHEN (a >= 150 AND a < 200) THEN 4 
WHEN (a >= 200 AND a < 250) THEN 5 
WHEN (a >= 250 AND a < 300) THEN 6 
WHEN (a >= 300 AND a < 350) THEN 7 
WHEN …
Run Code Online (Sandbox Code Playgroud)

google-bigquery

6
推荐指数
1
解决办法
4499
查看次数

Google App Engine上的搜索API

我正在使用App Engine和内置的Search API运行概念验证.我们正在测试Search API,假设它提供了线性扩展,就像App Engine捆绑的其他产品和服务一样.

  • 规格:约.单个索引中有800万个文档
  • 查询类型:复杂查询,我们需要基于方形区域的空间查询,而不是距离(!).所有查询都包括基于纬度和经度的2个范围.
  • 页面大小:16到250之间.
  • 在所有测试案例中,准确度(结果计数)设置为100.

我们的目标性能(延迟)在100毫秒范围内.

我们正在测试运行多个并发请求的Search API的性能.现在测试结果大约是25个并发请求,但预计这个数字会显着上升.但是,如果Search API具有适当的可伸缩性,那么这应该毫无意义.

我正在测量Search API处理对Index.search(Query)的调用所花费的时间.我测量的是以下内容:

  1. 搜索方法返回的平均时间约为8000毫秒.在任何情况下,该方法都不会明显更快或更慢地返回.但是,使用包含10个文档的索引会导致延迟测量大约300毫秒(!!!).这可能表明Search API根本不可扩展.
  2. 页面大小似乎没有任何显着差异.也许页面大小为10.000或更高,但这不是我们测试的一部分.
  3. 添加一个标准(相等)似乎可以显着加快搜索速度.高达约40%的改善.这似乎是一个很好的改进,但4秒仍然是永恒.

问题:

  1. Search API可以提供的预期延迟(最佳方案/配置)是多少?
  2. 哪些参数影响延迟,包括应用引擎配置.
  3. 索引中的文档数量是否会影响延迟?
  4. 基于2个范围查询的搜索是否比仅基于相等过滤器的搜索慢?(因为我们可以预处理数据并将'索引'数据添加到每个文档中).
  5. Search API真的可扩展吗?

google-app-engine

5
推荐指数
1
解决办法
638
查看次数

标签 统计

google-app-engine ×1

google-bigquery ×1