google-bigquery - 通过 SQL 查询获取表特定成本

标签 google-bigquery

是否有一个查询可以运行来确定针对每个表的查询花费了多少费用?例如,此查询的结果至少包括以下内容:

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/

相关文章:

sql - BigQuery 日期分区 View

sql - 查询超出 Bigquery 中的资源限制

google-bigquery - BigQuery 动态表分区

google-bigquery - 向时间戳字段添加五个小时

google-bigquery - 使用两个自定义 Firebase 参数作为维度在 Data Studio 中创建图表

firebase - 如何将所有事件数据从 Firebase 导出到 BigQuery?

mysql - 部署Cloud Data Fusion "Transfer Data From MySQL to Google BigQuery"模板管道失败

google-bigquery - BigQuery 加载 parquet 错误 - Parquet 中字段 INT32 的类型与模式中的 double 不兼容

google-cloud-platform - 如何安排从 BigQuery 表到 Cloud Storage 的导出?

google-bigquery - 查询失败错误 : Resources exceeded during query execution: The query could not be executed in the allotted memory