BigQuery 更新如何获取更新的行数

Jam*_*ing 5 python-3.x google-bigquery google-cloud-functions

我正在使用 Google Cloud Functions 连接到 Google Bigquery 数据库并更新一些行。云函数是使用 Python 3 编写的。

每当我通过该函数运行更新 dml 时,我都需要帮助弄清楚如何获取结果消息或更新/更改的行数。有任何想法吗?

from google.cloud import bigquery

def my_update_function(context,data):

    BQ = bigquery.Client()
    query_job = BQ.query("Update table set etc...")
    rows = query_job.result()
    return (rows)

Run Code Online (Sandbox Code Playgroud)

我知道行总是作为 _emptyrowiterator 对象返回。我可以通过什么方式获得结果或结果消息?文档说我必须从 bigquery 作业方法中获取它。但是好像想不通。

小智 9

我认为您正在寻找QueryJob.num_dml_affected_rows. 它包含受更新或任何其他 DML 语句影响的行数。如果您只是将其粘贴到您的代码而不是rowsreturn语句中,您将获得 int 形式的数字,或者您可以创建一些按摩,例如:

return("Number of updated rows: " + str(job_query.num_dml_affected_rows))
Run Code Online (Sandbox Code Playgroud)

我希望它会有所帮助:)