是否有一个查询可以运行来确定针对每个表的查询花费了多少费用?例如,此查询的结果至少包括以下内容:
dataset.table1 236TB 已处理 dataset.table2 56GB 已处理 dataset.table3 24kB 已处理等
还有没有办法知道哪些特定查询的成本最高?
谢谢!
最佳答案
Let's talk first about data and respective data-points to do such a query!
看看Job Resources
这里有一些有用的属性
configuration.query.query
- 要执行的 BigQuery SQL 查询。
statistics.query.referencedTables
- 作业的引用表。
statistics.query.totalBytesBilled
- 为作业计费的总字节数。
statistics.query.totalBytesProcessed
- 作业处理的总字节数。
statistics.query.billingTier
- 作业的计费层。
有了以上数据点,您就可以编写相对简单的查询来回答每个查询的成本和每个表的成本问题!
So, now - how to get this data available?
您可以使用 Job.list
收集您的职位API 和比循环遍历所有可用作业并通过 Job.get
检索相应的统计数据API - 当然将检索到的数据转储到 BigQuery 表中。比你可以享受分析!
或者,您可以使用 BigQuery 的审核日志来跟踪访问和成本详细信息(如 docs
中所述)并将其导出回 BigQuery 进行分析。
前一个选项(Jobs.list 和 Job.get 循环))使您能够获取作业信息,即使您尚未启用审核日志,因为 Job.get API 返回有关特定作业的信息创建后的六个月内可用 - 有大量数据可供分析!
关于google-bigquery - 通过 SQL 查询获取表特定成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284179/