Google bigquery Bigquery定价变化?

Google bigquery Bigquery定价变化?,google-bigquery,Google Bigquery,我们正在运行BigQuery大约4个月,我们有一些关于价格的有趣观察和问题: 定价模型很难解释,它需要对联接、联合等进行解释 若我在小表上运行join,那个么对于在bigquery引擎中相乘的小表的每个副本,我处理的数据都会增加 如果我在查询中重用相同的子查询,这是新的数据处理,不管它是同一个子查询?这能以任何方式优化吗?bigquery不缓存它的数据吗 是否存在数据处理时向上舍入的最小大小?我们的观察认为它是4MB,这是正确的吗 在谷歌控制台中,地理位置有一个问题,它说大多数查询都是从CA完成

我们正在运行BigQuery大约4个月,我们有一些关于价格的有趣观察和问题:

  • 定价模型很难解释,它需要对联接、联合等进行解释
  • 若我在小表上运行join,那个么对于在bigquery引擎中相乘的小表的每个副本,我处理的数据都会增加
  • 如果我在查询中重用相同的子查询,这是新的数据处理,不管它是同一个子查询?这能以任何方式优化吗?bigquery不缓存它的数据吗
  • 是否存在数据处理时向上舍入的最小大小?我们的观察认为它是4MB,这是正确的吗
  • 在谷歌控制台中,地理位置有一个问题,它说大多数查询都是从CA完成的,这是不正确的,因为我的公司在欧洲,所有的开发都在那里完成。我检查了所有IP地址,没有CA IP。有可能得到更详细的报告吗
  • 关于第5条,我们想了解每一条的查询历史和价格。我们怎样才能做到这一点?我们的软件必须这样做吗
  • 关于3)我在数据处理方面有一个巨大的问题(这就是我问所有问题的原因)。我的整个数据集大约有150mb大,但我的每个查询的DP大小是它的3倍?如果bigquery读取我的全部数据,它将无法达到它在已处理数据上显示的大小。什么时候所有的数据都会被重新读取,从而产生新的DP?你怎么计算这个
  • 多谢各位

    问候,, 托米斯拉夫

  • 对于联接、联合等,定价非常简单。无论需要读取什么源数据,都只需收取一次费用。例如,如果您进行自连接,您仍然只需读取一次数据即可获得费用
  • 见#1。无论bigquery在内部是如何工作的,您都应该只收取一次费用
  • BigQuery会尽最大努力缓存数据。如果重新运行查询,将检查缓存。如果缓存命中,则不会因重新运行查询而收取费用。注意,只缓存完整的查询结果;如果修改查询或在子查询中使用它,则不会使用缓存
  • BigQuery的最大增量为1MB,最小增量为10MB
  • 我不知道谷歌控制台中有任何地理位置。你在哪里看到这些信息
  • 您可以通过jobs.list api获取查询的历史记录以及每个查询处理的数据量
  • 是否可以发送运行的查询的作业id,该查询比预期的要大。所做的计算是 8字节*(#读取整数和浮点列的行)+2字节*(读取字符串列中所有字符串的总长度)

  • 如果这能回答您的问题,请告诉我。

    我可以为#5提供澄清


    在GoogleAPI控制台的“报告”下,有与项目API请求相关的人口统计信息。我怀疑这与BigQuery本身的关系不大,而与Google API控制台的关系更大。

    这是否有什么特别的原因被否决了?我在3的0答案上投票了。太模糊了。如果我们能够将旧的(缓存的)查询与新查询相结合,并且仍然从缓存中获得成本效益,我们也会感兴趣。但看起来,只要您在旧查询中添加新的子查询,就会像没有缓存一样向您收取费用。我会添加#4-并且每个涉及的表的最小计费大小为10MB。您能澄清一些事情吗?如果我们将数据分片,比如说,每天的表,然后我们运行一个查询来覆盖1年的数据(使用表_DATE_RANGE),其中每个表只包含100KB的数据,那么我们会收取356x10MB=3.56GB的费用,而不是356x100KB=35.6MB的费用吗?