抵制BigQuery垃圾邮件

问题描述 投票:0回答:1

我具有以下软件组件:

  • Amazon Kinesis事件流
    • 示例事件表:product-purchase-events
  • BigQuery db接收+存储事件
    • 示例查询:SELECT count(*) as count, DATE(timestamp) as day FROM product-purchase-events GROUP BY day
  • 公开API的微服务确实会运行一组预定义的BigQuery查询
    • 示例端点:GET /product-purchase-event/?step=DAY
  • 使用查询API公开漂亮图形的公共Web应用程序>
  • 事实:

每个查询的BigQuery帐单和统一费用非常昂贵。

问题:

如果有人向GET /product-purchase-event端点发送垃圾邮件,则每次调用都会执行一个新查询,这意味着在进行一百万次垃圾邮件查询后,我会得到一个很好的账单。

我的问题:

垃圾邮件可以保护BigQuery吗?我知道这里有24小时缓存,但是我希望数据尽可能实时。

我还知道还有其他解决方案,例如Amazon Redshift,它按小时而不是按查询计费,但是我想知道我是否可以使用BigQuery解决此垃圾邮件问题。似乎大多数人仅将其用于内部,这意味着没有外部人员可以执行查询,因此垃圾邮件不是问题。

我具有以下软件组件:Amazon Kinesis事件流示例事件表:产品购买事件BigQuery db接收+存储事件示例查询:SELECT count(*)as count,...

sql google-bigquery amazon-kinesis bigquery kinesis
1个回答
0
投票
您已经正确地推测出,将交互式公共Web终结点关联到直接运行BigQuery查询的处理程序是一个坏主意(tm)。这里有多个因素,包括成本和延迟。此外,查询正在接收流插入的表意味着您将无法利用基本的BigQuery caching mechanism,并且一旦您的公共处理程序开始获得合理的负载量,就会很快达到并发限制。
© www.soinside.com 2019 - 2024. All rights reserved.