python - 如何在不到一秒的时间内从 bigquery 表中获取单个行?
问题描述
我在 bigquery 中有一个聚合数据表,它有数百万行。这张桌子每天都在增长。
我需要一种以毫秒为单位从该聚合表中获取 1 行的方法,以便在实时事件中附加数据。
解决这个问题的最佳方法是什么?
解决方案
BigQuery 不是为了在毫秒内做出响应而构建的,因此您需要其他解决方案。使用 BigQuery 进行大型聚合计算是完全可以的。但是你永远不应该直接从响应时间是毫秒问题的 BQ 提供服务。
另请注意,如果这是一个 Web 应用程序,例如,页面的多次重新加载可能会花费您很多钱......因为您为每个查询付费。
有许多架构解决方案可以解决此类问题,但是如果没有任何项目上下文和目标,很难判断您应该使用什么。
对于实时数据,我们经常使用 PubSub 来连接两者之间的某个地方,但如果(近)实时需求是一个聚合体,这可能是一个问题。
您还可以通过将聚合数据导出到子组件来使用物化视图概念。例如云存储 -> pubsub 或 SQL 实例/内存存储.. 或任何其他类型的微服务。
推荐阅读
- node.js - 通过 AWS Lambda 控制台编辑器导入模块
- swift - 在闭包Swift中保留循环
- vue.js - 选择未通过 VueJS 中的 API 调用填充
- python - 基于非空变量数量的Django模板字符串连接
- ruby-on-rails - nil:NilClass 的未定义方法“original_filename”
- python - 梯度下降的多元线性回归
- php - 数据表:当表响应时,我得到“无法读取未定义数据的属性”
- python - 在全新的 Anaconda 环境中安装 conda 时,“收集包元数据:失败”并出现 UnavailableInvalidChannel 错误
- sql - 需要获取具有特定值的后续记录
- php - Cakephp 2.x Auth 在 Chrome 74.0 版本中不起作用,但在 mozilla 66.0 版本中起作用