【问题标题】:Allowing many users to view stale BigQuery data query results concurrently允许多个用户同时查看过时的 BigQuery 数据查询结果
【发布时间】:2017-06-27 05:54:07
【问题描述】:

如果我有一个 BigQuery 数据集,其中包含我想向 1000 人提供的数据(其中每个人只能查看他们的数据子集,并且可以查看他们的 24 小时过时版本)数据),如何在不超过 50 个并发查询限制的情况下执行此操作?

在 BigQuery 文档中提到允许 50 个并发查询,这些查询可以提供现场准确的数据,如果我需要它们都能够查看现场准确的数据,我会超越 - 我没有不。

在文档中提到允许批处理作业并将结果保存到目标表中,我希望这会以某种方式为我的场景提供可靠的解决方案,但是很难找到有关这些批处理作业的可靠性或频率的信息可以预期运行,并且是否有人查询这些目标表中存在的结果本身是否计入 50 个并发用户的限制。

任何建议表示赞赏。

【问题讨论】:

  • 你试过contacting Cloud sales吗?他们可以帮助您根据您期望的用户数量适当地配置您的项目。 50 个并发查询是默认设置,但有很多大型项目支持的用户数量远不止此。
  • 试试redash.io(开源仪表板),它可以将 BigQuery 作为后端

标签: google-bigquery


【解决方案1】:

在不了解您的具体情况以及根据输出中的数据量的情况下,我建议您将自己的缓存放在 BigQuery 前面。

这听起来有点像仪表板/报告解决方案,所以我假设输入的数据量很大,输出的数据量相对较小(每个用户)。

每天使用批处理脚本运行一个查询以生成您的输出(按用户分组),然后将其导出到 GCS。然后,您可以将其分解为多个平面文件(或者只是将其读入前端的内存中)。每个用户点击您的前端,您决定将输出的哪一部分提供给他们并做出响应。

如果您可以处理缓存数据并且它足够小以至于处理 BigQuery 输出不是太多额外的处理,这应该相对便宜。

如果您不想设置新的虚拟机来托管您的前端,那么 Google Cloud Functions 可能是处理此问题的一种简单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多