是否有我可以运行的查询来确定对每个表的查询要花费多少?例如,该查询的结果至少包括如下内容:
dataset.table1 236 etc加工dataset.table2 56 etc加工dataset.table3 24 etc加工等
另外,有什么方法可以知道哪些特定的查询会使我们损失最大?
谢谢!
发布于 2017-04-07 20:01:40
Let's talk first about data and respective data-points to do such a query! 在这里,您有一些有用的属性
要执行的configuration.query.query - BigQuery查询。
statistics.query.referencedTables引用的作业表。
statistics.query.totalBytesBilled -为作业计费的总字节数。statistics.query.totalBytesProcessed -为作业处理的总字节。
statistics.query.billingTier -为这项工作收取费用.
拥有以上数据点将允许您编写相对简单的查询来回答每个查询的成本和每个表问题的成本!
So, now - how to get this data available? 您可以使用Job.list API和than循环通过所有可用作业收集作业,并通过Job.get API检索各自的统计数据--当然,将检索到的数据转储到BigQuery表中。比你喜欢分析的还要多!
或者,您可以使用BigQuery的审计日志跟踪访问和成本细节(如docs中所述),并将它们导出回BigQuery进行分析。
前一个选项(Jobs.list和Job.get in循环)使您能够获得作业信息,即使您还没有启用审计日志,因为Job.get API返回有关创建后6个月内可用的特定作业的信息--所以有大量的数据可用于分析!
发布于 2021-05-22 20:53:21
据我目前的理解,每个表都不可能得到处理过的字节。根据我的理解,这将是一个很好的特性,您可以通过它来识别和优化成本,并且有更好的可能性来理解分区和集群更改的有效性。当前,只可能获取查询的总计处理字节,并查看引用了哪些表。但是,由于没有简单的查询和查询,因此可以在表级别上分析这一成本,这一级别比查询级别更大。
https://stackoverflow.com/questions/43284179
复制相似问题