如何获取参数化 BigQuery 查询的控制台视图?

Posted

技术标签:

【中文标题】如何获取参数化 BigQuery 查询的控制台视图?【英文标题】:How to get console view of parameterised BigQuery query? 【发布时间】:2019-09-04 10:07:02 【问题描述】:

我正在一个 Flask 应用程序中运行参数化 BigQuery 查询,完全按照Google's docs 中的描述。

我看到了一些意想不到的结果,因此只想将查询打印到我的终端/控制台以进行调试。当我这样做时,只看到带有参数化占位符的查询,而不是值。

有谁知道如何通过正在运行的值查看查询的视图?

例如:

query = "select * from dogs where breed = @dog_breed"

query_params = [
    bigquery.ScalarQueryParameter("dog_breed", "STRING", "kokoni")
]

job_config = bigquery.QueryJobConfig()

job_config.query_parameters = query_params

print(query) # This will only print query as above, not with value 'kokoni'

query_job = client.query(
    query,
    job_config=job_config,
)  

【问题讨论】:

【参考方案1】:

您可以使用list_jobs 方法从Job class 中检索信息,如下例所示:

from google.cloud import bigquery

client = bigquery.Client()

# List the 3 most recent jobs in reverse chronological order.
# Omit the max_results parameter to list jobs from the past 6 months.
print("Last 3 jobs:")
for job in client.list_jobs(max_results=3):  # API request(s)
    print(job.query)
    print(job.query_parameters)

【讨论】:

以上是关于如何获取参数化 BigQuery 查询的控制台视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何安全地为 bigquery 节点插入转义用户输入?可以在 bigquery.insert 节点库上使用参数化查询吗?

IN()表达式中的nodejs bigquery参数化查询

如何从 bigquery 中的视图中获取已保存的查询

如何获取有关 BigQuery 中正在使用/查询的视图和数据集的使用数据?

Airflow 中的 BigQuery 参数化查询

将参数化 BigQuery 自定义查询连接到数据洞察