You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取BigQuery中Update、Delete等DML语句的执行结果?

如何读取BigQuery DML(Delete/Update)语句的执行结果

BigQuery的DELETE、UPDATE这类DML语句不会返回传统的结果集,无法通过client.query(...).result()直接获取数据,但可以通过查询作业的统计信息获取执行详情,比如受影响的行数。

具体实现步骤

  1. 执行DML语句时,保留返回的Job对象
  2. 等待作业执行完成(通过job.result())
  3. 从Job对象的statistics属性中提取DML执行信息

代码示例

from google.cloud import bigquery

client = bigquery.Client()

# 替换为你的DML语句
dml_query = """
DELETE FROM `your-project.your_dataset.your_table`
WHERE expired = TRUE
"""

# 执行查询并获取Job实例
job = client.query(dml_query)
# 等待作业完成
job.result()

# 提取执行结果
query_stats = job.statistics.get('query')
if query_stats:
    print(f"DML语句类型: {query_stats['statementType']}")
    print(f"受影响的行数: {query_stats.get('numDmlAffectedRows')}")
    # 还可以获取其他统计信息,比如处理的字节数
    print(f"处理字节数: {query_stats.get('totalBytesProcessed')}")

注意事项

  • numDmlAffectedRows字段会返回DML实际修改/删除的行数,和BigQuery控制台显示的结果一致
  • INSERT、MERGE等其他DML类型也可以用同样方式获取执行统计
  • 如果作业执行失败,job.result()会抛出异常,建议添加异常处理逻辑

内容的提问来源于stack exchange,提问作者Alexandru R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:52:02