我可以使用什么 Python API 来计算 BigQuery 查询的成本?

Ana*_*and 2 python google-bigquery google-cloud-platform

有没有人知道如何使用 Python Google Cloud BigQuery API 来计算查询的成本?

Tra*_*ebb 5

1.获取查询处理的数据量

使用 Google Cloud Python SDK,您可以设置dry_run标志。

job_config = bigquery.QueryJobConfig()
job_config.dry_run = True
job_config.use_query_cache = False
query_job = client.query(
  ...
)
Run Code Online (Sandbox Code Playgroud)

2. 计算成本 total_bytes_processed

如果您使用的按需定价看看query_job.total_bytes_processed,看看你有多少处理过的数据被收取。当前成本(截至 2019 年 10 月)为每 TB处理5 美元,其中第一个 TB 是免费的。

因此,您可以通过以下方式获得成本:

cost_dollars = (query_job.total_bytes_processed / 1024 ** 4) * 5
Run Code Online (Sandbox Code Playgroud)


rob*_*emb 4

我不认为你可以直接计算成本,但你可以使用python API中的dryRun参数来获取处理的字节数,然后你可以将其转换为成本(按列出的按需价格为5美元/TB) 。

就像是:

from google.cloud import bigquery

job_config = bigquery.QueryJobConfig()
job_config.dry_run = True
job_config.use_query_cache = False
query_job = bigquery.Client().query(
    (
        "SELECT my_column FROM my_table"
    ),
    location="US", # or wherever your data is
    job_config=job_config,
)

print("{} bytes will be processed".format(query_job.total_bytes_processed))
Run Code Online (Sandbox Code Playgroud)

这里还有成本估算文档的参考。